Skip to content

Commit 9bf2360

Browse files
Simplify test setup for linalg.jl
1 parent 5a8f49b commit 9bf2360

File tree

1 file changed

+11
-19
lines changed

1 file changed

+11
-19
lines changed

test/linalg.jl

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,12 @@ using Test
77
@testset "linalg.jl" begin
88
rng = MersenneTwister(123456)
99
N1, N2, N3 = 3, 4, 5
10-
N = N1 + N2 + N3
1110
blocks1 = [rand(rng, N1, N1), rand(rng, N2, N2), rand(rng, N3, N3)]
1211
blocks2 = [rand(rng, N1, N1), rand(rng, N3, N3), rand(rng, N2, N2)]
13-
blocks3 = [rand(rng, N1, N1), rand(rng, N2, N2), rand(rng, N2, N2)]
14-
15-
@testset "$T" for (T, (b1, b2, b3)) in (
16-
Tuple => (BlockDiagonal(Tuple(blocks1)), BlockDiagonal(Tuple(blocks2)), BlockDiagonal(Tuple(blocks3))),
17-
Vector => (BlockDiagonal(blocks1), BlockDiagonal(blocks2), BlockDiagonal(blocks3)),
18-
)
19-
A = rand(rng, N, N + N1)
20-
B = rand(rng, N + N1, N + N2)
21-
A′, B′ = A', B'
22-
a = rand(rng, N)
23-
b = rand(rng, N + N1)
12+
13+
@testset for V in (Tuple, Vector)
14+
b1 = BlockDiagonal(V(blocks1))
15+
b2 = BlockDiagonal(V(blocks2))
2416

2517
@testset "mul!" begin
2618
c = similar(b1)
@@ -60,7 +52,7 @@ using Test
6052

6153
@testset "eigvals on LinearAlgebra types" begin
6254
# `eigvals` has different methods for different types, e.g. Hermitian
63-
b_herm = BlockDiagonal(T(Hermitian(rand(rng, 3, 3) + I) for _ in 1:3))
55+
b_herm = BlockDiagonal(V([Hermitian(rand(rng, 3, 3) + I) for _ in 1:3]))
6456
@test eigvals(b_herm) eigvals(Matrix(b_herm))
6557
@test eigvals(b_herm, 1.0, 2.0) eigvals(Hermitian(Matrix(b_herm)), 1.0, 2.0)
6658
end
@@ -80,21 +72,21 @@ using Test
8072
0.0 1.0 5.0
8173
0.0 0.0 3.0]
8274

83-
B = BlockDiagonal(T([X, X]))
75+
B = BlockDiagonal(V([X, X]))
8476
C = cholesky(B)
8577
@test C isa Cholesky{Float64, <:BlockDiagonal{Float64}}
8678
@test C.U cholesky(Matrix(B)).U
87-
@test C.U BlockDiagonal(T([U, U]))
88-
@test C.L BlockDiagonal(T([U', U']))
79+
@test C.U BlockDiagonal(V([U, U]))
80+
@test C.L BlockDiagonal(V([U', U']))
8981
@test C.UL C.U
9082
@test C.uplo === 'U'
9183
@test C.info == 0
9284

9385
M = BlockDiagonal(map(Matrix, blocks(C.L)))
9486
C = Cholesky(M, 'L', 0)
9587
@test C.U cholesky(Matrix(B)).U
96-
@test C.U BlockDiagonal(T([U, U]))
97-
@test C.L BlockDiagonal(T([U', U']))
88+
@test C.U BlockDiagonal(V([U, U]))
89+
@test C.L BlockDiagonal(V([U', U']))
9890
@test C.UL C.L
9991
@test C.uplo === 'L'
10092
@test C.info == 0
@@ -104,7 +96,7 @@ using Test
10496
X = [ 4 12 -16
10597
12 37 -43
10698
-16 -43 98]
107-
B = BlockDiagonal(T([X, X]))
99+
B = BlockDiagonal(V([X, X]))
108100

109101
@testset "full=$full" for full in (true, false)
110102

0 commit comments

Comments
 (0)