Skip to content

Commit 8b3235c

Browse files
Simplify test setup for linalg.jl
1 parent 32f9d07 commit 8b3235c

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)
@@ -148,7 +140,7 @@ using Test
148140

149141
@testset "eigvals on LinearAlgebra types" begin
150142
# `eigvals` has different methods for different types, e.g. Hermitian
151-
b_herm = BlockDiagonal(T(Hermitian(rand(rng, 3, 3) + I) for _ in 1:3))
143+
b_herm = BlockDiagonal(V([Hermitian(rand(rng, 3, 3) + I) for _ in 1:3]))
152144
@test eigvals(b_herm) eigvals(Matrix(b_herm))
153145
@test eigvals(b_herm, 1.0, 2.0) eigvals(Hermitian(Matrix(b_herm)), 1.0, 2.0)
154146
end
@@ -168,21 +160,21 @@ using Test
168160
0.0 1.0 5.0
169161
0.0 0.0 3.0]
170162

171-
B = BlockDiagonal(T([X, X]))
163+
B = BlockDiagonal(V([X, X]))
172164
C = cholesky(B)
173165
@test C isa Cholesky{Float64, <:BlockDiagonal{Float64}}
174166
@test C.U cholesky(Matrix(B)).U
175-
@test C.U BlockDiagonal(T([U, U]))
176-
@test C.L BlockDiagonal(T([U', U']))
167+
@test C.U BlockDiagonal(V([U, U]))
168+
@test C.L BlockDiagonal(V([U', U']))
177169
@test C.UL C.U
178170
@test C.uplo === 'U'
179171
@test C.info == 0
180172

181173
M = BlockDiagonal(map(Matrix, blocks(C.L)))
182174
C = Cholesky(M, 'L', 0)
183175
@test C.U cholesky(Matrix(B)).U
184-
@test C.U BlockDiagonal(T([U, U]))
185-
@test C.L BlockDiagonal(T([U', U']))
176+
@test C.U BlockDiagonal(V([U, U]))
177+
@test C.L BlockDiagonal(V([U', U']))
186178
@test C.UL C.L
187179
@test C.uplo === 'L'
188180
@test C.info == 0
@@ -192,7 +184,7 @@ using Test
192184
X = [ 4 12 -16
193185
12 37 -43
194186
-16 -43 98]
195-
B = BlockDiagonal(T([X, X]))
187+
B = BlockDiagonal(V([X, X]))
196188

197189
@testset "full=$full" for full in (true, false)
198190

0 commit comments

Comments
 (0)