@@ -54,7 +54,8 @@ for sys in [
54
54
([1 , [:b , :c ]], [p[1 ], p[2 : 3 ]], [new_p[1 ], new_p[2 : 3 ]], false ),
55
55
([1 , (:b , :c )], [p[1 ], (p[2 ], p[3 ])], [new_p[1 ], (new_p[2 ], new_p[3 ])], false ),
56
56
((1 , [:b , :c ]), (p[1 ], p[2 : 3 ]), (new_p[1 ], new_p[2 : 3 ]), true ),
57
- ((1 , (:b , :c )), (p[1 ], (p[2 ], p[3 ])), (new_p[1 ], (new_p[2 ], new_p[3 ])), true )
57
+ ((1 , (:b , :c )), (p[1 ], (p[2 ], p[3 ])), (new_p[1 ], (new_p[2 ], new_p[3 ])), true ),
58
+ ([:a , :b ], p[1 : 2 ], 42 , true ),
58
59
]
59
60
get = getp (sys, sym)
60
61
set! = setp (sys, sym)
@@ -77,13 +78,13 @@ for sys in [
77
78
end
78
79
@test fi. counter[] == 1
79
80
80
- @test get (fi) == newval
81
+ @test all ( get (fi) . == newval)
81
82
set! (fi, oldval)
82
83
@test get (fi) == oldval
83
84
@test fi. counter[] == 2
84
85
85
86
fi. ps[sym] = newval
86
- @test get (fi) == newval
87
+ @test all ( get (fi) . == newval)
87
88
@test fi. counter[] == 3
88
89
fi. ps[sym] = oldval
89
90
@test get (fi) == oldval
@@ -98,7 +99,7 @@ for sys in [
98
99
else
99
100
set! (p, newval)
100
101
end
101
- @test get (p) == newval
102
+ @test all ( get (p) . == newval)
102
103
set! (p, oldval)
103
104
@test get (p) == oldval
104
105
@test fi. counter[] == 4
150
151
151
152
Base. getindex (mpo:: MyParameterObject , i) = mpo. p[i]
152
153
154
+ # check throws if setp dimensions do not match
155
+ sys = SymbolCache ([:x , :y , :z ], [:a , :b , :c , :d ], [:t ])
156
+ fi = FakeIntegrator (sys, [1.0 , 2.0 , 3.0 ], 0.0 , Ref (0 ))
157
+ @test_throws DimensionMismatch setp (fi, 1 : 2 )(fi, [- 1.0 , - 2.0 , - 3.0 ])
158
+ @test_throws DimensionMismatch setp (fi, 1 : 3 )(fi, [- 1.0 , - 2.0 ])
159
+
153
160
struct FakeSolution
154
161
sys:: SymbolCache
155
162
u:: Vector{Vector{Float64}}
0 commit comments