Skip to content

Commit a94ecff

Browse files
authored
Merge pull request #104 from Cthonios/fields/abstract-methods
some more testing for more test coverage of fields.
2 parents 21600f7 + c0f1d32 commit a94ecff

File tree

1 file changed

+100
-26
lines changed

1 file changed

+100
-26
lines changed

test/TestFields.jl

Lines changed: 100 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,137 @@
11
@testset ExtendedTestSet "L2 Element Field" begin
22
vals = rand(2, 20)
3-
field_1 = L2ElementField(vals, (:node_1, :node_2))
3+
field = L2ElementField(vals, (:node_1, :node_2))
44

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

12+
# test basic axes and basic getindex
713
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
944
end
1045
end
1146

1247
@testset ExtendedTestSet "H1 Field" begin
1348
vals = rand(2, 20)
14-
field_2 = H1Field(vals, (:u, :v))
49+
field = H1Field(vals, (:u, :v))
1550

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

1857
# test basic axes and basic getindex
1958
for n in axes(vals)
20-
@test vals[n] == field_2[n]
59+
@test field[n] == vals[n]
2160
end
2261

2362
# test dual index getindex
2463
for n in axes(vals, 2)
2564
for d in axes(vals, 1)
26-
@test vals[d, n] == field_2[d, n]
65+
@test field[d, n] == vals[d, n]
2766
end
2867
end
2968

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
3775

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]
4179
end
4280
end
4381

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]
5088
end
5189
end
5290
end
5391

5492
@testset ExtendedTestSet "Quadrature Field" begin
5593
vals = rand(Float64, 2, 3, 100)
56-
field_3 = L2QuadratureField(vals, (:var_1, :var_2))
94+
field = L2QuadratureField(vals, (:var_1, :var_2))
5795

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

101+
# test basic axes and basic getindex
60102
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, :, :)
62120
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))
63137
end

0 commit comments

Comments
 (0)