|
1 | 1 | @testset "base getvalue + hasvalue" begin |
2 | 2 | @testset "basic NamedTuple" begin |
3 | | - nt = (a=[1], b=2, c=(x=3,), d=[1.0 0.5; 0.5 1.0]) |
| 3 | + nt = (a=[1], b=2, c=(x=3, y=[4], z=(; p=[(; q=5)])), d=[1.0 0.5; 0.5 1.0]) |
4 | 4 | @test hasvalue(nt, @varname(a)) |
5 | 5 | @test getvalue(nt, @varname(a)) == [1] |
6 | 6 | @test hasvalue(nt, @varname(a[1])) |
7 | 7 | @test getvalue(nt, @varname(a[1])) == 1 |
8 | 8 | @test hasvalue(nt, @varname(b)) |
9 | 9 | @test getvalue(nt, @varname(b)) == 2 |
10 | 10 | @test hasvalue(nt, @varname(c)) |
11 | | - @test getvalue(nt, @varname(c)) == (x=3,) |
| 11 | + @test getvalue(nt, @varname(c)) == (x=3, y=[4], z=(p = [(; q=5)])) |
12 | 12 | @test hasvalue(nt, @varname(c.x)) |
13 | 13 | @test getvalue(nt, @varname(c.x)) == 3 |
| 14 | + @test hasvalue(nt, @varname(c.y)) |
| 15 | + @test getvalue(nt, @varname(c.y)) == [4] |
| 16 | + @test hasvalue(nt, @varname(c.y[1])) |
| 17 | + @test getvalue(nt, @varname(c.y[1])) == 4 |
| 18 | + @test hasvalue(nt, @varname(c.z)) |
| 19 | + @test getvalue(nt, @varname(c.z)) == (; p=[(; q=5)]) |
| 20 | + @test hasvalue(nt, @varname(c.z.p)) |
| 21 | + @test getvalue(nt, @varname(c.z.p)) == [(; q=5)] |
| 22 | + @test hasvalue(nt, @varname(c.z.p[1])) |
| 23 | + @test getvalue(nt, @varname(c.z.p[1])) == (; q=5) |
| 24 | + @test hasvalue(nt, @varname(c.z.p[1].q)) |
| 25 | + @test getvalue(nt, @varname(c.z.p[1].q)) == 5 |
14 | 26 | @test hasvalue(nt, @varname(d)) |
15 | 27 | @test getvalue(nt, @varname(d)) == [1.0 0.5; 0.5 1.0] |
16 | 28 | @test hasvalue(nt, @varname(d[1, 1])) |
|
27 | 39 | @test !hasvalue(nt, @varname(a[2])) |
28 | 40 | @test !hasvalue(nt, @varname(a[1][1])) |
29 | 41 | @test !hasvalue(nt, @varname(c.x[1])) |
30 | | - @test !hasvalue(nt, @varname(c.y)) |
| 42 | + @test !hasvalue(nt, @varname(c.y[2])) |
| 43 | + @test !hasvalue(nt, @varname(c.y.a)) |
| 44 | + @test !hasvalue(nt, @varname(c.zzzz)) |
31 | 45 | @test !hasvalue(nt, @varname(d[1, 3])) |
32 | 46 | @test !hasvalue(nt, @varname(d[3, :])) |
33 | 47 | end |
|
37 | 51 | d = Dict( |
38 | 52 | @varname(a) => [1], |
39 | 53 | @varname(b) => 2, |
40 | | - @varname(c) => (x=3,), |
| 54 | + @varname(c) => (x=3, y=[4], z=(; p=[(; q=5)])), |
41 | 55 | @varname(d) => [1.0 0.5; 0.5 1.0], |
42 | 56 | ) |
43 | 57 | @test hasvalue(d, @varname(a)) |
|
47 | 61 | @test hasvalue(d, @varname(b)) |
48 | 62 | @test getvalue(d, @varname(b)) == 2 |
49 | 63 | @test hasvalue(d, @varname(c)) |
50 | | - @test getvalue(d, @varname(c)) == (x=3,) |
| 64 | + @test getvalue(d, @varname(c)) == (x=3, y=[4], z=(p = [(; q=5)])) |
51 | 65 | @test hasvalue(d, @varname(c.x)) |
52 | 66 | @test getvalue(d, @varname(c.x)) == 3 |
| 67 | + @test hasvalue(d, @varname(c.y)) |
| 68 | + @test getvalue(d, @varname(c.y)) == [4] |
| 69 | + @test hasvalue(d, @varname(c.y[1])) |
| 70 | + @test getvalue(d, @varname(c.y[1])) == 4 |
| 71 | + @test hasvalue(d, @varname(c.z)) |
| 72 | + @test getvalue(d, @varname(c.z)) == (; p=[(; q=5)]) |
| 73 | + @test hasvalue(d, @varname(c.z.p)) |
| 74 | + @test getvalue(d, @varname(c.z.p)) == [(; q=5)] |
| 75 | + @test hasvalue(d, @varname(c.z.p[1])) |
| 76 | + @test getvalue(d, @varname(c.z.p[1])) == (; q=5) |
| 77 | + @test hasvalue(d, @varname(c.z.p[1].q)) |
| 78 | + @test getvalue(d, @varname(c.z.p[1].q)) == 5 |
53 | 79 | @test hasvalue(d, @varname(d)) |
54 | 80 | @test getvalue(d, @varname(d)) == [1.0 0.5; 0.5 1.0] |
55 | 81 | @test hasvalue(d, @varname(d[1, 1])) |
|
66 | 92 | @test !hasvalue(d, @varname(a[2])) |
67 | 93 | @test !hasvalue(d, @varname(a[1][1])) |
68 | 94 | @test !hasvalue(d, @varname(c.x[1])) |
69 | | - @test !hasvalue(d, @varname(c.y)) |
| 95 | + @test !hasvalue(d, @varname(c.y[2])) |
| 96 | + @test !hasvalue(d, @varname(c.y.a)) |
| 97 | + @test !hasvalue(d, @varname(c.zzzz)) |
70 | 98 | @test !hasvalue(d, @varname(d[1, 3])) |
71 | 99 | end |
72 | 100 |
|
|
0 commit comments