@@ -12,14 +12,15 @@ using Test, LinearMaps, LinearAlgebra, BlockArrays
1212
1313 N = @inferred LinearMap (B)
1414 @test axes (N) == (ax1,ax2)
15+ @test axes (N, 1 ) == ax1
16+ @test axes (N, 2 ) == ax2
17+ @test_throws ErrorException axes (N, 3 )
1518
1619 @test eltype (N) == eltype (B)
1720
1821 u = similar (Array{ComplexF64}, ax2)
1922 v = PseudoBlockVector {ComplexF64} (undef, [3 ,5 ])
20- w = PseudoBlockVector {ComplexF64} (undef, [4 ,3 ])
21- # v = similar(Array{ComplexF64}, blockedrange([3,5]))
22- # w = similar(Array{ComplexF64}, blockedrange([4,3]))
23+ w = similar (Array{ComplexF64}, ax1)
2324
2425 for i in eachindex (u) u[i] = rand (ComplexF64) end
2526 for i in eachindex (v) v[i] = rand (ComplexF64) end
@@ -34,11 +35,39 @@ using Test, LinearMaps, LinearAlgebra, BlockArrays
3435 @test axes (Nu)[1 ] == axes (N)[1 ] == axes (B)[1 ]
3536 @test blocklengths (axes (Nu)[1 ]) == blocklengths (axes (N)[1 ]) == blocklengths (axes (B)[1 ]) == [2 ,3 ]
3637
38+ for trans in (adjoint, transpose)
39+ Nt = trans (LinearMap (N))
40+ Bt = trans (B)
41+ Ntw = Nt* w
42+ Btw = Bt* w
43+ @test Ntw ≈ Btw
44+ @test axes (Ntw)[1 ] == axes (Nt)[1 ] == axes (Bt)[1 ]
45+ @test blocklengths (axes (Ntw)[1 ]) == blocklengths (axes (Nt)[1 ]) == blocklengths (axes (Bt)[1 ]) == [3 ,4 ]
46+ end
47+
3748 C = B + 2 N
3849 @test axes (C) === axes (B) === axes (N)
3950 @test C* u ≈ 3 * Nu
4051
4152 Cu = C* u
4253 @test axes (C)[1 ] == ax1
4354 @test blocklengths (axes (C)[1 ]) == blocklengths (ax1)
55+
56+ A = rand (ComplexF64,2 ,2 )
57+ B = PseudoBlockMatrix {ComplexF64} (undef, [2 ,2 ], [2 ,2 ])
58+ ax1 = axes (B)[1 ]
59+ ax2 = axes (B)[2 ]
60+ fill! (B,0 )
61+ B[Block (1 ),Block (2 )] .= A
62+ L = LinearMap (B)
63+ L2 = L* L
64+ B2 = B* B
65+ @test axes (L2) == axes (B2)
66+ B2 = B* Matrix (B)
67+ L2 = L* LinearMap (Matrix (B))
68+ @test axes (L2) == axes (B2)
69+ u = similar (Array{ComplexF64}, ax2)
70+ B2u = B2* u; L2u = L2* u
71+ @test axes (B2u)[1 ] == axes (L2u)[1 ] == axes (B2)[1 ] == axes (L2)[1 ]
72+ @test blocklengths (axes (B2u)[1 ]) == blocklengths (axes (L2u)[1 ]) == [2 ,2 ]
4473end
0 commit comments