@@ -486,6 +486,42 @@ for options in list_of_options
486
486
@test all (abs .(f (u, p)) .< 1e-10 )
487
487
end
488
488
489
+ # Testing consistency of iip vs oop iterations
490
+
491
+ maxiterations = [2 , 3 , 4 , 5 ]
492
+ u0 = [1.0 , 1.0 ]
493
+ function iip_oop (f, fip, u0, radius_update_scheme, maxiters)
494
+ prob_iip = NonlinearProblem {true} (fip, u0)
495
+ solver = init (prob_iip, TrustRegion (radius_update_scheme = radius_update_scheme), abstol = 1e-9 , maxiters = maxiters)
496
+ sol_iip = solve! (solver)
497
+
498
+ prob_oop = NonlinearProblem {false} (f, u0)
499
+ solver = init (prob_oop, TrustRegion (radius_update_scheme = radius_update_scheme), abstol = 1e-9 , maxiters = maxiters)
500
+ sol_oop = solve! (solver)
501
+
502
+ return sol_iip. u[end ], sol_oop. u[end ]
503
+ end
504
+
505
+ for maxiters in maxiterations
506
+ iip, oop = iip_oop (ff, ffiip, u0, RadiusUpdateSchemes. Simple, maxiters)
507
+ @test iip == oop
508
+ end
509
+
510
+ for maxiters in maxiterations
511
+ iip, oop = iip_oop (ff, ffiip, u0, RadiusUpdateSchemes. Hei, maxiters)
512
+ @test iip == oop
513
+ end
514
+
515
+ for maxiters in maxiterations
516
+ iip, oop = iip_oop (ff, ffiip, u0, RadiusUpdateSchemes. Yuan, maxiters)
517
+ @test iip == oop
518
+ end
519
+
520
+ for maxiters in maxiterations
521
+ iip, oop = iip_oop (ff, ffiip, u0, RadiusUpdateSchemes. Fan, maxiters)
522
+ @test iip == oop
523
+ end
524
+
489
525
# --- LevenbergMarquardt tests ---
490
526
491
527
function benchmark_immutable (f, u0)
0 commit comments