@@ -509,33 +509,47 @@ end
509509    pmap[p] =  2 q
510510    prob =  ODEProblem (sys, u0map, (0.0 , 1.0 ), pmap)
511511    test_parameter (prob, p, 2.0 )
512+     prob2 =  remake (prob; u0 =  u0map, p =  pmap)
513+     prob2. ps[p] =  0.0 
514+     test_parameter (prob2, p, 2.0 )
512515    #  `missing` default, provided guess
513516    @mtkbuild  sys =  ODESystem (
514517        [D (x) ~  x, p ~  x +  y], t; defaults =  [p =>  missing ], guesses =  [p =>  0.0 ])
515518    prob =  ODEProblem (sys, u0map, (0.0 , 1.0 ))
516519    test_parameter (prob, p, 2.0 )
517520    test_initializesystem (sys, u0map, pmap, p, 0  ~  p -  x -  y)
521+     prob2 =  remake (prob; u0 =  u0map, p =  pmap)
522+     prob2. ps[p] =  0.0 
523+     test_parameter (prob2, p, 2.0 )
518524
519525    #  `missing` to ODEProblem, equation from default
520526    @mtkbuild  sys =  ODESystem ([D (x) ~  x *  q, D (y) ~  y *  p], t; defaults =  [p =>  2 q])
521527    pmap[p] =  missing 
522528    prob =  ODEProblem (sys, u0map, (0.0 , 1.0 ), pmap)
523529    test_parameter (prob, p, 2.0 )
524530    test_initializesystem (sys, u0map, pmap, p, 0  ~  2 q -  p)
531+     prob2 =  remake (prob; u0 =  u0map, p =  pmap)
532+     prob2. ps[p] =  0.0 
525533    test_parameter (prob2, p, 2.0 )
526534    #  `missing` to ODEProblem, provided guess
527535    @mtkbuild  sys =  ODESystem (
528536        [D (x) ~  x, p ~  x +  y], t; guesses =  [p =>  0.0 ])
529537    prob =  ODEProblem (sys, u0map, (0.0 , 1.0 ), pmap)
530538    test_parameter (prob, p, 2.0 )
531539    test_initializesystem (sys, u0map, pmap, p, 0  ~  x +  y -  p)
540+     prob2 =  remake (prob; u0 =  u0map, p =  pmap)
541+     prob2. ps[p] =  0.0 
542+     test_parameter (prob2, p, 2.0 )
532543
533544    #  No `missing`, default and guess
534545    @mtkbuild  sys =  ODESystem ([D (x) ~  x *  q, D (y) ~  y *  p], t; defaults =  [p =>  2 q], guesses =  [p =>  0.0 ])
535546    delete! (pmap, p)
536547    prob =  ODEProblem (sys, u0map, (0.0 , 1.0 ), pmap)
537548    test_parameter (prob, p, 2.0 )
538549    test_initializesystem (sys, u0map, pmap, p, 0  ~  2 q -  p)
550+     prob2 =  remake (prob; u0 =  u0map, p =  pmap)
551+     prob2. ps[p] =  0.0 
552+     test_parameter (prob2, p, 2.0 )
539553
540554    #  Should not be solved for:
541555
591605
592606@testset  " Re-creating initialization problem on remake"   begin 
593607    @variables  x (t) y (t)
594-     @parameters  p
608+     @parameters  p q 
595609    @mtkbuild  sys =  ODESystem (
596610        [D (x) ~  x, p ~  x +  y], t; defaults =  [p =>  missing ], guesses =  [x =>  0.0 , p =>  0.0 ])
597611    prob =  ODEProblem (sys, [x =>  1.0 , y =>  1.0 ], (0.0 , 1.0 ))
608622    @test  solve (prob4, Tsit5 ()). retcode ==  ReturnCode. InitialFailure
609623    prob5 =  remake (prob)
610624    @test  init (prob, Tsit5 ()). ps[p] ≈  2.0 
611- 
612-     @mtkbuild  sys =  ODESystem ([D (x) ~  x, p ~  x +  y], t; guesses =  [p =>  0.0 ])
613-     prob =  ODEProblem (sys, [x =>  1.0 , y =>  1.0 ], (0.0 , 1.0 ), [p =>  2.0 ])
614-     #  No value for `p`, not `missing`
615-     @test_throws  ModelingToolkit. MissingParametersError remake (
616-         prob; u0 =  [x =>  1.0 , y =>  3 x])
617-     prob2 =  remake (prob; u0 =  [x =>  1.0 , y =>  2 x +  exp (t)], p =  [p =>  missing ])
618-     @test  init (prob2, Tsit5 ()). ps[p] ≈  4.0 
619625end 
0 commit comments