### Question:
KeltnerChannelLowerIndicator extends CachedIndicator<Decimal> { public KeltnerChannelLowerIndicator(KeltnerChannelMiddleIndicator keltnerMiddleIndicator, Decimal ratio, int timeFrameATR) { super(keltnerMiddleIndicator); this.ratio = ratio; this.keltnerMiddleIndicator = keltnerMiddleIndicator; averageTrueRangeIndicator = new AverageTrueRangeIndicator(keltnerMiddleIndicator.getTimeSeries(), timeFrameATR); } KeltnerChannelLowerIndicator(KeltnerChannelMiddleIndicator keltnerMiddleIndicator, Decimal ratio, int timeFrameATR);   }### Answer:
@Test public void keltnerChannelLowerIndicatorTest() { KeltnerChannelMiddleIndicator km = new KeltnerChannelMiddleIndicator(new ClosePriceIndicator(data), 14); KeltnerChannelLowerIndicator kl = new KeltnerChannelLowerIndicator(km, Decimal.valueOf(2), 14); assertDecimalEquals(kl.getValue(13), 11645.2878); assertDecimalEquals(kl.getValue(14), 11666.9952); assertDecimalEquals(kl.getValue(15), 11688.7782); assertDecimalEquals(kl.getValue(16), 11712.5707); assertDecimalEquals(kl.getValue(17), 11735.3684); assertDecimalEquals(kl.getValue(18), 11724.4143); assertDecimalEquals(kl.getValue(19), 11735.5588); assertDecimalEquals(kl.getValue(20), 11761.7046); assertDecimalEquals(kl.getValue(21), 11778.7855); assertDecimalEquals(kl.getValue(22), 11802.0144); assertDecimalEquals(kl.getValue(23), 11827.1846); assertDecimalEquals(kl.getValue(24), 11859.4459); assertDecimalEquals(kl.getValue(25), 11891.4189); assertDecimalEquals(kl.getValue(26), 11915.3814); assertDecimalEquals(kl.getValue(27), 11938.7221); assertDecimalEquals(kl.getValue(28), 11967.3156); assertDecimalEquals(kl.getValue(29), 11981.9387); }