|  | 
| 67 | 67 |             @inferred DynamicPPL.from_vec_transform(dist) | 
| 68 | 68 |             @inferred Bijectors.with_logabsdet_jacobian(from_vec_trfm, unlinked_vec) | 
| 69 | 69 | 
 | 
| 70 |  | -            b = Bijectors.bijector(dist) | 
| 71 |  | -            @test b(unlinked) isa Any | 
|  | 70 | +            # Typically the same as `bijector(dist)`, but technically a different | 
|  | 71 | +            # function | 
|  | 72 | +            b = DynamicPPL.link_transform(dist) | 
|  | 73 | +            @test (b(unlinked); true) | 
| 72 | 74 |             linked, logjac = Bijectors.with_logabsdet_jacobian(b, unlinked) | 
| 73 |  | -            @test linked isa Any | 
| 74 | 75 |             @test logjac isa Real | 
| 75 | 76 | 
 | 
| 76 |  | -            binv = Bijectors.inverse(b) | 
|  | 77 | +            binv = DynamicPPL.invlink_transform(dist) | 
| 77 | 78 |             unlinked_again, logjac_inv = Bijectors.with_logabsdet_jacobian(binv, linked) | 
| 78 | 79 |             @test isapprox_nested(unlinked, unlinked_again) | 
| 79 | 80 |             @test isapprox(logjac, -logjac_inv) | 
|  | 
| 93 | 94 |                     from_linked_vec_trfm, linked_vec | 
| 94 | 95 |                 ) | 
| 95 | 96 |             end | 
|  | 97 | + | 
|  | 98 | +            # Create a model and check that we can evaluate it with both unlinked and linked | 
|  | 99 | +            # VarInfo. This relies on the transformations working correctly so is more of an | 
|  | 100 | +            # 'end to end' test | 
|  | 101 | +            @model test() = x ~ dist | 
|  | 102 | +            model = test() | 
|  | 103 | +            vi_unlinked = VarInfo(model) | 
|  | 104 | +            vi_linked = DynamicPPL.link!!(VarInfo(model), model) | 
|  | 105 | +            @test (DynamicPPL.evaluate!!(model, vi_unlinked); true) | 
|  | 106 | +            @test (DynamicPPL.evaluate!!(model, vi_linked); true) | 
|  | 107 | +            model_init = DynamicPPL.setleafcontext(model, DynamicPPL.InitContext()) | 
|  | 108 | +            @test (DynamicPPL.evaluate!!(model_init, vi_unlinked); true) | 
|  | 109 | +            @test (DynamicPPL.evaluate!!(model_init, vi_linked); true) | 
| 96 | 110 |         end | 
| 97 | 111 | 
 | 
| 98 | 112 |         # Unconstrained univariate | 
|  | 
0 commit comments