Skip to content

Commit cc324ce

Browse files
committed
Fixing logic for edge case of ap.outputs == nothing
1 parent 4d7372a commit cc324ce

File tree

3 files changed

+38
-8
lines changed

3 files changed

+38
-8
lines changed

src/systems/unit_check.jl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -214,10 +214,16 @@ function _validate(terms::Vector, labels::Vector{String}; info::String = "")
214214
end
215215

216216
function _validate(ap::AnalysisPoint; info::String = "")
217-
conn_eq = connect(ap.input, ap.outputs...)
218-
return _validate(conn_eq.rhs, info=info)
217+
is_valid = false
218+
if (ap.outputs == nothing)
219+
is_valid = true
220+
else
221+
conn_eq = connect(ap.input, ap.outputs...)
222+
is_valid = _validate(conn_eq.rhs, info=info)
223+
end
224+
return is_valid
219225
end
220-
226+
221227
function _validate(conn::Connection; info::String = "")
222228
valid = true
223229
syss = get_systems(conn)

src/systems/validation.jl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,14 @@ function _validate(terms::Vector, labels::Vector{String}; info::String = "")
183183
end
184184

185185
function _validate(ap::AnalysisPoint; info::String = "")
186-
conn_eq = connect(ap.input, ap.outputs...)
187-
return _validate(conn_eq.rhs, info=info)
186+
is_valid = false
187+
if (ap.outputs == nothing)
188+
is_valid = true
189+
else
190+
conn_eq = connect(ap.input, ap.outputs...)
191+
is_valid = _validate(conn_eq.rhs, info=info)
192+
end
193+
return is_valid
188194
end
189195

190196
function _validate(conn::Connection; info::String = "")

test/analysis_points.jl

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ using Unitful
5353
]
5454
return System(eqs, t, [], pars; systems, name)
5555
end
56-
@mtkmodel MySquare begin
56+
@mtkmodel TestAPAroundUnits begin
5757
@components begin
5858
input = UnitfulInput()
5959
end
@@ -68,8 +68,26 @@ using Unitful
6868
output ~ input.u^2
6969
end
7070
end
71-
@named sq = MySquare()
72-
@test sq isa System
71+
@named sys = TestAPAroundUnits()
72+
@test sys isa System
73+
74+
@mtkmodel TestAPWithNoOutputs begin
75+
@components begin
76+
input = UnitfulInput()
77+
end
78+
@variables begin
79+
output(t), [output=true, unit=u"m^2"]
80+
end
81+
@components begin
82+
ub = UnitfulBlock()
83+
end
84+
@equations begin
85+
connect(ub.output, :ap, input)
86+
output ~ input.u^2
87+
end
88+
end
89+
@named sys2 = TestAPWithNoOutputs()
90+
@test sys2 isa System
7391
end
7492

7593
@testset "AnalysisPoint is lowered to `connect`" begin

0 commit comments

Comments
 (0)