@@ -474,6 +474,7 @@ DynamicPPL.getspace(::DynamicPPL.Sampler{MySAlg}) = (:s,)
474474 return nothing
475475 end
476476 model = demo_subsetting_varinfo ()
477+ vns = [@varname (s), @varname (m), @varname (x[1 ]), @varname (x[2 ])]
477478
478479 @testset " $(short_varinfo_name (varinfo)) " for varinfo in [
479480 VarInfo (model), last (DynamicPPL. evaluate!! (model, VarInfo (), SamplingContext ()))
@@ -483,11 +484,11 @@ DynamicPPL.getspace(::DynamicPPL.Sampler{MySAlg}) = (:s,)
483484 @test isempty (
484485 setdiff (
485486 keys (varinfo),
486- [ @varname (s), @varname (m), @varname (x[ 1 ]), @varname (x[ 2 ])] ,
487+ vns ,
487488 ),
488489 )
489490
490- @testset " $(convert (Vector{VarName}, vns )) " for vns in [
491+ @testset " $(convert (Vector{VarName}, vns_subset )) " for vns_subset in [
491492 [@varname (s)],
492493 [@varname (m)],
493494 [@varname (x[1 ])],
@@ -504,11 +505,19 @@ DynamicPPL.getspace(::DynamicPPL.Sampler{MySAlg}) = (:s,)
504505 [@varname (m), @varname (x[1 ]), @varname (x[2 ])],
505506 [@varname (s), @varname (m), @varname (x[1 ]), @varname (x[2 ])],
506507 ]
507- varinfo_subset = subset (varinfo, vns )
508- # Should now only contain the variables in `vns `.
509- @test isempty (setdiff (keys (varinfo_subset), vns ))
508+ varinfo_subset = subset (varinfo, vns_subset )
509+ # Should now only contain the variables in `vns_subset `.
510+ @test isempty (setdiff (keys (varinfo_subset), vns_subset ))
510511 # Values should be the same.
511- @test [varinfo_subset[vn] for vn in vns] == [varinfo[vn] for vn in vns]
512+ @test [varinfo_subset[vn] for vn in vns_subset] == [varinfo[vn] for vn in vns_subset]
513+
514+ # `merge` with the original.
515+ varinfo_merged = merge (varinfo, varinfo_subset)
516+ vns_merged = keys (varinfo_merged)
517+ # Should be equivalent.
518+ @test union (vns_merged, vns) == intersect (vns_merged, vns)
519+ # Values should be the same.
520+ @test [varinfo_merged[vn] for vn in vns] == [varinfo[vn] for vn in vns]
512521 end
513522 end
514523 end
@@ -519,9 +528,7 @@ DynamicPPL.getspace(::DynamicPPL.Sampler{MySAlg}) = (:s,)
519528 VarInfo (model),
520529 last (DynamicPPL. evaluate!! (model, VarInfo (), SamplingContext ()))
521530 ]
522-
523531 vns = DynamicPPL. TestUtils. varnames (model)
524-
525532 @testset " with itself" begin
526533 # Merging itself should be a no-op.
527534 varinfo_merged = merge (varinfo, varinfo)
0 commit comments