|
126 | 126 |
|
127 | 127 | @testset "No-op without `initialization_data`" begin
|
128 | 128 | prob = ODEProblem(rhs2, [1.0, 2.0], (0.0, 1.0), 1.0)
|
| 129 | + @test SciMLBase.initialization_status(prob) === nothing |
129 | 130 | integ = init(prob)
|
130 | 131 | integ.u[2] = 3.0
|
131 | 132 | u0, p, success = SciMLBase.get_initial_values(
|
|
153 | 154 | initprob, update_initializeprob!, initprobmap, initprobpmap)
|
154 | 155 | fn = ODEFunction(rhs2; initialization_data)
|
155 | 156 | prob = ODEProblem(fn, [2.0, 0.0], (0.0, 1.0), 0.0)
|
| 157 | + @test SciMLBase.initialization_status(prob) == SciMLBase.FULLY_DETERMINED |
156 | 158 | integ = init(prob; initializealg = NoInit())
|
157 | 159 |
|
158 | 160 | @testset "Errors without `nlsolve_alg`" begin
|
|
279 | 281 | initprob, update_initializeprob!, initprobmap, initprobpmap)
|
280 | 282 | fn = ODEFunction(rhs2; initialization_data)
|
281 | 283 | prob = ODEProblem(fn, [2.0, 0.0], (0.0, 1.0), 0.0)
|
| 284 | + @test SciMLBase.initialization_status(prob) == SciMLBase.FULLY_DETERMINED |
282 | 285 | integ = init(prob; initializealg = NoInit())
|
283 | 286 |
|
284 | 287 | u0, p, success = SciMLBase.get_initial_values(
|
|
293 | 296 | @test_nowarn remake(prob)
|
294 | 297 | end
|
295 | 298 | end
|
| 299 | + |
| 300 | + @testset "Initialization status for overdetermined case" begin |
| 301 | + initfn = NonlinearFunction(; resid_prototype = ones(3)) do u, p |
| 302 | + return [u[1] - 1.0, u[2] - 1.0, u[1] * u[2] - 1.0] |
| 303 | + end |
| 304 | + initprob = NonlinearLeastSquaresProblem(initfn, ones(2)) |
| 305 | + initialization_data = SciMLBase.OverrideInitData( |
| 306 | + initprob, nothing, nothing, nothing) |
| 307 | + fn = ODEFunction(rhs2; initialization_data) |
| 308 | + prob = ODEProblem(fn, [2.0, 0.0], (0.0, 1.0), 0.0) |
| 309 | + @test SciMLBase.initialization_status(prob) == SciMLBase.OVERDETERMINED |
| 310 | + end |
| 311 | + |
| 312 | + @testset "Initialization status for underdetermined case" begin |
| 313 | + initfn = NonlinearFunction(; resid_prototype = ones(1)) do u, p |
| 314 | + return [u[1] - 1.0] |
| 315 | + end |
| 316 | + initprob = NonlinearLeastSquaresProblem(initfn, ones(2)) |
| 317 | + initialization_data = SciMLBase.OverrideInitData( |
| 318 | + initprob, nothing, nothing, nothing) |
| 319 | + fn = ODEFunction(rhs2; initialization_data) |
| 320 | + prob = ODEProblem(fn, [2.0, 0.0], (0.0, 1.0), 0.0) |
| 321 | + @test SciMLBase.initialization_status(prob) == SciMLBase.UNDERDETERMINED |
| 322 | + end |
296 | 323 | end
|
297 | 324 |
|
298 | 325 | @testset "NoInit" begin
|
|
0 commit comments