From 545e97cfe1c41a896471eb48ea24510b162f357d Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Fri, 21 Aug 2026 17:48:04 -0300 Subject: [PATCH 1/4] Combine math testsets --- test/testsuite/math.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/testsuite/math.jl b/test/testsuite/math.jl index 6890e71b5..c1927e4be 100644 --- a/test/testsuite/math.jl +++ b/test/testsuite/math.jl @@ -1,4 +1,5 @@ -@testsuite "math/intrinsics" (AT, eltypes)->begin +@testsuite "math" (AT, eltypes)->begin + # clamp for ET in filter(!iscomplextype, eltypes) T = AT{ET} @testset "$ET" begin @@ -12,9 +13,8 @@ end end end -end -@testsuite "math/power" (AT, eltypes)->begin + # power for ET in eltypes for p in 0:5 @test compare(x->x^p, AT, rand(ET, 2,2)) From e6fbbcd25b379fc22b61371430b977e7a054f587 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Fri, 21 Aug 2026 17:49:37 -0300 Subject: [PATCH 2/4] Reduce tests --- test/testsuite/math.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/testsuite/math.jl b/test/testsuite/math.jl index c1927e4be..7542f3f9c 100644 --- a/test/testsuite/math.jl +++ b/test/testsuite/math.jl @@ -16,7 +16,7 @@ # power for ET in eltypes - for p in 0:5 + for p in [0,1,2,5] @test compare(x->x^p, AT, rand(ET, 2,2)) end end From 304c11be5e23634189ba78bee126df159e305107 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Fri, 21 Aug 2026 18:02:16 -0300 Subject: [PATCH 3/4] Combine kron tests --- test/testsuite/linalg.jl | 75 ++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/test/testsuite/linalg.jl b/test/testsuite/linalg.jl index 6183ebb7b..7f4a7dcee 100644 --- a/test/testsuite/linalg.jl +++ b/test/testsuite/linalg.jl @@ -454,6 +454,43 @@ end @testset "$T, $opa, $opb" for T in eltypes, opa in (vec, identity, transpose, adjoint), opb in (vec, identity, transpose, adjoint) @test compare(kron, AT, opa(rand(T, 16, 32)), opb(rand(T, 64, 8))) end + + # Diagonal + @testset "$T" for T in filter(T -> T == Float32 || T == Float64, eltypes) + n, m = 16, 8 + a, b = rand(T, n), rand(T, m) + + # Diagonal*Diagonal + R = kron(Diagonal(adapt(AT, a)), Diagonal(adapt(AT, b))) + @test R isa Diagonal + @test Array(R.diag) ≈ kron(a, b) + + # Diagonal*Dense + B = rand(T, m, m) + R2 = kron(Diagonal(adapt(AT, a)), adapt(AT, B)) + @test Array(R2) ≈ kron(Matrix(Diagonal(a)), B) + + # Dense*Diagonal + A = rand(T, n, n) + R3 = kron(adapt(AT, A), Diagonal(adapt(AT, b))) + @test Array(R3) ≈ kron(A, Matrix(Diagonal(b))) + + # kron! Diagonal*Diagonal + C1 = Diagonal(adapt(AT, zeros(T, n * m))) + kron!(C1, Diagonal(adapt(AT, a)), Diagonal(adapt(AT, b))) + @test C1 isa Diagonal + @test Array(C1.diag) ≈ kron(a, b) + + # kron! Diagonal*Dense + C2 = adapt(AT, zeros(T, n * m, n * m)) + kron!(C2, Diagonal(adapt(AT, a)), adapt(AT, B)) + @test Array(C2) ≈ kron(Matrix(Diagonal(a)), B) + + # kron! Dense*Diagonal + C3 = adapt(AT, zeros(T, n * m, n * m)) + kron!(C3, adapt(AT, A), Diagonal(adapt(AT, b))) + @test Array(C3) ≈ kron(A, Matrix(Diagonal(b))) + end end @testsuite "linalg/diagonal" (AT, eltypes) -> begin @@ -873,41 +910,3 @@ end end end end - -@testsuite "linalg/kron_diagonal" (AT, eltypes) -> begin - for T in filter(T -> T == Float32 || T == Float64, eltypes) - n, m = 16, 8 - a, b = rand(T, n), rand(T, m) - - # Diagonal*Diagonal - R = kron(Diagonal(adapt(AT, a)), Diagonal(adapt(AT, b))) - @test R isa Diagonal - @test Array(R.diag) ≈ kron(a, b) - - # Diagonal*Dense - B = rand(T, m, m) - R2 = kron(Diagonal(adapt(AT, a)), adapt(AT, B)) - @test Array(R2) ≈ kron(Matrix(Diagonal(a)), B) - - # Dense*Diagonal - A = rand(T, n, n) - R3 = kron(adapt(AT, A), Diagonal(adapt(AT, b))) - @test Array(R3) ≈ kron(A, Matrix(Diagonal(b))) - - # kron! Diagonal*Diagonal - C1 = Diagonal(adapt(AT, zeros(T, n * m))) - kron!(C1, Diagonal(adapt(AT, a)), Diagonal(adapt(AT, b))) - @test C1 isa Diagonal - @test Array(C1.diag) ≈ kron(a, b) - - # kron! Diagonal*Dense - C2 = adapt(AT, zeros(T, n * m, n * m)) - kron!(C2, Diagonal(adapt(AT, a)), adapt(AT, B)) - @test Array(C2) ≈ kron(Matrix(Diagonal(a)), B) - - # kron! Dense*Diagonal - C3 = adapt(AT, zeros(T, n * m, n * m)) - kron!(C3, adapt(AT, A), Diagonal(adapt(AT, b))) - @test Array(C3) ≈ kron(A, Matrix(Diagonal(b))) - end -end From 03a9157090b04eefc13d68b10a2f9de72d21b6ae Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Fri, 21 Aug 2026 18:03:07 -0300 Subject: [PATCH 4/4] Combine gemm tests Saves on compilation --- test/testsuite/linalg.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/testsuite/linalg.jl b/test/testsuite/linalg.jl index 7f4a7dcee..ad0f3fd6e 100644 --- a/test/testsuite/linalg.jl +++ b/test/testsuite/linalg.jl @@ -659,7 +659,8 @@ end end end -@testsuite "linalg/mul!/vector-matrix" (AT, eltypes)->begin +@testsuite "linalg/mul!/gemm" (AT, eltypes)->begin + # vector-matrix @testset "$T gemv y := $f(A) * x * a + y * b" for f in (identity, transpose, adjoint), T in eltypes y, A, x = rand(T, 4), rand(T, 4, 4), rand(T, 4) @@ -675,9 +676,8 @@ end @test compare(mul!, AT, rand(T, 2,2), rand(T, 2,1), f(rand(T, 2))) end end -end -@testsuite "linalg/mul!/matrix-matrix" (AT, eltypes)->begin + # matrix-matrix @testset "$T gemm C := $f(A) * $g(B) * a + C * b" for f in (identity, transpose, adjoint), g in (identity, transpose, adjoint), T in eltypes A, B, C = rand(T, 4, 4), rand(T, 4, 4), rand(T, 4, 4)