|
1 | 1 | @testset ExtendedTestSet "L2 Element Field" begin |
2 | 2 | vals = rand(2, 20) |
3 | | - field_1 = L2ElementField(vals, (:node_1, :node_2)) |
| 3 | + field = L2ElementField(vals, (:node_1, :node_2)) |
4 | 4 |
|
5 | | - @test size(vals) == size(field_1) |
| 5 | + @test eltype(field) == eltype(vals) |
| 6 | + @test names(field) == (:node_1, :node_2) |
| 7 | + @test size(field) == size(vals) |
| 8 | + @test num_fields(field) == size(vals, 1) |
| 9 | + @test num_nodes_per_element(field) == size(vals, 1) |
| 10 | + @test num_elements(field) == size(vals, 2) |
6 | 11 |
|
| 12 | + # test basic axes and basic getindex |
7 | 13 | for n in axes(vals) |
8 | | - @test vals[n] == field_1[n] |
| 14 | + @test field[n] == vals[n] |
| 15 | + end |
| 16 | + |
| 17 | + # test dual index getindex |
| 18 | + for n in axes(vals, 2) |
| 19 | + for d in axes(vals, 1) |
| 20 | + @test field[d, n] == vals[d, n] |
| 21 | + end |
| 22 | + end |
| 23 | + |
| 24 | + for (n, name) in enumerate(names(field)) |
| 25 | + @test field[name] == vals[n, :] |
| 26 | + @test field[name, :] == vals[n, :] |
| 27 | + @test view(field, name) == view(vals, n, :) |
| 28 | + @test view(field, name, :) == view(vals, n, :) |
| 29 | + end |
| 30 | + |
| 31 | + for e in axes(field, 2) |
| 32 | + for (n, name) in enumerate(names(field)) |
| 33 | + @test field[name, e] == vals[n, e] |
| 34 | + end |
| 35 | + end |
| 36 | + |
| 37 | + # test dual number setindex |
| 38 | + vals_2 = rand(2, 20) |
| 39 | + for n in axes(vals, 2) |
| 40 | + for d in axes(vals, 1) |
| 41 | + field[d, n] = vals_2[d, n] |
| 42 | + @test field[d, n] == vals_2[d, n] |
| 43 | + end |
9 | 44 | end |
10 | 45 | end |
11 | 46 |
|
12 | 47 | @testset ExtendedTestSet "H1 Field" begin |
13 | 48 | vals = rand(2, 20) |
14 | | - field_2 = H1Field(vals, (:u, :v)) |
| 49 | + field = H1Field(vals, (:u, :v)) |
15 | 50 |
|
16 | | - @test size(vals) == size(field_2) |
| 51 | + @test eltype(field) == eltype(vals) |
| 52 | + @test names(field) == (:u, :v) |
| 53 | + @test size(field) == size(vals) |
| 54 | + @test num_fields(field) == size(vals, 1) |
| 55 | + @test num_nodes(field) == size(vals, 2) |
17 | 56 |
|
18 | 57 | # test basic axes and basic getindex |
19 | 58 | for n in axes(vals) |
20 | | - @test vals[n] == field_2[n] |
| 59 | + @test field[n] == vals[n] |
21 | 60 | end |
22 | 61 |
|
23 | 62 | # test dual index getindex |
24 | 63 | for n in axes(vals, 2) |
25 | 64 | for d in axes(vals, 1) |
26 | | - @test vals[d, n] == field_2[d, n] |
| 65 | + @test field[d, n] == vals[d, n] |
27 | 66 | end |
28 | 67 | end |
29 | 68 |
|
30 | | - # test dual number setindex |
31 | | - vals_2 = rand(2, 20) |
32 | | - for n in axes(vals, 2) |
33 | | - for d in axes(vals, 1) |
34 | | - # field_1[d, n] = vals_2[d, n] |
35 | | - field_2[d, n] = vals_2[d, n] |
36 | | - # field_3[d, n] = vals_2[d, n] |
| 69 | + for (n, name) in enumerate(names(field)) |
| 70 | + @test field[name] == vals[n, :] |
| 71 | + @test field[name, :] == vals[n, :] |
| 72 | + @test view(field, name) == view(vals, n, :) |
| 73 | + @test view(field, name, :) == view(vals, n, :) |
| 74 | + end |
37 | 75 |
|
38 | | - # @test vals_2[d, n] == field_1[d, n] |
39 | | - @test vals_2[d, n] == field_2[d, n] |
40 | | - # @test vals_2[d, n] == field_3[d, n] |
| 76 | + for e in axes(field, 2) |
| 77 | + for (n, name) in enumerate(names(field)) |
| 78 | + @test field[name, e] == vals[n, e] |
41 | 79 | end |
42 | 80 | end |
43 | 81 |
|
44 | | - # test axes with dimension specied |
45 | | - for n in axes(field_2, 2) |
46 | | - for d in axes(field_2, 1) |
47 | | - # @test vals[d, n] == field_1[d, n] |
48 | | - @test vals[d, n] == field_2[d, n] |
49 | | - # @test vals[d, n] == field_3[d, n] |
| 82 | + # test dual number setindex |
| 83 | + vals_2 = rand(2, 20) |
| 84 | + for n in axes(vals, 2) |
| 85 | + for d in axes(vals, 1) |
| 86 | + field[d, n] = vals_2[d, n] |
| 87 | + @test field[d, n] == vals_2[d, n] |
50 | 88 | end |
51 | 89 | end |
52 | 90 | end |
53 | 91 |
|
54 | 92 | @testset ExtendedTestSet "Quadrature Field" begin |
55 | 93 | vals = rand(Float64, 2, 3, 100) |
56 | | - field_3 = L2QuadratureField(vals, (:var_1, :var_2)) |
| 94 | + field = L2QuadratureField(vals, (:var_1, :var_2)) |
57 | 95 |
|
58 | | - @test size(vals) == size(field_3) |
| 96 | + @test eltype(field) == eltype(vals) |
| 97 | + @test names(field) == (:var_1, :var_2) |
| 98 | + @test size(field) == size(vals) |
| 99 | + @test num_elements(field) == size(vals, 3) |
59 | 100 |
|
| 101 | + # test basic axes and basic getindex |
60 | 102 | for n in axes(vals) |
61 | | - @test vals[n] == field_3[n] |
| 103 | + @test field[n] == vals[n] |
| 104 | + end |
| 105 | + |
| 106 | + # test dual index getindex |
| 107 | + # for n in axes(vals, 3) |
| 108 | + # for q in axes(vals, 2) |
| 109 | + # for e in axes(vals, 1) |
| 110 | + # @test field[n, q, e] == vals[n, q, e] |
| 111 | + # end |
| 112 | + # end |
| 113 | + # end |
| 114 | + |
| 115 | + for (n, name) in enumerate(names(field)) |
| 116 | + @test field[name] == vals[n, :, :] |
| 117 | + @test field[name, :, :] == vals[n, :, :] |
| 118 | + @test view(field, name) == view(vals, n, :, :) |
| 119 | + @test view(field, name, :, :) == view(vals, n, :, :) |
62 | 120 | end |
| 121 | + |
| 122 | + for e in axes(field, 3) |
| 123 | + for q in axes(field, 2) |
| 124 | + for (n, name) in enumerate(names(field)) |
| 125 | + @test field[name, q, e] == vals[n, q, e] |
| 126 | + end |
| 127 | + end |
| 128 | + end |
| 129 | + |
| 130 | + # special case for zero fields |
| 131 | + # NOTE this is the expected behavior below right now |
| 132 | + # even though it is slightly dumb. |
| 133 | + vals = rand(Float64, 0, 3, 100) |
| 134 | + field = L2QuadratureField(vals, ()) |
| 135 | + @test size(field) == (0, 3, 0) |
| 136 | + @test axes(field) == (Base.OneTo(0), Base.OneTo(3), Base.OneTo(0)) |
63 | 137 | end |
0 commit comments