Skip to content

Commit b9ffb02

Browse files
committed
Use Delta in BlockSparseArrays tests
1 parent 1d5e05e commit b9ffb02

File tree

2 files changed

+40
-322
lines changed

2 files changed

+40
-322
lines changed

test/test_blocksparsearrays.jl

Lines changed: 40 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ using BlockSparseArrays:
88
blocksparse,
99
blocktype,
1010
eachblockaxis
11-
using FillArrays: Eye, SquareEye
11+
# using FillArrays: Eye, SquareEye
12+
using DiagonalArrays: Delta, δ
1213
using JLArrays: JLArray
1314
using KroneckerArrays: KroneckerArray, , ×, arg1, arg2, cartesianrange
1415
using LinearAlgebra: norm
@@ -155,15 +156,15 @@ arrayts = (Array, JLArray)
155156
@test_broken exp(a)
156157
end
157158

158-
@testset "BlockSparseArraysExt, EyeKronecker blocks (arraytype=$arrayt, eltype=$elt)" for arrayt in
159-
arrayts,
159+
@testset "BlockSparseArraysExt, DeltaKronecker blocks (arraytype=$arrayt, eltype=$elt)" for arrayt in
160+
arrayts,
160161
elt in elts
161162

162163
dev = adapt(arrayt)
163164
r = @constinferred blockrange([2 × 2, 3 × 3])
164165
d = Dict(
165-
Block(1, 1) => Eye{elt}(2, 2) dev(randn(elt, 2, 2)),
166-
Block(2, 2) => Eye{elt}(3, 3) dev(randn(elt, 3, 3)),
166+
Block(1, 1) => δ(elt, (2, 2)) dev(randn(elt, 2, 2)),
167+
Block(2, 2) => δ(elt, (3, 3)) dev(randn(elt, 3, 3)),
167168
)
168169
a = @constinferred dev(blocksparse(d, (r, r)))
169170
@test sprint(show, a) == sprint(show, Array(a))
@@ -175,17 +176,17 @@ end
175176
@test @constinferred(a[Block(2, 2)]) == dev(d[Block(2, 2)])
176177
@test @constinferred(a[Block(2, 2)]) isa valtype(d)
177178
@test @constinferred(iszero(a[Block(2, 1)]))
178-
@test a[Block(2, 1)] == dev(Eye(3, 2) zeros(elt, 3, 2))
179+
@test a[Block(2, 1)] == dev(δ(3, 2) zeros(elt, 3, 2))
179180
@test a[Block(2, 1)] isa valtype(d)
180181
@test iszero(a[Block(1, 2)])
181-
@test a[Block(1, 2)] == dev(Eye(2, 3) zeros(elt, 2, 3))
182+
@test a[Block(1, 2)] == dev(δ(2, 3) zeros(elt, 2, 3))
182183
@test a[Block(1, 2)] isa valtype(d)
183184

184185
# Slicing
185186
r = blockrange([2 × 2, 3 × 3])
186187
d = Dict(
187-
Block(1, 1) => dev(Eye{elt}(2, 2) randn(elt, 2, 2)),
188-
Block(2, 2) => dev(Eye{elt}(3, 3) randn(elt, 3, 3)),
188+
Block(1, 1) => dev(δ(elt, (2, 2)) randn(elt, 2, 2)),
189+
Block(2, 2) => dev(δ(elt, (3, 3)) randn(elt, 3, 3)),
189190
)
190191
a = dev(blocksparse(d, (r, r)))
191192
@test a[Block(2, 2)[(2:3) × (2:3), (2:3) × (2:3)]] ==
@@ -200,19 +201,19 @@ end
200201
I = [I1, I2]
201202
b = a[I, I]
202203
@test b[Block(1, 1)] == a[Block(1, 1)[(1:2) × [1], (1:2) × [1]]]
203-
@test arg1(b[Block(1, 1)]) isa Eye
204+
@test arg1(b[Block(1, 1)]) isa Delta
204205
@test iszero(b[Block(2, 1)])
205-
@test arg1(b[Block(2, 1)]) isa Eye
206+
@test arg1(b[Block(2, 1)]) isa Delta
206207
@test iszero(b[Block(1, 2)])
207-
@test arg1(b[Block(1, 2)]) isa Eye
208+
@test arg1(b[Block(1, 2)]) isa Delta
208209
@test b[Block(2, 2)] == a[Block(2, 2)[(1:3) × [1, 3], (1:3) × [1, 3]]]
209-
@test arg1(b[Block(2, 2)]) isa Eye
210+
@test arg1(b[Block(2, 2)]) isa Delta
210211

