@@ -1062,3 +1062,31 @@ let
1062
1062
@test issetequal (odes, odeeqs (sys))
1063
1063
@test length (continuous_events (sys)) == 1
1064
1064
end
1065
+
1066
+ let
1067
+ t = default_t ()
1068
+ D = default_time_deriv ()
1069
+ @parameters λ k
1070
+ @variables V (t)
1071
+ @species A (t) B (t) C (t)
1072
+ md1 = [:physical_scale => PhysicalScale. ODE]
1073
+ md2 = [:physical_scale => PhysicalScale. VariableRateJump]
1074
+ rxs = [Reaction (k* V, [], [A]), Reaction (λ* A, [B], nothing ; metadata = md1),
1075
+ Reaction (k, [A, B], nothing ), Reaction (λ, [C], [A]; metadata = md2)]
1076
+ eqs = [D (V) ~ λ* V* C]
1077
+ cevents = [[V ~ 2.0 ] => [V ~ V/ 2 , A ~ A/ 2 ]]
1078
+ @named rs = ReactionSystem (vcat (rxs, eqs), t; continuous_events = cevents)
1079
+ rs = complete (rs)
1080
+ jinput = JumpInputs (rs, [:A => 0 , :B => 1 , :C => 1 , :V => 1.0 ], (0.0 , 10.0 ), [:k => 1.0 , :λ => .4 ])
1081
+ @test jinput. prob isa ODEProblem
1082
+ sys = jinput. sys
1083
+ @test sys isa JumpSystem
1084
+ @test MT. has_equations (sys)
1085
+ @test isempty (massactionjumps (sys))
1086
+ @test isempty (constantratejumps (sys))
1087
+ @test length (variableratejumps (sys)) == 3
1088
+ @test length (odeeqs (sys)) == 4
1089
+ odes = union (eqs, [D (A) ~ 0 , D (B) ~ - λ* A* B, D (C) ~ 0 ])
1090
+ @test issetequal (odes, odeeqs (sys))
1091
+ @test length (continuous_events (sys)) == 1
1092
+ end
0 commit comments