@@ -25,6 +25,10 @@ function innermost_distribution_type(d::Distributions.Product)
25
25
return dists[1 ]
26
26
end
27
27
28
+ is_typed_varinfo (:: DynamicPPL.AbstractVarInfo ) = false
29
+ is_typed_varinfo (varinfo:: DynamicPPL.TypedVarInfo ) = true
30
+ is_typed_varinfo (varinfo:: DynamicPPL.SimpleVarInfo{<:NamedTuple} ) = true
31
+
28
32
@testset " model.jl" begin
29
33
@testset " convenience functions" begin
30
34
model = gdemo_default # defined in test/test_util.jl
329
333
@test x_true. UL == result. x. UL
330
334
end
331
335
end
336
+
337
+ @testset " Type stability of models" begin
338
+ models_to_test = [
339
+ # FIXME : Fix issues with type-stability in `DEMO_MODELS`.
340
+ # DynamicPPL.TestUtils.DEMO_MODELS...,
341
+ DynamicPPL. TestUtils. demo_lkjchol (2 ),
342
+ ]
343
+ @testset " $(model. f) " for model in models_to_test
344
+ vns = DynamicPPL. TestUtils. varnames (model)
345
+ example_values = DynamicPPL. TestUtils. rand (model)
346
+ varinfos = filter (
347
+ is_typed_varinfo,
348
+ DynamicPPL. TestUtils. setup_varinfos (model, example_values, vns),
349
+ )
350
+ @testset " $(short_varinfo_name (varinfo)) " for varinfo in varinfos
351
+ @test (@inferred (DynamicPPL. evaluate!! (model, varinfo, DefaultContext ()));
352
+ true )
353
+
354
+ varinfo_linked = DynamicPPL. link (varinfo, model)
355
+ @test (
356
+ @inferred (
357
+ DynamicPPL. evaluate!! (model, varinfo_linked, DefaultContext ())
358
+ );
359
+ true
360
+ )
361
+ end
362
+ end
363
+ end
332
364
end
0 commit comments