Skip to content

Commit 31afd3c

Browse files
added tests for SDEFunctionExpr
Signed-off-by: sivasathyaseeelan <[email protected]>
1 parent 083a639 commit 31afd3c

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

test/sdesystem.jl

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,3 +868,55 @@ end
868868
@test length(ModelingToolkit.get_noiseeqs(sys)) == 1
869869
@test length(observed(sys)) == 1
870870
end
871+
872+
@testset "SDEFunctionExpr" begin
873+
@parameters σ ρ β
874+
@variables x(tt) y(tt) z(tt)
875+
876+
eqs = [D(x) ~ σ * (y - x),
877+
D(y) ~ x *- z) - y,
878+
D(z) ~ x * y - β * z]
879+
880+
noiseeqs = [0.1 * x,
881+
0.1 * y,
882+
0.1 * z]
883+
884+
@named sys = ODESystem(eqs, tt, [x, y, z], [σ, ρ, β])
885+
886+
@named de = SDESystem(eqs, noiseeqs, tt, [x, y, z], [σ, ρ, β], tspan = (0.0, 10.0))
887+
de = complete(de)
888+
889+
f = SDEFunctionExpr(de)
890+
@test f isa Expr
891+
892+
@testset "Configuration Tests" begin
893+
# Test with `tgrad`
894+
f_tgrad = SDEFunctionExpr(de; tgrad = true)
895+
@test f_tgrad isa Expr
896+
897+
# Test with `jac`
898+
f_jac = SDEFunctionExpr(de; jac = true)
899+
@test f_jac isa Expr
900+
901+
# Test with sparse Jacobian
902+
f_sparse = SDEFunctionExpr(de; sparse = true)
903+
@test f_sparse isa Expr
904+
end
905+
906+
@testset "Mass Matrix Handling" begin
907+
# Test with default mass matrix
908+
@test eval(SDEFunctionExpr(de).args[7]) == UniformScaling{Bool}(true)
909+
910+
# Test with non-trivial mass matrix
911+
u0 = [1.0, 2.0, 3.0]
912+
f_mass = SDEFunctionExpr(de, u0 = u0)
913+
@test f_mass isa Expr
914+
end
915+
916+
@testset "Ordering Tests" begin
917+
dvs = [z, y, x]
918+
ps = [β, ρ, σ]
919+
f_order = SDEFunctionExpr(de, dvs, ps)
920+
@test f_order isa Expr
921+
end
922+
end

0 commit comments

Comments
 (0)