@@ -130,9 +130,12 @@ arrayts = (Array, JLArray)
130130 @test_broken svd_compact (a)
131131 end
132132
133+ b = a[Block .(1 : 2 ), Block (2 )]
134+ @test b[Block (1 )] == a[Block (1 , 2 )]
135+ @test b[Block (2 )] == a[Block (2 , 2 )]
136+
133137 # Broken operations
134138 @test_broken exp (a)
135- @test_broken a[Block .(1 : 2 ), Block (2 )]
136139end
137140
138141@testset " BlockSparseArraysExt, EyeKronecker blocks (arraytype=$arrayt , eltype=$elt )" for arrayt in
@@ -174,19 +177,19 @@ end
174177 @test a[Block (2 , 2 )[(1 : 2 ) × (2 : 3 ), (:) × (2 : 3 )]] ==
175178 a[Block (2 , 2 )][(1 : 2 ) × (2 : 3 ), (:) × (2 : 3 )]
176179
177- # # # Blockwise slicing, shows up in truncated block sparse matrix factorizations.
178- # # I1 = BlockIndexVector(Block(1), Base.Slice(Base.OneTo(2)) × [1])
179- # # I2 = BlockIndexVector(Block(2), Base.Slice(Base.OneTo(3)) × [1, 3])
180- # # I = [I1, I2]
181- # # b = a[I, I]
182- # # @test b[Block(1, 1)] == a[Block(1, 1)[(1:2) × [1], (1:2) × [1]]]
183- # # @test arg1(b[Block(1, 1)]) isa Eye
184- # # @test iszero(b[Block(2, 1)])
185- # # @test arg1(b[Block(2, 1)]) isa Eye
186- # # @test iszero(b[Block(1, 2)])
187- # # @test arg1(b[Block(1, 2)]) isa Eye
188- # # @test b[Block(2, 2)] == a[Block(2, 2)[(1:3) × [1, 3], (1:3) × [1, 3]]]
189- # # @test arg1(b[Block(2, 2)]) isa Eye
180+ # Blockwise slicing, shows up in truncated block sparse matrix factorizations.
181+ I1 = BlockIndexVector (Block (1 ), Base. Slice (Base. OneTo (2 )) × [1 ])
182+ I2 = BlockIndexVector (Block (2 ), Base. Slice (Base. OneTo (3 )) × [1 , 3 ])
183+ I = [I1, I2]
184+ b = a[I, I]
185+ @test b[Block (1 , 1 )] == a[Block (1 , 1 )[(1 : 2 ) × [1 ], (1 : 2 ) × [1 ]]]
186+ @test arg1 (b[Block (1 , 1 )]) isa Eye
187+ @test iszero (b[Block (2 , 1 )])
188+ @test arg1 (b[Block (2 , 1 )]) isa Eye
189+ @test iszero (b[Block (1 , 2 )])
190+ @test arg1 (b[Block (1 , 2 )]) isa Eye
191+ @test b[Block (2 , 2 )] == a[Block (2 , 2 )[(1 : 3 ) × [1 , 3 ], (1 : 3 ) × [1 , 3 ]]]
192+ @test arg1 (b[Block (2 , 2 )]) isa Eye
190193
191194 # Slicing
192195 r = blockrange ([2 × 2 , 3 × 3 ])
272275 end
273276
274277 # Broken operations
275- @test_broken a[Block .(1 : 2 ), Block (2 )]
278+ b = a[Block .(1 : 2 ), Block (2 )]
279+ @test b[Block (1 )] == a[Block (1 , 2 )]
280+ @test b[Block (2 )] == a[Block (2 , 2 )]
276281
277282 # svd_trunc
278283 dev = adapt (arrayt)
0 commit comments