Skip to content

Commit 47d113f

Browse files
alystAlexey Stukalov
authored andcommitted
add tests for model with multivariate NoDist
1 parent dc2c4cb commit 47d113f

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

test/context_implementations.jl

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,34 @@
6868
end
6969
end
7070
end
71+
72+
@testset "multivariate NoDist" begin
73+
@model function genmodel()
74+
x ~ NoDist(Product(fill(Uniform(-20, 20), 5)))
75+
for i in eachindex(x)
76+
x[i] ~ Normal(0, 1)
77+
end
78+
end
79+
gen_model = genmodel()
80+
vi_gen = VarInfo(gen_model)
81+
@test isfinite(logjoint(gen_model, vi_gen))
82+
# test for bijector
83+
link!(vi_gen, DynamicPPL.SampleFromPrior())
84+
invlink!(vi_gen, DynamicPPL.SampleFromPrior())
85+
86+
# explicit model specification
87+
expl_model = DynamicPPL.Model(NamedTuple()) do model, varinfo, context
88+
DynamicPPL.tilde_assume!!(context, NoDist(Product(fill(Uniform(-20, 20), 5))), @varname(x), varinfo)
89+
x = varinfo[@varname(x)]
90+
@test x isa Vector{<:Real}
91+
@test length(x) == 5
92+
return nothing, DynamicPPL.acclogp!!(varinfo, sum(logpdf.(Ref(Normal(0, 1)), x)))
93+
end
94+
vi_expl = VarInfo(expl_model)
95+
@test isfinite(logjoint(expl_model, vi_expl))
96+
# test for bijector
97+
link!(vi_expl, DynamicPPL.SampleFromPrior())
98+
invlink!(vi_expl, DynamicPPL.SampleFromPrior())
99+
end
71100
end
72101
end

0 commit comments

Comments
 (0)