@@ -11,18 +11,14 @@ using Test
11
11
blocks2 = [rand (rng, N1, N1), rand (rng, N3, N3), rand (rng, N2, N2)]
12
12
blocks3 = [rand (rng, N1, N1), rand (rng, N2, N2), rand (rng, N2, N2)]
13
13
14
- @testset " $T " for (T, (b1, b2, b3)) in (
15
- Tuple => (BlockDiagonal (Tuple (blocks1)), BlockDiagonal (Tuple (blocks2)), BlockDiagonal (Tuple (blocks3))),
16
- Vector => (BlockDiagonal (blocks1), BlockDiagonal (blocks2), BlockDiagonal (blocks3)),
17
- )
18
- A = rand (rng, N, N + N1)
19
- B = rand (rng, N + N1, N + N2)
20
- A′, B′ = A' , B'
21
- a = rand (rng, N)
22
- b = rand (rng, N + N1)
14
+ @testset for V in (Tuple, Vector)
15
+ b1 = BlockDiagonal (V (blocks1))
16
+ b2 = BlockDiagonal (V (blocks2))
17
+ N = size (b1, 1 )
23
18
24
19
@testset " AbstractArray" begin
25
- X = rand (2 , 2 ); Y = rand (3 , 3 )
20
+ X = rand (2 , 2 )
21
+ Y = rand (3 , 3 )
26
22
27
23
@test size (b1) == (N, N)
28
24
@test size (b1, 1 ) == N && size (b1, 2 ) == N
@@ -47,7 +43,7 @@ using Test
47
43
end
48
44
49
45
@testset " parent" begin
50
- @test parent (b1) isa Union{Tuple,AbstractVector}
46
+ @test parent (b1) isa V
51
47
@test eltype (parent (b1)) <: AbstractMatrix
52
48
@test parent (BlockDiagonal ([X, Y])) == [X, Y]
53
49
@test parent (BlockDiagonal ((X, Y))) == (X, Y)
@@ -60,7 +56,7 @@ using Test
60
56
end
61
57
62
58
@testset " setindex!" begin
63
- X = BlockDiagonal ([rand (Float32, 5 , 5 ), rand (Float32, 3 , 3 )])
59
+ X = BlockDiagonal (V ( [rand (Float32, 5 , 5 ), rand (Float32, 3 , 3 )]) )
64
60
X[10 ] = Int (10 )
65
61
@test X[10 ] === Float32 (10.0 )
66
62
X[3 , 3 ] = Int (9 )
@@ -77,9 +73,9 @@ using Test
77
73
end
78
74
79
75
@testset " blocks size" begin
80
- B = BlockDiagonal ([rand (3 , 3 ), rand (4 , 4 )])
76
+ B = BlockDiagonal (V ( [rand (3 , 3 ), rand (4 , 4 )]) )
81
77
@test nblocks (B) == 2
82
- @test blocksizes (B) == [(3 , 3 ), (4 , 4 )]
78
+ @test blocksizes (B) == V ( [(3 , 3 ), (4 , 4 )])
83
79
@test blocksize (B, 2 ) == blocksizes (B)[2 ] == blocksize (B, 2 , 2 )
84
80
end
85
81
@@ -101,15 +97,15 @@ using Test
101
97
end # Equality
102
98
103
99
@testset " Non-Square Matrix" begin
104
- A1 = ones (2 , 4 )
105
- A2 = 2 * ones (3 , 2 )
106
- B1 = BlockDiagonal ([A1, A2])
100
+ A1 = ones (2 , 4 )
101
+ A2 = 2 * ones (3 , 2 )
102
+ B1 = BlockDiagonal (V ( [A1, A2]) )
107
103
B2 = [A1 zeros (2 , 2 ); zeros (3 , 4 ) A2]
108
104
109
- @test B1 == B2
110
- # Dimension check
111
- @test sum (size .(B1. blocks, 1 )) == size (B2, 1 )
112
- @test sum (size .(B1. blocks, 2 )) == size (B2, 2 )
105
+ @test B1 == B2
106
+ # Dimension check
107
+ @test sum (size .(B1. blocks, 1 )) == size (B2, 1 )
108
+ @test sum (size .(B1. blocks, 2 )) == size (B2, 2 )
113
109
end # Non-Square Matrix
114
110
115
111
@testset " copy" begin
0 commit comments