@@ -23,7 +23,7 @@ arrayts = (Array, JLArray)
2323 Block (1 , 1 ) => dev (randn (elt, 2 , 2 ) ⊗ randn (elt, 2 , 2 )),
2424 Block (2 , 2 ) => dev (randn (elt, 3 , 3 ) ⊗ randn (elt, 3 , 3 )),
2525 )
26- a = dev (blocksparse (d, r, r))
26+ a = dev (blocksparse (d, ( r, r) ))
2727 @test sprint (show, a) isa String
2828 @test sprint (show, MIME (" text/plain" ), a) isa String
2929 @test blocktype (a) === valtype (d)
@@ -45,7 +45,7 @@ arrayts = (Array, JLArray)
4545 Block (1 , 1 ) => dev (randn (elt, 2 , 2 ) ⊗ randn (elt, 2 , 2 )),
4646 Block (2 , 2 ) => dev (randn (elt, 3 , 3 ) ⊗ randn (elt, 3 , 3 )),
4747 )
48- a = dev (blocksparse (d, r, r))
48+ a = dev (blocksparse (d, ( r, r) ))
4949 @test a[Block (2 , 2 )[(2 : 3 ) × (2 : 3 ), (2 : 3 ) × (2 : 3 )]] ==
5050 a[Block (2 , 2 )][(2 : 3 ) × (2 : 3 ), (2 : 3 ) × (2 : 3 )]
5151 @test a[Block (2 , 2 )[(:) × (2 : 3 ), (:) × (2 : 3 )]] == a[Block (2 , 2 )][(:) × (2 : 3 ), (:) × (2 : 3 )]
@@ -68,7 +68,7 @@ arrayts = (Array, JLArray)
6868 Block (1 , 1 ) => dev (randn (elt, 2 , 2 ) ⊗ randn (elt, 2 , 2 )),
6969 Block (2 , 2 ) => dev (randn (elt, 3 , 3 ) ⊗ randn (elt, 3 , 3 )),
7070 )
71- a = dev (blocksparse (d, r, r))
71+ a = dev (blocksparse (d, ( r, r) ))
7272 i1 = Block (1 )[(1 : 2 ) × (1 : 2 )]
7373 i2 = Block (2 )[(2 : 3 ) × (2 : 3 )]
7474 I = mortar ([i1, i2])
@@ -83,7 +83,7 @@ arrayts = (Array, JLArray)
8383 Block (1 , 1 ) => dev (randn (elt, 2 , 2 ) ⊗ randn (elt, 2 , 2 )),
8484 Block (2 , 2 ) => dev (randn (elt, 3 , 3 ) ⊗ randn (elt, 3 , 3 )),
8585 )
86- a = dev (blocksparse (d, r, r))
86+ a = dev (blocksparse (d, ( r, r) ))
8787 i1 = Block (1 )[(1 : 2 ) × (1 : 2 )]
8888 i2 = Block (2 )[(2 : 3 ) × (2 : 3 )]
8989 I = [i1, i2]
@@ -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
145148 Block (1 , 1 ) => Eye {elt} (2 , 2 ) ⊗ dev (randn (elt, 2 , 2 )),
146149 Block (2 , 2 ) => Eye {elt} (3 , 3 ) ⊗ dev (randn (elt, 3 , 3 )),
147150 )
148- a = @constinferred dev (blocksparse (d, r, r))
151+ a = @constinferred dev (blocksparse (d, ( r, r) ))
149152 @test sprint (show, a) == sprint (show, Array (a))
150153 @test sprint (show, MIME (" text/plain" ), a) isa String
151154 @test @constinferred (blocktype (a)) === valtype (d)
167170 Block (1 , 1 ) => dev (Eye {elt} (2 , 2 ) ⊗ randn (elt, 2 , 2 )),
168171 Block (2 , 2 ) => dev (Eye {elt} (3 , 3 ) ⊗ randn (elt, 3 , 3 )),
169172 )
170- a = dev (blocksparse (d, r, r))
173+ a = dev (blocksparse (d, ( r, r) ))
171174 @test a[Block (2 , 2 )[(2 : 3 ) × (2 : 3 ), (2 : 3 ) × (2 : 3 )]] ==
172175 a[Block (2 , 2 )][(2 : 3 ) × (2 : 3 ), (2 : 3 ) × (2 : 3 )]
173176 @test a[Block (2 , 2 )[(:) × (2 : 3 ), (:) × (2 : 3 )]] == a[Block (2 , 2 )][(:) × (2 : 3 ), (:) × (2 : 3 )]
194197 Block (1 , 1 ) => dev (Eye {elt} (2 , 2 ) ⊗ randn (elt, 2 , 2 )),
195198 Block (2 , 2 ) => dev (Eye {elt} (3 , 3 ) ⊗ randn (elt, 3 , 3 )),
196199 )
197- a = dev (blocksparse (d, r, r))
200+ a = dev (blocksparse (d, ( r, r) ))
198201 i1 = Block (1 )[(1 : 2 ) × (1 : 2 )]
199202 i2 = Block (2 )[(2 : 3 ) × (2 : 3 )]
200203 I = mortar ([i1, i2])
209212 Block (1 , 1 ) => dev (Eye {elt} (2 , 2 ) ⊗ randn (elt, 2 , 2 )),
210213 Block (2 , 2 ) => dev (Eye {elt} (3 , 3 ) ⊗ randn (elt, 3 , 3 )),
211214 )
212- a = dev (blocksparse (d, r, r))
215+ a = dev (blocksparse (d, ( r, r) ))
213216 i1 = Block (1 )[(1 : 2 ) × (1 : 2 )]
214217 i2 = Block (2 )[(2 : 3 ) × (2 : 3 )]
215218 I = [i1, i2]
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)
282287 Block (1 , 1 ) => Eye {elt} (2 , 2 ) ⊗ randn (rng, elt, 2 , 2 ),
283288 Block (2 , 2 ) => Eye {elt} (3 , 3 ) ⊗ randn (rng, elt, 3 , 3 ),
284289 )
285- a = @constinferred dev (blocksparse (d, r, r))
290+ a = @constinferred dev (blocksparse (d, ( r, r) ))
286291 if arrayt === Array
287292 u, s, v = svd_trunc (a; trunc= (; maxrank= 6 ))
288293 u′, s′, v′ = svd_trunc (Matrix (a); trunc= (; maxrank= 5 ))
@@ -293,10 +298,10 @@ end
293298
294299 @testset " Block deficient" begin
295300 da = Dict (Block (1 , 1 ) => Eye {elt} (2 , 2 ) ⊗ dev (randn (elt, 2 , 2 )))
296- a = @constinferred dev (blocksparse (da, r, r))
301+ a = @constinferred dev (blocksparse (da, ( r, r) ))
297302
298303 db = Dict (Block (2 , 2 ) => Eye {elt} (3 , 3 ) ⊗ dev (randn (elt, 3 , 3 )))
299- b = @constinferred dev (blocksparse (db, r, r))
304+ b = @constinferred dev (blocksparse (db, ( r, r) ))
300305
301306 @test Array (a + b) ≈ Array (a) + Array (b)
302307 @test Array (2 a) ≈ 2 Array (a)
0 commit comments