public void maximumIterations() {
   SingleThreadedRobbinsMonroPlan underStudy =
       new SingleThreadedRobbinsMonroPlan(phaseCount, parameterCount);
   assertThat(underStudy.maximumIterations(0)).isEqualTo(226);
   assertThat(underStudy.maximumIterations(1)).isEqualTo(264);
   assertThat(underStudy.maximumIterations(2)).isEqualTo(361);
   assertThat(underStudy.maximumIterations(3)).isEqualTo(604);
 }
 public void gain() {
   SingleThreadedRobbinsMonroPlan underStudy =
       new SingleThreadedRobbinsMonroPlan(phaseCount, parameterCount);
   double initialGain = SingleThreadedRobbinsMonroPlan.INITIAL_GAIN;
   assertThat(underStudy.gain(0)).isEqualTo(initialGain, tolerance);
   assertThat(underStudy.gain(1)).isEqualTo(initialGain / 2, tolerance);
   assertThat(underStudy.gain(2)).isEqualTo(initialGain / 4, tolerance);
   assertThat(underStudy.gain(3)).isEqualTo(initialGain / 8, tolerance);
 }
 @Test(expectedExceptions = IllegalArgumentException.class)
 public void throwsWithOutOfBoundsPhase() {
   SingleThreadedRobbinsMonroPlan underStudy =
       new SingleThreadedRobbinsMonroPlan(phaseCount, parameterCount);
   underStudy.gain(phaseCount);
 }
 public void toStringIsNotNull() {
   SingleThreadedRobbinsMonroPlan underStudy =
       new SingleThreadedRobbinsMonroPlan(phaseCount, parameterCount);
   assertThat(underStudy.toString()).isNotNull();
 }
 public void phaseCount() {
   SingleThreadedRobbinsMonroPlan underStudy =
       new SingleThreadedRobbinsMonroPlan(phaseCount, parameterCount);
   int result = underStudy.phaseCount();
   assertThat(result).isEqualTo(phaseCount);
 }