### Question:
StochasticRSI extends SingleValueIndicator { public double getValue() { return value; } StochasticRSI(TimeInterval interval);  StochasticRSI(int length, TimeInterval interval); double getValue(); double min(); double max(); double getUpperBound(); void setUpperBound(double upperBound); double getLowerBound(); void setLowerBound(double lowerBound); static final double UPPER_BOUND; static final double LOWER_BOUND; }### Answer:
@Test public void isUsable() { StochasticRSI b = new StochasticRSI(14, minutes(1)); int i = 0; for (; i < 16; i++) { b.accumulate(newCandle(i)); } assertEquals(100.0, b.getValue(), 0.001); b.accumulate(newCandle(i++)); assertEquals(97.10911690154317, b.getValue(), 0.001); b.accumulate(newCandle(i++)); assertEquals(100.0, b.getValue(), 0.001); b.accumulate(newCandle(i++)); assertEquals(89.9358415444569, b.getValue(), 0.001); b.accumulate(newCandle(i++)); assertEquals(96.68901901082249, b.getValue(), 0.001); b.accumulate(newCandle(i++)); assertEquals(100.0, b.getValue(), 0.001); b.accumulate(newCandle(i++)); assertEquals(94.74635149460414, b.getValue(), 0.001); b.accumulate(newCandle(i++)); assertEquals(97.35719258439879, b.getValue(), 0.001); b.accumulate(newCandle(i++)); assertEquals(100.0, b.getValue(), 0.001); b.accumulate(newCandle(i)); assertEquals(100.0, b.getValue(), 0.001); }