Skip to content

Commit 8f8ae1c

Browse files
committed
Handle Unitful literals correctly.
1 parent 3e74ac4 commit 8f8ae1c

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/systems/diffeqs/validation.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ end
1010
vartype(x::Num) = vartype(value(x))
1111

1212
instantiate(x) = 1
13+
instantiate(x::Unitful.Quantity) = 1 * Unitful.unit(x)
1314
instantiate(x::Num) = instantiate(value(x))
1415
function instantiate(x::Symbolic)
1516
vx = value(x)

test/units.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using ModelingToolkit, Unitful
1+
using ModelingToolkit, Unitful, OrdinaryDiffEq
22
using Test
33
MT = ModelingToolkit
44
@parameters τ [unit = u"ms"]
@@ -9,13 +9,8 @@ D = Differential(t)
99
@test MT.vartype(E) == u"kJ"
1010
@test MT.vartype(τ) == u"ms"
1111

12-
eqs = [D(E) ~ P - E/τ]
13-
sys = ODESystem(eqs)
14-
1512
@test MT.instantiate(eqs[1].lhs) == 1.0u"MW"
1613
@test MT.instantiate(eqs[1].rhs) == 1.0u"MW"
17-
@test MT.validate(eqs[1])
18-
@test MT.validate(sys)
1914

2015
@test MT.instantiate(0.5) == 1.0
2116
@test MT.instantiate(t) == 1.0u"ms"
@@ -38,6 +33,11 @@ sys = ODESystem(eqs)
3833
@test !MT.validate(E^1.5 ~ E^(t/τ))
3934
@test MT.validate(E^(t/τ) ~ E^(t/τ))
4035

36+
eqs = [D(E) ~ P - E/τ
37+
0.0u"MW" ~ P]
38+
@test MT.validate(eqs[1])
39+
@test MT.validate(eqs[2])
40+
sys = ODESystem(eqs)
4141
sys = ODESystem(eqs, t, [P, E], [τ])
4242
@test MT.validate(sys)
4343

0 commit comments

Comments
 (0)