@@ -337,6 +337,24 @@ arrayts = (Array, JLArray)
337
337
@test blockstoredlength (a) == 1
338
338
@test storedlength (a) == 2 * 4
339
339
340
+ # Test similar on broadcasted expressions.
341
+ a = dev (BlockSparseArray {elt} (undef, ([2 , 3 ], [3 , 4 ])))
342
+ bc = Broadcast. broadcasted (+ , a, a)
343
+ a′ = similar (bc, Float32)
344
+ @test a′ isa BlockSparseArray{Float32}
345
+ @test blocktype (a′) <: arrayt{Float32,3}
346
+ @test axes (a) == (blockedrange ([2 , 3 ]), blockedrange ([3 , 4 ]))
347
+
348
+ # Test similar on broadcasted expressions with axes specified.
349
+ a = dev (BlockSparseArray {elt} (undef, ([2 , 3 ], [3 , 4 ])))
350
+ bc = Broadcast. broadcasted (+ , a, a)
351
+ a′ = similar (
352
+ bc, Float32, (blockedrange ([2 , 4 ]), blockedrange ([2 , 5 ]), blockedrange ([2 , 2 ]))
353
+ )
354
+ @test a′ isa BlockSparseArray{Float32}
355
+ @test blocktype (a′) <: arrayt{Float32,3}
356
+ @test axes (a′) == (blockedrange ([2 , 4 ]), blockedrange ([2 , 5 ]), blockedrange ([2 , 2 ]))
357
+
340
358
a = dev (BlockSparseArray {elt} (undef, ([2 , 3 ], [3 , 4 ])))
341
359
@views for b in [Block (1 , 2 ), Block (2 , 1 )]
342
360
a[b] = dev (randn (elt, size (a[b])))
0 commit comments