@@ -112,14 +112,14 @@ const elts = (Float32, Float64, Complex{Float32}, Complex{Float64})
112112 @test blocksize (m) == (3 , 3 )
113113 @test a == splitdims (m, (d1, d2), (d1, d2))
114114 end
115+
115116 @testset " dual axes" begin
116117 r = gradedrange ([U1 (0 ) => 2 , U1 (1 ) => 2 ])
117118 for ax in ((r, r), (dual (r), r), (r, dual (r)), (dual (r), dual (r)))
118119 a = BlockSparseArray {elt} (ax... )
119120 @views for b in [Block (1 , 1 ), Block (2 , 2 )]
120121 a[b] = randn (elt, size (a[b]))
121122 end
122- # TODO : Define and use `isdual` here.
123123 for dim in 1 : ndims (a)
124124 @test typeof (ax[dim]) === typeof (axes (a, dim))
125125 @test isdual (ax[dim]) == isdual (axes (a, dim))
@@ -176,7 +176,7 @@ const elts = (Float32, Float64, Complex{Float32}, Complex{Float64})
176176 @test a[I, :] isa AbstractBlockArray
177177 @test a[:, I] isa AbstractBlockArray
178178 @test size (a[I, I]) == (1 , 1 )
179- @test ! GradedAxes . isdual (axes (a[I, I], 1 ))
179+ @test ! isdual (axes (a[I, I], 1 ))
180180 end
181181
182182 @testset " GradedUnitRange" begin
@@ -190,14 +190,19 @@ const elts = (Float32, Float64, Complex{Float32}, Complex{Float64})
190190 @test Array (b) == 2 * Array (a)
191191 for i in 1 : 2
192192 @test axes (b, i) isa GradedUnitRange
193- @test_broken axes (a[:, :], i) isa GradedUnitRange
193+ @test axes (a[:, :], i) isa GradedUnitRange
194194 end
195195
196196 I = [Block (1 )[1 : 1 ]]
197- @test_broken a[I, :] isa AbstractBlockArray
198- @test_broken a[:, I] isa AbstractBlockArray
197+ @test a[I, :] isa AbstractBlockArray
198+ @test axes (a[I, :], 1 ) isa GradedOneTo
199+ @test axes (a[I, :], 2 ) isa GradedUnitRange
200+
201+ @test a[:, I] isa AbstractBlockArray
202+ @test axes (a[:, I], 2 ) isa GradedOneTo
203+ @test axes (a[:, I], 1 ) isa GradedUnitRange
199204 @test size (a[I, I]) == (1 , 1 )
200- @test_broken GradedAxes . isdual (axes (a[I, I], 1 ))
205+ @test ! isdual (axes (a[I, I], 1 ))
201206 end
202207
203208 # Test case when all axes are dual.
@@ -212,13 +217,18 @@ const elts = (Float32, Float64, Complex{Float32}, Complex{Float64})
212217 @test Array (b) == 2 * Array (a)
213218 for i in 1 : 2
214219 @test axes (b, i) isa GradedUnitRangeDual
215- @test_broken axes (a[:, :], i) isa GradedUnitRangeDual
220+ @test axes (a[:, :], i) isa GradedUnitRangeDual
216221 end
217222 I = [Block (1 )[1 : 1 ]]
218- @test_broken a[I, :] isa AbstractBlockArray
219- @test_broken a[:, I] isa AbstractBlockArray
223+ @test a[I, :] isa AbstractBlockArray
224+ @test a[:, I] isa AbstractBlockArray
220225 @test size (a[I, I]) == (1 , 1 )
221- @test_broken GradedAxes. isdual (axes (a[I, I], 1 ))
226+ @test isdual (axes (a[I, :], 2 ))
227+ @test isdual (axes (a[:, I], 1 ))
228+ @test_broken isdual (axes (a[I, :], 1 ))
229+ @test_broken isdual (axes (a[:, I], 2 ))
230+ @test_broken isdual (axes (a[I, I], 1 ))
231+ @test_broken isdual (axes (a[I, I], 2 ))
222232 end
223233
224234 @testset " dual GradedUnitRange" begin
@@ -232,14 +242,19 @@ const elts = (Float32, Float64, Complex{Float32}, Complex{Float64})
232242 @test Array (b) == 2 * Array (a)
233243 for i in 1 : 2
234244 @test axes (b, i) isa GradedUnitRangeDual
235- @test_broken axes (a[:, :], i) isa GradedUnitRangeDual
245+ @test axes (a[:, :], i) isa GradedUnitRangeDual
236246 end
237247
238248 I = [Block (1 )[1 : 1 ]]
239- @test_broken a[I, :] isa AbstractBlockArray
240- @test_broken a[:, I] isa AbstractBlockArray
249+ @test a[I, :] isa AbstractBlockArray
250+ @test a[:, I] isa AbstractBlockArray
241251 @test size (a[I, I]) == (1 , 1 )
242- @test_broken GradedAxes. isdual (axes (a[I, I], 1 ))
252+ @test isdual (axes (a[I, :], 2 ))
253+ @test isdual (axes (a[:, I], 1 ))
254+ @test_broken isdual (axes (a[I, :], 1 ))
255+ @test_broken isdual (axes (a[:, I], 2 ))
256+ @test_broken isdual (axes (a[I, I], 1 ))
257+ @test_broken isdual (axes (a[I, I], 2 ))
243258 end
244259
245260 @testset " dual BlockedUnitRange" begin # self dual
@@ -261,7 +276,7 @@ const elts = (Float32, Float64, Complex{Float32}, Complex{Float64})
261276 @test a[I, :] isa BlockSparseArray
262277 @test a[:, I] isa BlockSparseArray
263278 @test size (a[I, I]) == (1 , 1 )
264- @test ! GradedAxes . isdual (axes (a[I, I], 1 ))
279+ @test ! isdual (axes (a[I, I], 1 ))
265280 end
266281
267282 # Test case when all axes are dual from taking the adjoint.
@@ -281,8 +296,8 @@ const elts = (Float32, Float64, Complex{Float32}, Complex{Float64})
281296 end
282297
283298 I = [Block (1 )[1 : 1 ]]
284- @test_broken size (b[I, :]) == (1 , 4 )
285- @test_broken size (b[:, I]) == (4 , 1 )
299+ @test size (b[I, :]) == (1 , 4 )
300+ @test size (b[:, I]) == (4 , 1 )
286301 @test size (b[I, I]) == (1 , 1 )
287302 end
288303 end
0 commit comments