Skip to content

Commit f17f44c

Browse files
committed
remove broken tests
1 parent 0875e8e commit f17f44c

File tree

1 file changed

+0
-332
lines changed

1 file changed

+0
-332
lines changed

test/sciml_problem_inputs.jl

Lines changed: 0 additions & 332 deletions
Original file line numberDiff line numberDiff line change
@@ -118,43 +118,6 @@ let
118118
end
119119
end
120120

121-
# Perform SDE simulations (singular and ensemble).
122-
let
123-
# Creates normal and ensemble problems.
124-
base_sprob = SDEProblem(ssys, u0_alts[1], tspan, p_alts[1])
125-
base_sol = solve(base_sprob, ImplicitEM(); seed, saveat = 1.0)
126-
base_eprob = EnsembleProblem(base_sprob)
127-
base_esol = solve(base_eprob, ImplicitEM(); seed, trajectories = 2, saveat = 1.0)
128-
129-
# Simulates problems for all input types, checking that identical solutions are found.
130-
@test_broken false # first remake in subsequent test yields a `ERROR: type Nothing has no field portion`.
131-
for u0 in u0_alts, p in p_alts
132-
# sprob = remake(base_sprob; u0, p)
133-
# @test base_sol == solve(sprob, ImplicitEM(); seed, saveat = 1.0)
134-
# eprob = remake(base_eprob; u0, p)
135-
# @test base_esol == solve(eprob, ImplicitEM(); seed, trajectories = 2, saveat = 1.0)
136-
end
137-
end
138-
139-
# Perform jump simulations (singular and ensemble).
140-
let
141-
# Creates normal and ensemble problems.
142-
base_dprob = DiscreteProblem(jsys, u0_alts[1], tspan, p_alts[1])
143-
base_jprob = JumpProblem(jsys, base_dprob, Direct(); rng)
144-
base_sol = solve(base_jprob, SSAStepper(); seed, saveat = 1.0)
145-
base_eprob = EnsembleProblem(base_jprob)
146-
base_esol = solve(base_eprob, SSAStepper(); seed, trajectories = 2, saveat = 1.0)
147-
148-
# Simulates problems for all input types, checking that identical solutions are found.
149-
@test_broken false # first remake in subsequent test yields a `ERROR: type Nothing has no field portion`.
150-
for u0 in u0_alts, p in p_alts
151-
# jprob = remake(base_jprob; u0, p)
152-
# @test base_sol == solve(base_jprob, SSAStepper(); seed, saveat = 1.0)
153-
# eprob = remake(base_eprob; u0, p)
154-
# @test base_esol == solve(eprob, SSAStepper(); seed, trajectories = 2, saveat = 1.0)
155-
end
156-
end
157-
158121
# Solves a nonlinear problem (EnsembleProblems are not possible for these).
159122
let
160123
base_nlprob = NonlinearProblem(nsys, u0_alts[1], p_alts[1])
@@ -183,298 +146,3 @@ let
183146
@test base_esol == solve(eprob, DynamicSS(Tsit5()); trajectories = 2)
184147
end
185148
end
186-
187-
### Checks Errors On Faulty Inputs ###
188-
189-
# Checks various erroneous problem inputs, ensuring that these throw errors.
190-
let
191-
# Prepare system components.
192-
@parameters k1 k2 k3
193-
@variables X1(t) X2(t) X3(t)
194-
alg_eqs = [
195-
0 ~ -k1 * X1 + k2 * X2,
196-
0 ~ k1 * X1 - k2 * X2
197-
]
198-
diff_eqs = [
199-
D(X1) ~ -k1 * X1 + k2 * X2,
200-
D(X2) ~ k1 * X1 - k2 * X2
201-
]
202-
noise_eqs = fill(0.01, 2, 2)
203-
jumps = [
204-
MassActionJump(k1, [X1 => 1], [X1 => -1, X2 => 1]),
205-
MassActionJump(k2, [X2 => 1], [X1 => 1, X2 => -1])
206-
]
207-
208-
# Create systems (without structural_simplify, since that might modify systems to affect intended tests).
209-
osys = complete(ODESystem(diff_eqs, t; name = :osys))
210-
ssys = complete(SDESystem(diff_eqs, noise_eqs, t, [X1, X2], [k1, k2]; name = :ssys))
211-
jsys = complete(JumpSystem(jumps, t, [X1, X2], [k1, k2]; name = :jsys))
212-
nsys = complete(NonlinearSystem(alg_eqs; name = :nsys))
213-
214-
# Declares valid initial conditions and parameter values
215-
u0_valid = [X1 => 1, X2 => 2]
216-
ps_valid = [k1 => 0.5, k2 => 0.1]
217-
218-
# Declares invalid initial conditions and parameters. This includes both cases where values are
219-
# missing, or additional ones are given. Includes vector/Tuple/Dict forms.
220-
u0s_invalid = [
221-
# Missing a value.
222-
[X1 => 1],
223-
[osys.X1 => 1],
224-
SA[X1 => 1],
225-
SA[osys.X1 => 1],
226-
Dict([X1 => 1]),
227-
Dict([osys.X1 => 1]),
228-
(X1 => 1),
229-
(osys.X1 => 1),
230-
# Contain an additional value.
231-
[X1 => 1, X2 => 2, X3 => 3],
232-
SA[X1 => 1, X2 => 2, X3 => 3],
233-
Dict([X1 => 1, X2 => 2, X3 => 3]),
234-
(X1 => 1, X2 => 2, X3 => 3)
235-
]
236-
ps_invalid = [
237-
# Missing a value.
238-
[k1 => 1.0],
239-
[osys.k1 => 1.0],
240-
SA[k1 => 1.0],
241-
SA[osys.k1 => 1.0],
242-
Dict([k1 => 1.0]),
243-
Dict([osys.k1 => 1.0]),
244-
(k1 => 1.0),
245-
(osys.k1 => 1.0),
246-
# Contain an additional value.
247-
[k1 => 1.0, k2 => 2.0, k3 => 3.0],
248-
SA[k1 => 1.0, k2 => 2.0, k3 => 3.0],
249-
Dict([k1 => 1.0, k2 => 2.0, k3 => 3.0]),
250-
(k1 => 1.0, k2 => 2.0, k3 => 3.0)
251-
]
252-
253-
# Loops through all potential parameter sets, checking their inputs yield errors.
254-
# Broken tests are due to this issue: https://github.com/SciML/ModelingToolkit.jl/issues/2779
255-
for ps in [[ps_valid]; ps_invalid], u0 in [[u0_valid]; u0s_invalid]
256-
# Handles problems with/without tspan separately. Special check ensuring that valid inputs passes.
257-
for (xsys, XProblem) in zip([osys, ssys, jsys],
258-
[ODEProblem, SDEProblem, DiscreteProblem])
259-
if isequal(ps, ps_valid) && isequal(u0, u0_valid)
260-
XProblem(xsys, u0, (0.0, 1.0), ps)
261-
@test true
262-
else
263-
@test_broken false
264-
continue
265-
@test_throws Exception XProblem(xsys, u0, (0.0, 1.0), ps)
266-
end
267-
end
268-
for (xsys, XProblem) in zip([nsys, osys], [NonlinearProblem, SteadyStateProblem])
269-
if isequal(ps, ps_valid) && isequal(u0, u0_valid)
270-
XProblem(xsys, u0, ps)
271-
@test true
272-
else
273-
@test_broken false
274-
continue
275-
@test_throws Exception XProblem(xsys, u0, ps)
276-
end
277-
end
278-
end
279-
end
280-
281-
### Vector Parameter/Variable Inputs ###
282-
283-
begin
284-
# Declares the model (with vector species/parameters, with/without default values, and observables).
285-
@variables X(t)[1:2] Y(t)[1:2]=[10.0, 20.0] XY(t)[1:2]
286-
@parameters p[1:2] d[1:2]=[0.2, 0.5]
287-
alg_eqs = [
288-
0 ~ p[1] - d[1] * X[1],
289-
0 ~ p[2] - d[2] * X[2],
290-
0 ~ p[1] - d[1] * Y[1],
291-
0 ~ p[2] - d[2] * Y[2]
292-
]
293-
diff_eqs = [
294-
D(X[1]) ~ p[1] - d[1] * X[1],
295-
D(X[2]) ~ p[2] - d[2] * X[2],
296-
D(Y[1]) ~ p[1] - d[1] * Y[1],
297-
D(Y[2]) ~ p[2] - d[2] * Y[2]
298-
]
299-
noise_eqs = fill(0.01, 4, 8)
300-
jumps = [
301-
MassActionJump(p[1], Pair{Symbolics.BasicSymbolic{Real}, Int64}[], [X[1] => 1]),
302-
MassActionJump(p[2], Pair{Symbolics.BasicSymbolic{Real}, Int64}[], [X[2] => 1]),
303-
MassActionJump(d[1], [X[1] => 1], [X[1] => -1]),
304-
MassActionJump(d[2], [X[2] => 1], [X[2] => -1]),
305-
MassActionJump(p[1], Pair{Symbolics.BasicSymbolic{Real}, Int64}[], [Y[1] => 1]),
306-
MassActionJump(p[2], Pair{Symbolics.BasicSymbolic{Real}, Int64}[], [Y[2] => 1]),
307-
MassActionJump(d[1], [Y[1] => 1], [Y[1] => -1]),
308-
MassActionJump(d[2], [Y[2] => 1], [Y[2] => -1])
309-
]
310-
observed = [XY[1] ~ X[1] + Y[1], XY[2] ~ X[2] + Y[2]]
311-
312-
# Create systems (without structural_simplify, since that might modify systems to affect intended tests).
313-
osys = complete(ODESystem(diff_eqs, t; observed, name = :osys))
314-
ssys = complete(SDESystem(
315-
diff_eqs, noise_eqs, t, [X[1], X[2], Y[1], Y[2]], [p, d]; observed, name = :ssys))
316-
jsys = complete(JumpSystem(
317-
jumps, t, [X[1], X[2], Y[1], Y[2]], [p, d]; observed, name = :jsys))
318-
nsys = complete(NonlinearSystem(alg_eqs; observed, name = :nsys))
319-
320-
# Declares various u0 versions (scalarised and vector forms).
321-
u0_alts_vec = [
322-
# Vectors not providing default values.
323-
[X => [1.0, 2.0]],
324-
[X[1] => 1.0, X[2] => 2.0],
325-
[osys.X => [1.0, 2.0]],
326-
[osys.X[1] => 1.0, osys.X[2] => 2.0],
327-
# Vectors providing default values.
328-
[X => [1.0, 2.0], Y => [10.0, 20.0]],
329-
[X[1] => 1.0, X[2] => 2.0, Y[1] => 10.0, Y[2] => 20.0],
330-
[osys.X => [1.0, 2.0], osys.Y => [10.0, 20.0]],
331-
[osys.X[1] => 1.0, osys.X[2] => 2.0, osys.Y[1] => 10.0, osys.Y[2] => 20.0],
332-
# Static vectors not providing default values.
333-
SA[X => [1.0, 2.0]],
334-
SA[X[1] => 1.0, X[2] => 2.0],
335-
SA[osys.X => [1.0, 2.0]],
336-
SA[osys.X[1] => 1.0, osys.X[2] => 2.0],
337-
# Static vectors providing default values.
338-
SA[X => [1.0, 2.0], Y => [10.0, 20.0]],
339-
SA[X[1] => 1.0, X[2] => 2.0, Y[1] => 10.0, Y[2] => 20.0],
340-
SA[osys.X => [1.0, 2.0], osys.Y => [10.0, 20.0]],
341-
SA[osys.X[1] => 1.0, osys.X[2] => 2.0, osys.Y[1] => 10.0, osys.Y[2] => 20.0],
342-
# Dicts not providing default values.
343-
Dict([X => [1.0, 2.0]]),
344-
Dict([X[1] => 1.0, X[2] => 2.0]),
345-
Dict([osys.X => [1.0, 2.0]]),
346-
Dict([osys.X[1] => 1.0, osys.X[2] => 2.0]),
347-
# Dicts providing default values.
348-
Dict([X => [1.0, 2.0], Y => [10.0, 20.0]]),
349-
Dict([X[1] => 1.0, X[2] => 2.0, Y[1] => 10.0, Y[2] => 20.0]),
350-
Dict([osys.X => [1.0, 2.0], osys.Y => [10.0, 20.0]]),
351-
Dict([osys.X[1] => 1.0, osys.X[2] => 2.0, osys.Y[1] => 10.0, osys.Y[2] => 20.0]),
352-
# Tuples not providing default values.
353-
(X => [1.0, 2.0]),
354-
(X[1] => 1.0, X[2] => 2.0),
355-
(osys.X => [1.0, 2.0]),
356-
(osys.X[1] => 1.0, osys.X[2] => 2.0),
357-
# Tuples providing default values.
358-
(X => [1.0, 2.0], Y => [10.0, 20.0]),
359-
(X[1] => 1.0, X[2] => 2.0, Y[1] => 10.0, Y[2] => 20.0),
360-
(osys.X => [1.0, 2.0], osys.Y => [10.0, 20.0]),
361-
(osys.X[1] => 1.0, osys.X[2] => 2.0, osys.Y[1] => 10.0, osys.Y[2] => 20.0)
362-
]
363-
364-
# Declares various ps versions (vector forms only).
365-
p_alts_vec = [
366-
# Vectors not providing default values.
367-
[p => [1.0, 2.0]],
368-
[osys.p => [1.0, 2.0]],
369-
# Vectors providing default values.
370-
[p => [4.0, 5.0], d => [0.2, 0.5]],
371-
[osys.p => [4.0, 5.0], osys.d => [0.2, 0.5]],
372-
# Static vectors not providing default values.
373-
SA[p => [1.0, 2.0]],
374-
SA[osys.p => [1.0, 2.0]],
375-
# Static vectors providing default values.
376-
SA[p => [4.0, 5.0], d => [0.2, 0.5]],
377-
SA[osys.p => [4.0, 5.0], osys.d => [0.2, 0.5]],
378-
# Dicts not providing default values.
379-
Dict([p => [1.0, 2.0]]),
380-
Dict([osys.p => [1.0, 2.0]]),
381-
# Dicts providing default values.
382-
Dict([p => [4.0, 5.0], d => [0.2, 0.5]]),
383-
Dict([osys.p => [4.0, 5.0], osys.d => [0.2, 0.5]]),
384-
# Tuples not providing default values.
385-
(p => [1.0, 2.0]),
386-
(osys.p => [1.0, 2.0]),
387-
# Tuples providing default values.
388-
(p => [4.0, 5.0], d => [0.2, 0.5]),
389-
(osys.p => [4.0, 5.0], osys.d => [0.2, 0.5])
390-
]
391-
392-
# Declares a timespan.
393-
tspan = (0.0, 10.0)
394-
end
395-
396-
# Perform ODE simulations (singular and ensemble).
397-
let
398-
# Creates normal and ensemble problems.
399-
base_oprob = ODEProblem(osys, u0_alts_vec[1], tspan, p_alts_vec[1])
400-
base_sol = solve(base_oprob, Tsit5(); saveat = 1.0)
401-
base_eprob = EnsembleProblem(base_oprob)
402-
base_esol = solve(base_eprob, Tsit5(); trajectories = 2, saveat = 1.0)
403-
404-
# Simulates problems for all input types, checking that identical solutions are found.
405-
@test_broken false # Does not work for certain inputs, likely related to https://github.com/SciML/ModelingToolkit.jl/issues/2804.
406-
for u0 in u0_alts_vec, p in p_alts_vec
407-
oprob = remake(base_oprob; u0, p)
408-
# @test base_sol == solve(oprob, Tsit5(); saveat = 1.0)
409-
eprob = remake(base_eprob; u0, p)
410-
# @test base_esol == solve(eprob, Tsit5(); trajectories = 2, saveat = 1.0)
411-
end
412-
end
413-
414-
# Perform SDE simulations (singular and ensemble).
415-
let
416-
# Creates normal and ensemble problems.
417-
base_sprob = SDEProblem(ssys, u0_alts_vec[1], tspan, p_alts_vec[1])
418-
base_sol = solve(base_sprob, ImplicitEM(); seed, saveat = 1.0)
419-
base_eprob = EnsembleProblem(base_sprob)
420-
base_esol = solve(base_eprob, ImplicitEM(); seed, trajectories = 2, saveat = 1.0)
421-
422-
# Simulates problems for all input types, checking that identical solutions are found.
423-
@test_broken false # Does not work for certain inputs, likely related to https://github.com/SciML/ModelingToolkit.jl/issues/2804.
424-
for u0 in u0_alts_vec, p in p_alts_vec
425-
sprob = remake(base_sprob; u0, p)
426-
# @test base_sol == solve(sprob, ImplicitEM(); seed, saveat = 1.0)
427-
eprob = remake(base_eprob; u0, p)
428-
# @test base_esol == solve(eprob, ImplicitEM(); seed, trajectories = 2, saveat = 1.0)
429-
end
430-
end
431-
432-
# Perform jump simulations (singular and ensemble).
433-
# Fails. At least partially related to https://github.com/SciML/ModelingToolkit.jl/issues/2804.
434-
@test_broken let
435-
# Creates normal and ensemble problems.
436-
base_dprob = DiscreteProblem(jsys, u0_alts_vec[1], tspan, p_alts_vec[1])
437-
base_jprob = JumpProblem(jsys, base_dprob, Direct(); rng)
438-
base_sol = solve(base_jprob, SSAStepper(); seed, saveat = 1.0)
439-
base_eprob = EnsembleProblem(base_jprob)
440-
base_esol = solve(base_eprob, SSAStepper(); seed, trajectories = 2, saveat = 1.0)
441-
442-
# Simulates problems for all input types, checking that identical solutions are found.
443-
@test_broken false # Does not work for certain inputs, likely related to https://github.com/SciML/ModelingToolkit.jl/issues/2804.
444-
for u0 in u0_alts_vec, p in p_alts_vec
445-
jprob = remake(base_jprob; u0, p)
446-
# @test base_sol == solve(base_jprob, SSAStepper(); seed, saveat = 1.0)
447-
eprob = remake(base_eprob; u0, p)
448-
# @test base_esol == solve(eprob, SSAStepper(); seed, trajectories = 2, saveat = 1.0)
449-
end
450-
end
451-
452-
# Solves a nonlinear problem (EnsembleProblems are not possible for these).
453-
let
454-
base_nlprob = NonlinearProblem(nsys, u0_alts_vec[1], p_alts_vec[1])
455-
base_sol = solve(base_nlprob, NewtonRaphson())
456-
@test_broken false # Does not work for certain inputs, likely related to https://github.com/SciML/ModelingToolkit.jl/issues/2804.
457-
for u0 in u0_alts_vec, p in p_alts_vec
458-
nlprob = remake(base_nlprob; u0, p)
459-
# @test base_sol == solve(nlprob, NewtonRaphson())
460-
end
461-
end
462-
463-
# Perform steady state simulations (singular and ensemble).
464-
# Fails. At least partially related to https://github.com/SciML/ModelingToolkit.jl/issues/2804.
465-
let
466-
# Creates normal and ensemble problems.
467-
base_ssprob = SteadyStateProblem(osys, u0_alts_vec[1], p_alts_vec[1])
468-
base_sol = solve(base_ssprob, DynamicSS(Tsit5()))
469-
base_eprob = EnsembleProblem(base_ssprob)
470-
base_esol = solve(base_eprob, DynamicSS(Tsit5()); trajectories = 2)
471-
472-
# Simulates problems for all input types, checking that identical solutions are found.
473-
@test_broken false # Does not work for certain inputs, likely related to https://github.com/SciML/ModelingToolkit.jl/issues/2804.
474-
for u0 in u0_alts_vec, p in p_alts_vec
475-
ssprob = remake(base_ssprob; u0, p)
476-
# @test base_sol == solve(ssprob, DynamicSS(Tsit5()))
477-
eprob = remake(base_eprob; u0, p)
478-
# @test base_esol == solve(eprob, DynamicSS(Tsit5()); trajectories = 2)
479-
end
480-
end

0 commit comments

Comments
 (0)