@@ -19,23 +19,33 @@ t = 0.5
1919fi = FakeIntegrator (sys, copy (u), copy (p), t)
2020# checking inference for non-concretely typed arrays will always fail
2121for (sym, val, newval, check_inference) in [(:x , u[1 ], 4.0 , true )
22- (:y , u[2 ], 4.0 , true )
23- (:z , u[3 ], 4.0 , true )
24- (1 , u[1 ], 4.0 , true )
25- ([:x , :y ], u[1 : 2 ], 4 ones (2 ), true )
26- ([1 , 2 ], u[1 : 2 ], 4 ones (2 ), true )
27- ((:z , :y ), (u[3 ], u[2 ]), (4.0 , 5.0 ), true )
28- ((3 , 2 ), (u[3 ], u[2 ]), (4.0 , 5.0 ), true )
29- ([:x , [:y , :z ]], [u[1 ], u[2 : 3 ]], [4.0 , [5.0 , 6.0 ]], false )
30- ([:x , 2 : 3 ], [u[1 ], u[2 : 3 ]], [4.0 , [5.0 , 6.0 ]], false )
31- ([:x , (:y , :z )], [u[1 ], (u[2 ], u[3 ])], [4.0 , (5.0 , 6.0 )], false )
32- ([:x , Tuple (2 : 3 )], [u[1 ], (u[2 ], u[3 ])], [4.0 , (5.0 , 6.0 )], false )
33- ([:x , [:y ], (:z ,)], [u[1 ], [u[2 ]], (u[3 ],)], [4.0 , [5.0 ], (6.0 ,)], false )
34- ([:x , [:y ], (3 ,)], [u[1 ], [u[2 ]], (u[3 ],)], [4.0 , [5.0 ], (6.0 ,)], false )
35- ((:x , [:y , :z ]), (u[1 ], u[2 : 3 ]), (4.0 , [5.0 , 6.0 ]), true )
36- ((:x , (:y , :z )), (u[1 ], (u[2 ], u[3 ])), (4.0 , (5.0 , 6.0 )), true )
37- ((1 , (:y , :z )), (u[1 ], (u[2 ], u[3 ])), (4.0 , (5.0 , 6.0 )), true )
38- ((:x , [:y ], (:z ,)), (u[1 ], [u[2 ]], (u[3 ],)), (4.0 , [5.0 ], (6.0 ,)), true )]
22+ (:y , u[2 ], 4.0 , true )
23+ (:z , u[3 ], 4.0 , true )
24+ (1 , u[1 ], 4.0 , true )
25+ ([:x , :y ], u[1 : 2 ], 4 ones (2 ), true )
26+ ([1 , 2 ], u[1 : 2 ], 4 ones (2 ), true )
27+ ((:z , :y ), (u[3 ], u[2 ]), (4.0 , 5.0 ), true )
28+ ((3 , 2 ), (u[3 ], u[2 ]), (4.0 , 5.0 ), true )
29+ ([:x , [:y , :z ]], [u[1 ], u[2 : 3 ]],
30+ [4.0 , [5.0 , 6.0 ]], false )
31+ ([:x , 2 : 3 ], [u[1 ], u[2 : 3 ]],
32+ [4.0 , [5.0 , 6.0 ]], false )
33+ ([:x , (:y , :z )], [u[1 ], (u[2 ], u[3 ])],
34+ [4.0 , (5.0 , 6.0 )], false )
35+ ([:x , Tuple (2 : 3 )], [u[1 ], (u[2 ], u[3 ])],
36+ [4.0 , (5.0 , 6.0 )], false )
37+ ([:x , [:y ], (:z ,)], [u[1 ], [u[2 ]], (u[3 ],)],
38+ [4.0 , [5.0 ], (6.0 ,)], false )
39+ ([:x , [:y ], (3 ,)], [u[1 ], [u[2 ]], (u[3 ],)],
40+ [4.0 , [5.0 ], (6.0 ,)], false )
41+ ((:x , [:y , :z ]), (u[1 ], u[2 : 3 ]),
42+ (4.0 , [5.0 , 6.0 ]), true )
43+ ((:x , (:y , :z )), (u[1 ], (u[2 ], u[3 ])),
44+ (4.0 , (5.0 , 6.0 )), true )
45+ ((1 , (:y , :z )), (u[1 ], (u[2 ], u[3 ])),
46+ (4.0 , (5.0 , 6.0 )), true )
47+ ((:x , [:y ], (:z ,)), (u[1 ], [u[2 ]], (u[3 ],)),
48+ (4.0 , [5.0 ], (6.0 ,)), true )]
3949 get = getu (sys, sym)
4050 set! = setu (sys, sym)
4151 if check_inference
@@ -66,12 +76,12 @@ for (sym, val, newval, check_inference) in [(:x, u[1], 4.0, true)
6676end
6777
6878for (sym, oldval, newval, check_inference) in [(:a , p[1 ], 4.0 , true )
69- (:b , p[2 ], 5.0 , true )
70- (:c , p[3 ], 6.0 , true )
71- ([:a , :b ], p[1 : 2 ], [4.0 , 5.0 ], true )
72- ((:c , :b ), (p[3 ], p[2 ]), (6.0 , 5.0 ), true )
73- ([:x , :a ], [u[1 ], p[1 ]], [4.0 , 5.0 ], false )
74- ((:y , :b ), (u[2 ], p[2 ]), (5.0 , 6.0 ), true )]
79+ (:b , p[2 ], 5.0 , true )
80+ (:c , p[3 ], 6.0 , true )
81+ ([:a , :b ], p[1 : 2 ], [4.0 , 5.0 ], true )
82+ ((:c , :b ), (p[3 ], p[2 ]), (6.0 , 5.0 ), true )
83+ ([:x , :a ], [u[1 ], p[1 ]], [4.0 , 5.0 ], false )
84+ ((:y , :b ), (u[2 ], p[2 ]), (5.0 , 6.0 ), true )]
7585 get = getu (fi, sym)
7686 set! = setu (fi, sym)
7787 if check_inference
91101for (sym, val, check_inference) in [
92102 (:t , t, true ),
93103 ([:x , :a , :t ], [u[1 ], p[1 ], t], false ),
94- ((:x , :a , :t ), (u[1 ], p[1 ], t), true ),
104+ ((:x , :a , :t ), (u[1 ], p[1 ], t), true )
95105]
96106 get = getu (fi, sym)
97107 if check_inference
@@ -123,33 +133,42 @@ yvals = getindex.(sol.u, 2)
123133zvals = getindex .(sol. u, 3 )
124134
125135for (sym, ans, check_inference) in [(:x , xvals, true )
126- (:y , yvals, true )
127- (:z , zvals, true )
128- (1 , xvals, true )
129- ([:x , :y ], vcat .(xvals, yvals), true )
130- (1 : 2 , vcat .(xvals, yvals), true )
131- ([:x , 2 ], vcat .(xvals, yvals), false )
132- ((:z , :y ), tuple .(zvals, yvals), true )
133- ((3 , 2 ), tuple .(zvals, yvals), true )
134- ([:x , [:y , :z ]], vcat .(xvals, [[x] for x in vcat .(yvals, zvals)]), false )
135- ([:x , (:y , :z )], vcat .(xvals, tuple .(yvals, zvals)), false )
136- ([1 , (:y , :z )], vcat .(xvals, tuple .(yvals, zvals)), false )
137- ([:x , [:y , :z ], (:x , :z )],
138- vcat .(xvals, [[x] for x in vcat .(yvals, zvals)], tuple .(xvals, zvals)),
139- false )
140- ([:x , [:y , 3 ], (1 , :z )],
141- vcat .(xvals, [[x] for x in vcat .(yvals, zvals)], tuple .(xvals, zvals)),
142- false )
143- ((:x , [:y , :z ]), tuple .(xvals, vcat .(yvals, zvals)), true )
144- ((:x , (:y , :z )), tuple .(xvals, tuple .(yvals, zvals)), true )
145- ((:x , [:y , :z ], (:z , :y )),
146- tuple .(xvals, vcat .(yvals, zvals), tuple .(zvals, yvals)),
147- true )
148- ([:x , :a ], vcat .(xvals, p[1 ]), false )
149- ((:y , :b ), tuple .(yvals, p[2 ]), true )
150- (:t , t, true )
151- ([:x , :a , :t ], vcat .(xvals, p[1 ], t), false )
152- ((:x , :a , :t ), tuple .(xvals, p[1 ], t), true )]
136+ (:y , yvals, true )
137+ (:z , zvals, true )
138+ (1 , xvals, true )
139+ ([:x , :y ], vcat .(xvals, yvals), true )
140+ (1 : 2 , vcat .(xvals, yvals), true )
141+ ([:x , 2 ], vcat .(xvals, yvals), false )
142+ ((:z , :y ), tuple .(zvals, yvals), true )
143+ ((3 , 2 ), tuple .(zvals, yvals), true )
144+ ([:x , [:y , :z ]],
145+ vcat .(xvals, [[x] for x in vcat .(yvals, zvals)]),
146+ false )
147+ ([:x , (:y , :z )],
148+ vcat .(xvals, tuple .(yvals, zvals)), false )
149+ ([1 , (:y , :z )],
150+ vcat .(xvals, tuple .(yvals, zvals)), false )
151+ ([:x , [:y , :z ], (:x , :z )],
152+ vcat .(xvals, [[x] for x in vcat .(yvals, zvals)],
153+ tuple .(xvals, zvals)),
154+ false )
155+ ([:x , [:y , 3 ], (1 , :z )],
156+ vcat .(xvals, [[x] for x in vcat .(yvals, zvals)],
157+ tuple .(xvals, zvals)),
158+ false )
159+ ((:x , [:y , :z ]),
160+ tuple .(xvals, vcat .(yvals, zvals)), true )
161+ ((:x , (:y , :z )),
162+ tuple .(xvals, tuple .(yvals, zvals)), true )
163+ ((:x , [:y , :z ], (:z , :y )),
164+ tuple .(xvals, vcat .(yvals, zvals),
165+ tuple .(zvals, yvals)),
166+ true )
167+ ([:x , :a ], vcat .(xvals, p[1 ]), false )
168+ ((:y , :b ), tuple .(yvals, p[2 ]), true )
169+ (:t , t, true )
170+ ([:x , :a , :t ], vcat .(xvals, p[1 ], t), false )
171+ ((:x , :a , :t ), tuple .(xvals, p[1 ], t), true )]
153172 get = getu (sys, sym)
154173 if check_inference
155174 @inferred get (sol)
@@ -164,10 +183,10 @@ for (sym, ans, check_inference) in [(:x, xvals, true)
164183end
165184
166185for (sym, val) in [(:a , p[1 ])
167- (:b , p[2 ])
168- (:c , p[3 ])
169- ([:a , :b ], p[1 : 2 ])
170- ((:c , :b ), (p[3 ], p[2 ]))]
186+ (:b , p[2 ])
187+ (:c , p[3 ])
188+ ([:a , :b ], p[1 : 2 ])
189+ ((:c , :b ), (p[3 ], p[2 ]))]
171190 get = getu (fi, sym)
172191 @inferred get (fi)
173192 @test get (fi) == val
0 commit comments