protected void considerUpdate(double fx_candiate, double fx, double predictedReduction, double stepLength, boolean converged , boolean accepted) { ConfigTrustRegion config = new ConfigTrustRegion(); MockTrustRegionBase_F64 alg = new MockTrustRegionBase_F64(null); alg.configure(config); alg.regionRadius = 2; assertEquals(converged, alg.considerCandidate(fx_candiate,fx,predictedReduction,stepLength)); double ratio = (fx-fx_candiate)/predictedReduction; if( fx_candiate < fx ) { assertEquals(GaussNewtonBase_F64.Mode.COMPUTE_DERIVATIVES,alg.mode()); } else { assertEquals(GaussNewtonBase_F64.Mode.DETERMINE_STEP,alg.mode()); } if( !accepted ) { assertEquals(2*0.5,alg.regionRadius); } else { if (ratio <= 0.5) { assertEquals(2 * 0.5, alg.regionRadius); } else { assertEquals(Math.max(3 * stepLength, 2), alg.regionRadius); } } }