### Question:
KeltnerChannelUpperIndicator extends CachedIndicator<Num> { public KeltnerChannelUpperIndicator(KeltnerChannelMiddleIndicator keltnerMiddleIndicator, double ratio, int barCountATR) { super(keltnerMiddleIndicator); this.ratio = numOf(ratio); this.keltnerMiddleIndicator = keltnerMiddleIndicator; averageTrueRangeIndicator = new ATRIndicator(keltnerMiddleIndicator.getBarSeries(), barCountATR); } KeltnerChannelUpperIndicator(KeltnerChannelMiddleIndicator keltnerMiddleIndicator, double ratio,
            int barCountATR);   }### Answer:
@Test public void keltnerChannelUpperIndicatorTest() { KeltnerChannelMiddleIndicator km = new KeltnerChannelMiddleIndicator(new ClosePriceIndicator(data), 14); KeltnerChannelUpperIndicator ku = new KeltnerChannelUpperIndicator(km, 2, 14); assertNumEquals(11971.9132, ku.getValue(13)); assertNumEquals(12002.3402, ku.getValue(14)); assertNumEquals(12024.4032, ku.getValue(15)); assertNumEquals(12040.3933, ku.getValue(16)); assertNumEquals(12052.8572, ku.getValue(17)); assertNumEquals(12067.9050, ku.getValue(18)); assertNumEquals(12099.5025, ku.getValue(19)); assertNumEquals(12110.5722, ku.getValue(20)); assertNumEquals(12130.8675, ku.getValue(21)); assertNumEquals(12147.7344, ku.getValue(22)); assertNumEquals(12175.5937, ku.getValue(23)); assertNumEquals(12208.1327, ku.getValue(24)); assertNumEquals(12233.9032, ku.getValue(25)); assertNumEquals(12256.9596, ku.getValue(26)); assertNumEquals(12285.9094, ku.getValue(27)); assertNumEquals(12301.1108, ku.getValue(28)); assertNumEquals(12313.2042, ku.getValue(29)); }