@Test public void results() { final Algorithm algorithm = mockery.mock(Algorithm.class); final OptimisationSolution mockSolution1 = new OptimisationSolution(Vector.of(1.0), new MinimisationFitness(1.0)); final FunctionOptimisationProblem mockProblem = mockery.mock(FunctionOptimisationProblem.class); mockery.checking( new Expectations() { { exactly(3).of(algorithm).getBestSolution(); will(returnValue(mockSolution1)); exactly(3).of(algorithm).getOptimisationProblem(); will(returnValue(mockProblem)); exactly(3).of(mockProblem).getError(Vector.of(1.0)); will(onConsecutiveCalls(returnValue(5.0), returnValue(4.0), returnValue(0.0))); exactly(3).of(algorithm).getIterations(); will(onConsecutiveCalls(returnValue(1), returnValue(2), returnValue(3))); } }); Measurement m = new CollectiveMeanError(); Assert.assertEquals(5.0, ((Real) m.getValue(algorithm)).doubleValue(), 0.00001); Assert.assertEquals(4.5, ((Real) m.getValue(algorithm)).doubleValue(), 0.00001); Assert.assertEquals(3.0, ((Real) m.getValue(algorithm)).doubleValue(), 0.00001); }
@Test public void testMean() { Algorithm algorithm = mock(Algorithm.class); Measurement innerMeasurement = mock(Measurement.class); when(innerMeasurement.getValue(any(Algorithm.class))) .thenReturn(Vector.of(1.0, 2.0, 3.0, 4.0, 5.0)); MeanOfVectorMeasurement measurement = new MeanOfVectorMeasurement(); measurement.setMeasurement(innerMeasurement); assertEquals(3.0, ((Real) measurement.getValue(algorithm)).doubleValue(), Maths.EPSILON); }