Skip to content

Commit fe36d69

Browse files
committed
Combine reduce and mapreduce testsets and split off more specific tests
1 parent 38eca4f commit fe36d69

1 file changed

Lines changed: 17 additions & 22 deletions

File tree

test/testsuite/reductions.jl

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -44,41 +44,22 @@ end
4444
(10,)=>:, (10,10)=>:, (10,10,10)=>:,
4545
(10,10,10)=>[1], (10,10,10)=>[2], (10,10,10)=>[3],
4646
(0,)=>[1]]
47+
# mapreduce
4748
@test compare(A->mapreduce(identity, +, A; dims=dims, init=zero(ET)), AT, rand(range, sz))
4849
@test compare(A->mapreduce(identity, *, A; dims=dims, init=one(ET)), AT, rand(range, sz))
4950
@test compare(A->mapreduce(x->x+x, +, A; dims=dims, init=zero(ET)), AT, rand(range, sz))
50-
end
51-
end
52-
# Test more corner cases. Tests from AcceleraterKernels.jl
53-
# Cover empty (size 0) and non-singleton (size 3) axes; the size-10 loop above
54-
# already covers the common non-edge shape.
55-
for dims in [1,2,3,4,[1,2],[1,3],[1,4],[2,3],[2,4],[3,4],[1,2,3],[1,2,4],[1,3,4],[2,3,4],[1,2,3,4]],
56-
isize in (0, 3), jsize in (0, 3), ksize in (0, 3)
57-
@test compare(A->mapreduce(x->x+x, +, A; init=zero(Int32), dims), AT, rand(Int32(1):Int32(10), isize, jsize, ksize))
58-
end
59-
end
6051

61-
@testsuite "reductions/reduce" (AT, eltypes)->begin
62-
@testset "$ET" for ET in eltypes
63-
range = ET <: Real ? (ET(1):ET(10)) : ET
64-
for (sz,dims) in [(10,)=>[1], (10,10)=>[1,2], (10,10,10)=>[1,2,3], (10,10,10)=>[],
65-
(10,)=>:, (10,10)=>:, (10,10,10)=>:,
66-
(10,10,10)=>[1], (10,10,10)=>[2], (10,10,10)=>[3],
67-
(0,)=>[1]]
52+
# reduce
6853
@test compare(A->reduce(+, A; dims=dims, init=zero(ET)), AT, rand(range, sz))
6954
@test compare(A->reduce(*, A; dims=dims, init=one(ET)), AT, rand(range, sz))
70-
if ET <: Integer
71-
@test compare(A->reduce(&, A; dims=dims, init=~zero(ET)), AT, rand(range, sz))
72-
@test compare(A->reduce(|, A; dims=dims, init=zero(ET)), AT, rand(range, sz))
73-
@test compare(A->reduce(, A; dims=dims, init=zero(ET)), AT, rand(range, sz))
74-
end
7555
end
7656
end
7757
# Test more corner cases. Tests from AcceleraterKernels.jl
7858
# Cover empty (size 0) and non-singleton (size 3) axes; the size-10 loop above
7959
# already covers the common non-edge shape.
8060
for dims in [1,2,3,4,[1,2],[1,3],[1,4],[2,3],[2,4],[3,4],[1,2,3],[1,2,4],[1,3,4],[2,3,4],[1,2,3,4]],
8161
isize in (0, 3), jsize in (0, 3), ksize in (0, 3)
62+
@test compare(A->mapreduce(x->x+x, +, A; init=zero(Int32), dims), AT, rand(Int32(1):Int32(10), isize, jsize, ksize))
8263
@test compare(A->reduce(+, A; init=zero(Int32), dims), AT, rand(Int32(1):Int32(10), isize, jsize, ksize))
8364
end
8465
end
@@ -118,6 +99,20 @@ end
11899
end
119100
end
120101

102+
@testsuite "reductions/and or xor" (AT, eltypes)->begin
103+
@testset "$ET" for ET in filter(x -> x <: Integer, eltypes)
104+
range = ET <: Real ? (ET(1):ET(10)) : ET
105+
for (sz,dims) in [(10,)=>[1], (10,10)=>[1,2], (10,10,10)=>[1,2,3], (10,10,10)=>[],
106+
(10,)=>:, (10,10)=>:, (10,10,10)=>:,
107+
(10,10,10)=>[1], (10,10,10)=>[2], (10,10,10)=>[3],
108+
(0,)=>[1]]
109+
@test compare(A->reduce(&, A; dims=dims, init=~zero(ET)), AT, rand(range, sz))
110+
@test compare(A->reduce(|, A; dims=dims, init=zero(ET)), AT, rand(range, sz))
111+
@test compare(A->reduce(, A; dims=dims, init=zero(ET)), AT, rand(range, sz))
112+
end
113+
end
114+
end
115+
121116
@testsuite "reductions/minimum maximum extrema" (AT, eltypes)->begin
122117
@testset "$ET" for ET in eltypes
123118
ET <: Complex && continue

0 commit comments

Comments
 (0)