Skip to content

Commit d93006b

Browse files
committed
added test for the branch we were currently imssing
1 parent 545cfab commit d93006b

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

test/varinfo.jl

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -770,4 +770,43 @@ DynamicPPL.getspace(::DynamicPPL.Sampler{MySAlg}) = (:s,)
770770
@test any(!Base.Fix1(DynamicPPL.istrans, varinfo_linked), vns_m)
771771
end
772772
end
773+
774+
@testset "sampling from linked varinfo" begin
775+
# `~`
776+
@model function demo(n=1)
777+
x = Vector(undef, n)
778+
for i in eachindex(x)
779+
x[i] ~ Exponential()
780+
end
781+
return x
782+
end
783+
model1 = demo(1)
784+
varinfo1 = DynamicPPL.link!!(VarInfo(model1), model1)
785+
# Sampling from `model2` should hit the `istrans(vi) == true` branches
786+
# because all the existing variables are linked.
787+
model2 = demo(2)
788+
varinfo2 = last(DynamicPPL.evaluate!!(model2, deepcopy(varinfo1), SamplingContext()))
789+
for vn in [@varname(x[1]), @varname(x[2])]
790+
@test DynamicPPL.istrans(varinfo2, vn)
791+
end
792+
793+
# `.~`
794+
@model function demo_dot(n=1)
795+
x ~ Exponential()
796+
if n > 1
797+
y = Vector(undef, n - 1)
798+
y .~ Exponential()
799+
end
800+
return x
801+
end
802+
model1 = demo_dot(1)
803+
varinfo1 = DynamicPPL.link!!(DynamicPPL.untyped_varinfo(model1), model1)
804+
# Sampling from `model2` should hit the `istrans(vi) == true` branches
805+
# because all the existing variables are linked.
806+
model2 = demo_dot(2)
807+
varinfo2 = last(DynamicPPL.evaluate!!(model2, deepcopy(varinfo1), SamplingContext()))
808+
for vn in [@varname(x), @varname(y[1])]
809+
@test DynamicPPL.istrans(varinfo2, vn)
810+
end
811+
end
773812
end

0 commit comments

Comments
 (0)