211212
# Slicing
212213
r = blockrange([2 × 2, 3 × 3])
213214
d = Dict(
214-
Block(1, 1) => dev(Eye{elt}(2, 2) randn(elt, 2, 2)),
215-
Block(2, 2) => dev(Eye{elt}(3, 3) randn(elt, 3, 3)),
215+
Block(1, 1) => dev(δ(elt, (2, 2)) randn(elt, 2, 2)),
216+
Block(2, 2) => dev(δ(elt, (3, 3)) randn(elt, 3, 3)),
216217
)
217218
a = dev(blocksparse(d, (r, r)))
218219
i1 = Block(1)[(1:2) × (1:2)]
@@ -226,8 +227,8 @@ end
226227
# Slicing
227228
r = blockrange([2 × 2, 3 × 3])
228229
d = Dict(
229-
Block(1, 1) => dev(Eye{elt}(2, 2) randn(elt, 2, 2)),
230-
Block(2, 2) => dev(Eye{elt}(3, 3) randn(elt, 3, 3)),
230+
Block(1, 1) => dev(δ(elt, (2, 2)) randn(elt, 2, 2)),
231+
Block(2, 2) => dev(δ(elt, (3, 3)) randn(elt, 3, 3)),
231232
)
232233
a = dev(blocksparse(d, (r, r)))
233234
i1 = Block(1)[(1:2) × (1:2)]
@@ -240,8 +241,8 @@ end
240241

241242
r = blockrange([2 × 2, 3 × 3])
242243
d = Dict(
243-
Block(1, 1) => dev(Eye{elt}(2, 2) randn(elt, 2, 2)),
244-
Block(2, 2) => dev(Eye{elt}(3, 3) randn(elt, 3, 3)),
244+
Block(1, 1) => dev(δ(elt, (2, 2)) randn(elt, 2, 2)),
245+
Block(2, 2) => dev(δ(elt, (3, 3)) randn(elt, 3, 3)),
245246
)
246247
a = dev(blocksparse(d, (r, r)))
247248
b = @constinferred a * a
@@ -250,8 +251,8 @@ end
250251

251252
r = blockrange([2 × 2, 3 × 3])
252253
d = Dict(
253-
Block(1, 1) => dev(Eye{elt}(2, 2) randn(elt, 2, 2)),
254-
Block(2, 2) => dev(Eye{elt}(3, 3) randn(elt, 3, 3)),
254+
Block(1, 1) => dev(δ(elt, (2, 2)) randn(elt, 2, 2)),
255+
Block(2, 2) => dev(δ(elt, (3, 3)) randn(elt, 3, 3)),
255256
)
256257
a = dev(blocksparse(d, (r, r)))
257258
# Type inference is broken for this operation.
@@ -262,8 +263,8 @@ end
262263

263264
r = blockrange([2 × 2, 3 × 3])
264265
d = Dict(
265-
Block(1, 1) => dev(Eye{elt}(2, 2) randn(elt, 2, 2)),
266-
Block(2, 2) => dev(Eye{elt}(3, 3) randn(elt, 3, 3)),
266+
Block(1, 1) => dev(δ(elt, (2, 2)) randn(elt, 2, 2)),
267+
Block(2, 2) => dev(δ(elt, (3, 3)) randn(elt, 3, 3)),
267268
)
268269
a = dev(blocksparse(d, (r, r)))
269270
# Type inference is broken for this operation.
@@ -274,8 +275,8 @@ end
274275

275276
r = blockrange([2 × 2, 3 × 3])
276277
d = Dict(
277-
Block(1, 1) => dev(Eye{elt}(2, 2) randn(elt, 2, 2)),
278-
Block(2, 2) => dev(Eye{elt}(3, 3) randn(elt, 3, 3)),
278+
Block(1, 1) => dev(δ(elt, (2, 2)) randn(elt, 2, 2)),
279+
Block(2, 2) => dev(δ(elt, (3, 3)) randn(elt, 3, 3)),
279280
)
280281
a = dev(blocksparse(d, (r, r)))
281282
# Type inference is broken for this operation.
@@ -286,16 +287,16 @@ end
286287

