Skip to content

Commit 1a616d0

Browse files
Add a couple more tests
1 parent b0f5010 commit 1a616d0

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

src/performance.jl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,3 +471,15 @@ findmax(C′)
471471
@benchmark vtfindmax(+, C1, C2, C3)
472472
@benchmark vtfindmax(+, cs)
473473
@benchmark vtfindmax((x, y, z) -> x * y + z, C1, C2, C3)
474+
475+
@benchmark findmin(@. $C1 + $C2 + $C3)
476+
@benchmark vfindmin(+, $C1, $C2, $C3)
477+
@benchmark vtfindmin(+, $C1, $C2, $C3)
478+
479+
@benchmark findmin((@. $C1 + $C2 + $C3), dims=(2,4))
480+
@benchmark vfindmin(+, $C1, $C2, $C3, dims=(2,4))
481+
@benchmark vtfindmin(+, $C1, $C2, $C3, dims=(2,4))
482+
483+
@benchmark findmin((@. abs2($C1) * $C2 + $C3), dims=$(3,4))
484+
@benchmark vfindmin((x, y, z) -> abs2(x) * y + z, $C1, $C2, $C3, dims=$(3,4))
485+
@benchmark vtfindmin((x, y, z) -> abs2(x) * y + z, $C1, $C2, $C3, dims=$(3,4))

test/runtests.jl

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,17 +66,38 @@ using Test
6666
A′ = @. A1 + A2 + A3
6767
@test findmin(A′) == vfindmin(+, A1, A2, A3)
6868
@test findmin(A′, dims=2) == vfindmin(+, A1, A2, A3, dims=2)
69+
#
6970
v1 = rand(5)
7071
v2 = rand(5)
7172
v3 = rand(5)
7273
v′ = @. v1 + v2 + v3;
7374
@test findmin(v′) == vfindmin(+, v1, v2, v3)
75+
#
76+
A = rand(5,5,5,5)
77+
A′ = cos.(A)
78+
val1, ind1 = findmax(A′, dims=(2,4))
79+
val2, ind2 = vfindmax(cos, A, dims=(2,4))
80+
@test ind1 == ind2 && val1 val2
81+
#
82+
g(x) = ifelse(abs(x) 2, 100, 1)
83+
A = randn(5,5,5,5)
84+
A′ = g.(A)
85+
val1, ind1 = findmax(A′, dims=(2,4))
86+
val2, ind2 = vfindmax(g, A, dims=(2,4))
87+
@test ind1 == ind2 && val1 val2
7488
end
7589
@testset "vfindminmax_vararg" begin
7690
A′ = @. A1 * A2 + A3;
7791
@test findmin(A′) == vfindmin((x, y, z) -> x * y + z, A1, A2, A3)
7892
val1, ind1 = findmin(A′, dims=2)
7993
val2, ind2 = vfindmin((x, y, z) -> x * y + z, A1, A2, A3, dims=2)
8094
@test ind1 == ind2 && val1 val2
95+
#
96+
B1, B2, B3 = randn(5,5,5,5), randn(5,5,5,5), randn(5,5,5,5);
97+
h(x, y, z) = ifelse(x .5, 100, 1) * y + abs(z)
98+
B′ = h.(B1, B2, B3)
99+
val1, ind1 = findmax(B′, dims=(2,4))
100+
val2, ind2 = vfindmax(h, B1, B2, B3, dims=(2,4))
101+
@test ind1 == ind2 && val1 val2
81102
end
82103
end

0 commit comments

Comments
 (0)