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);
}
}
}