Skip to content

Commit a987195

Browse files
committed
Re-add some minimal tests for deprecated @SubModel
1 parent cda42f0 commit a987195

File tree

3 files changed

+59
-22
lines changed

3 files changed

+59
-22
lines changed

test/compiler.jl

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -382,28 +382,7 @@ module Issue537 end
382382
@test demo2()() == 42
383383
end
384384

385-
@testset "@submodel is deprecated" begin
386-
@model inner() = x ~ Normal()
387-
@model outer() = @submodel x = inner()
388-
@test_logs(
389-
(
390-
:warn,
391-
"`@submodel model` and `@submodel prefix=... model` are deprecated; see `to_submodel` for the up-to-date syntax.",
392-
),
393-
outer()()
394-
)
395-
396-
@model outer_with_prefix() = @submodel prefix = "sub" x = inner()
397-
@test_logs(
398-
(
399-
:warn,
400-
"`@submodel model` and `@submodel prefix=... model` are deprecated; see `to_submodel` for the up-to-date syntax.",
401-
),
402-
outer_with_prefix()()
403-
)
404-
end
405-
406-
@testset "submodel" begin
385+
@testset "to_submodel" begin
407386
# No prefix, 1 level.
408387
@model function demo1(x)
409388
return x ~ Normal()

test/deprecated.jl

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
@testset "deprecated" begin
2+
@testset "@submodel" begin
3+
@testset "is deprecated" begin
4+
@model inner() = x ~ Normal()
5+
@model outer() = @submodel x = inner()
6+
@test_logs(
7+
(
8+
:warn,
9+
"`@submodel model` and `@submodel prefix=... model` are deprecated; see `to_submodel` for the up-to-date syntax.",
10+
),
11+
outer()()
12+
)
13+
14+
@model outer_with_prefix() = @submodel prefix = "sub" x = inner()
15+
@test_logs(
16+
(
17+
:warn,
18+
"`@submodel model` and `@submodel prefix=... model` are deprecated; see `to_submodel` for the up-to-date syntax.",
19+
),
20+
outer_with_prefix()()
21+
)
22+
end
23+
24+
@testset "prefixing still works correctly" begin
25+
@model inner() = x ~ Normal()
26+
@model function outer()
27+
a = @submodel inner()
28+
b = @submodel prefix = "sub" inner()
29+
return a, b
30+
end
31+
@test outer()() isa Tuple{Float64,Float64}
32+
vi = VarInfo(outer())
33+
@test @varname(x) in keys(vi)
34+
@test @varname(var"sub.x") in keys(vi)
35+
end
36+
37+
@testset "logp is still accumulated properly" begin
38+
@model inner_assume() = x ~ Normal()
39+
@model inner_observe(x, y) = y ~ Normal(x)
40+
@model function outer(b)
41+
a = @submodel inner_assume()
42+
@submodel inner_observe(a, b)
43+
end
44+
y_val = 1.0
45+
model = outer(y_val)
46+
@test model() == y_val
47+
48+
x_val = 1.5
49+
vi = VarInfo(outer(b))
50+
vn_x = @varname(x)
51+
DynamicPPL.setindex!!(vi, x_val, vn_x)
52+
@test logprior(model, vi) logpdf(Normal(), x_val)
53+
@test loglikelihood(model, vi) logpdf(Normal(x_val), y_val)
54+
@test logjoint(model, vi) logpdf(Normal(), x_val) + logpdf(Normal(x_val), y_val)
55+
end
56+
end
57+
end

test/runtests.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ include("test_util.jl")
5959
include("serialization.jl")
6060
include("pointwise_logdensities.jl")
6161
include("lkj.jl")
62+
include("deprecated.jl")
6263
end
6364

6465
if GROUP == "All" || GROUP == "Group2"

0 commit comments

Comments
 (0)