### Question:
Noise extends SimFunction<VDouble> { @Override VDouble nextValue() { return newValue(min + rand.nextDouble() * range, lastValue); } Noise();  Noise(Double min, Double max, Double step, Double interval);  Noise(Double min, Double max, Double interval);   }### Answer:
@Test public void values() { Noise noise = new Noise(-10.0, 10.0, 1.0); VDouble firstValue = noise.nextValue(); assertThat(firstValue.getLowerCtrlLimit(), equalTo(-10.0)); assertThat(firstValue.getLowerDisplayLimit(), equalTo(-10.0)); assertThat(firstValue.getLowerAlarmLimit(), equalTo(-8.0)); assertThat(firstValue.getLowerWarningLimit(), equalTo(-6.0)); assertThat(firstValue.getUpperWarningLimit(), equalTo(6.0)); assertThat(firstValue.getUpperAlarmLimit(), equalTo(8.0)); assertThat(firstValue.getUpperDisplayLimit(), equalTo(10.0)); assertThat(firstValue.getUpperCtrlLimit(), equalTo(10.0)); int quart1 = 0; int quart2 = 0; int quart3 = 0; int quart4 = 0; for (int i = 0; i < 100000; i++) { double value = noise.nextValue().getValue(); if (value < 0) { if (value < -5.0) { quart1++; } else { quart2++; } } else { if (value < 5.0) { quart3++; } else { quart4++; } } } assertTrue(quart1 < 26000); assertTrue(quart2 < 26000); assertTrue(quart3 < 26000); assertTrue(quart4 < 26000); assertEquals(100000, quart1+quart2+quart3+quart4); }