287288
r = blockrange([2 × 2, 3 × 3])
288289
d = Dict(
289-
Block(1, 1) => dev(Eye{elt}(2, 2) randn(elt, 2, 2)),
290-
Block(2, 2) => dev(Eye{elt}(3, 3) randn(elt, 3, 3)),
290+
Block(1, 1) => dev(δ(elt, (2, 2)) randn(elt, 2, 2)),
291+
Block(2, 2) => dev(δ(elt, (3, 3)) randn(elt, 3, 3)),
291292
)
292293
a = dev(blocksparse(d, (r, r)))
293294
@test @constinferred(norm(a)) norm(Array(a))
294295

295296
r = blockrange([2 × 2, 3 × 3])
296297
d = Dict(
297-
Block(1, 1) => dev(Eye{elt}(2, 2) randn(elt, 2, 2)),
298-
Block(2, 2) => dev(Eye{elt}(3, 3) randn(elt, 3, 3)),
298+
Block(1, 1) => dev(δ(elt, (2, 2)) randn(elt, 2, 2)),
299+
Block(2, 2) => dev(δ(elt, (3, 3)) randn(elt, 3, 3)),
299300
)
300301
a = dev(blocksparse(d, (r, r)))
301302
if arrayt === Array
@@ -307,8 +308,8 @@ end
307308

308309
r = blockrange([2 × 2, 3 × 3])
309310
d = Dict(
310-
Block(1, 1) => dev(Eye{elt}(2, 2) randn(elt, 2, 2)),
311-
Block(2, 2) => dev(Eye{elt}(3, 3) randn(elt, 3, 3)),
311+
Block(1, 1) => dev(δ(elt, (2, 2)) randn(elt, 2, 2)),
312+
Block(2, 2) => dev(δ(elt, (3, 3)) randn(elt, 3, 3)),
312313
)
313314
a = dev(blocksparse(d, (r, r)))
314315
u, s, v = svd_compact(a)
@@ -321,8 +322,8 @@ end
321322

322323
r = blockrange([2 × 2, 3 × 3])
323324
d = Dict(
324-
Block(1, 1) => dev(Eye{elt}(2, 2) randn(elt, 2, 2)),
325-
Block(2, 2) => dev(Eye{elt}(3, 3) randn(elt, 3, 3)),
325+
Block(1, 1) => dev(δ(elt, (2, 2)) randn(elt, 2, 2)),
326+
Block(2, 2) => dev(δ(elt, (3, 3)) randn(elt, 3, 3)),
326327
)
327328
a = dev(blocksparse(d, (r, r)))
328329
if arrayt === Array
@@ -334,8 +335,8 @@ end
334335

335336
r = blockrange([2 × 2, 3 × 3])
336337
d = Dict(
337-
Block(1, 1) => dev(Eye{elt}(2, 2) randn(elt, 2, 2)),
338-
Block(2, 2) => dev(Eye{elt}(3, 3) randn(elt, 3, 3)),
338+
Block(1, 1) => dev(δ(elt, (2, 2)) randn(elt, 2, 2)),
339+
Block(2, 2) => dev(δ(elt, (3, 3)) randn(elt, 3, 3)),
339340
)
340341
a = dev(blocksparse(d, (r, r)))
341342
# Broken operations
@@ -348,8 +349,8 @@ end
348349
r = @constinferred blockrange([2 × 2, 3 × 3])
349350
rng = StableRNG(1234)
350351
d = Dict(
351-
Block(1, 1) => Eye{elt}(2, 2) randn(rng, elt, 2, 2),
352-
Block(2, 2) => Eye{elt}(3, 3) randn(rng, elt, 3, 3),
352+
Block(1, 1) => δ(elt, (2, 2)) randn(rng, elt, 2, 2),
353+
Block(2, 2) => δ(elt, (3, 3)) randn(rng, elt, 3, 3),
353354
)
354355
a = @constinferred dev(blocksparse(d, (r, r)))
355356
if arrayt === Array
@@ -361,10 +362,10 @@ end
361362
end
362363

363364
@testset "Block deficient" begin
364-
da = Dict(Block(1, 1) => Eye{elt}(2, 2) dev(randn(elt, 2, 2)))
365+
da = Dict(Block(1, 1) => δ(elt, (2, 2)) dev(randn(elt, 2, 2)))
365366
a = @constinferred dev(blocksparse(da, (r, r)))
366367

367-
db = Dict(Block(2, 2) => Eye{elt}(3, 3) dev(randn(elt, 3, 3)))
368+
db = Dict(Block(2, 2) => δ(elt, (3, 3)) dev(randn(elt, 3, 3)))
368369
b = @constinferred dev(blocksparse(db, (r, r)))
369370

370371
@test Array(a + b) Array(a) + Array(b)

0 commit comments

Comments
 (0)