|  | 
| 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