Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions test/compiler.jl
Original file line number Diff line number Diff line change
Expand Up @@ -252,11 +252,11 @@ end
vi2 = VarInfo(f2())
vi3 = VarInfo(f3())
@test haskey(vi1.metadata, :y)
@test vi1.metadata.y.vns[1] == VarName{:y}()
@test vi1.metadata.y.vns[1] == @varname(y)
@test haskey(vi2.metadata, :y)
@test vi2.metadata.y.vns[1] == VarName{:y}(((2,), (Colon(), 1)))
@test vi2.metadata.y.vns[1] == @varname(y[2][:, 1])
@test haskey(vi3.metadata, :y)
@test vi3.metadata.y.vns[1] == VarName{:y}(((1,),))
@test vi3.metadata.y.vns[1] == @varname(y[1])
end
@testset "custom tilde" begin
@model demo() = begin
Expand Down Expand Up @@ -326,22 +326,22 @@ end
m = demo2(missing, missing)
vi = VarInfo(m)
ks = keys(vi)
@test VarName(:x) ∈ ks
@test VarName(:y) ∈ ks
@test @varname(x) ∈ ks
@test @varname(y) ∈ ks

# Observation in top-level.
m = demo2(missing, 1.0)
vi = VarInfo(m)
ks = keys(vi)
@test VarName(:x) ∈ ks
@test VarName(:y) ∉ ks
@test @varname(x) ∈ ks
@test @varname(y) ∉ ks

# Observation in nested model.
m = demo2(1000.0, missing)
vi = VarInfo(m)
ks = keys(vi)
@test VarName(:x) ∉ ks
@test VarName(:y) ∈ ks
@test @varname(x) ∉ ks
@test @varname(y) ∈ ks

# Observe all.
m = demo2(1000.0, 0.5)
Expand All @@ -350,13 +350,13 @@ end
@test isempty(ks)

# Check values makes sense.
@model function demo2(x, y)
@model function demo3(x, y)
@submodel demo1(x)
return y ~ Normal(x)
end
m = demo2(1000.0, missing)
m = demo3(1000.0, missing)
# Mean of `y` should be close to 1000.
@test abs(mean([VarInfo(m)[VarName(:y)] for i in 1:10]) - 1000) ≤ 10
@test abs(mean([VarInfo(m)[@varname(y)] for i in 1:10]) - 1000) ≤ 10

# Prefixed submodels and usage of submodel return values.
@model function demo_return(x)
Expand All @@ -373,10 +373,10 @@ end
m = demo_useval(missing, missing)
vi = VarInfo(m)
ks = keys(vi)
@test VarName(Symbol("sub1.x")) ∈ ks
@test VarName(Symbol("sub2.x")) ∈ ks
@test VarName(:z) ∈ ks
@test abs(mean([VarInfo(m)[VarName(:z)] for i in 1:10]) - 100) ≤ 10
@test VarName{Symbol("sub1.x")}() ∈ ks
@test VarName{Symbol("sub2.x")}() ∈ ks
@test @varname(z) ∈ ks
@test abs(mean([VarInfo(m)[@varname(z)] for i in 1:10]) - 100) ≤ 10

# AR1 model. Dynamic prefixing.
@model function AR1(num_steps, α, μ, σ, ::Type{TV}=Vector{Float64}) where {TV}
Expand Down Expand Up @@ -410,7 +410,7 @@ end
vi = VarInfo(m)

for k in [:α, :μ, :σ, Symbol("ar1_1.η"), Symbol("ar1_2.η")]
@test VarName(k) ∈ keys(vi)
@test VarName{k}() ∈ keys(vi)
end
end

Expand Down