Skip to content

Commit 9b64ab2

Browse files
committed
add tests for LabelledUnitRangeDual
1 parent 8e988c0 commit 9b64ab2

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

NDTensors/src/lib/GradedAxes/test/test_dual.jl

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ using NDTensors.GradedAxes:
1717
AbstractGradedUnitRange,
1818
GradedAxes,
1919
GradedUnitRangeDual,
20+
LabelledUnitRangeDual,
2021
OneToOne,
2122
blocklabels,
2223
blockmergesortperm,
@@ -27,7 +28,8 @@ using NDTensors.GradedAxes:
2728
gradedrange,
2829
isdual,
2930
nondual
30-
using NDTensors.LabelledNumbers: LabelledInteger, label, labelled, labelled_isequal
31+
using NDTensors.LabelledNumbers:
32+
LabelledInteger, LabelledUnitRange, label, labelled, labelled_isequal, unlabel
3133
using Test: @test, @test_broken, @testset
3234
struct U1
3335
n::Int
@@ -58,6 +60,24 @@ Base.isless(c1::U1, c2::U1) = c1.n < c2.n
5860
@test blockisequal(ad, a)
5961
end
6062

63+
@testset "LabelledUnitRangeDual" begin
64+
la = labelled(1:2, U1(1))
65+
@test la isa LabelledUnitRange
66+
@test label(la) == U1(1)
67+
@test unlabel(la) == 1:2
68+
@test la == 1:2
69+
@test !isdual(la)
70+
71+
lad = dual(la)
72+
@test lad isa LabelledUnitRangeDual
73+
@test label(lad) == U1(-1)
74+
@test unlabel(lad) == 1:2
75+
@test lad == 1:2
76+
@test isdual(lad)
77+
@test nondual(lad) === la
78+
@test dual(lad) === la
79+
end
80+
6181
@testset "GradedUnitRangeDual" begin
6282
for a in
6383
[gradedrange([U1(0) => 2, U1(1) => 3]), gradedrange([U1(0) => 2, U1(1) => 3])[1:5]]
@@ -126,6 +146,11 @@ end
126146

127147
@test isdual(ad[Block(1)])
128148
@test isdual(ad[Block(1)[1:1]])
149+
@test ad[Block(1)] isa LabelledUnitRangeDual
150+
@test ad[Block(1)[1:1]] isa LabelledUnitRangeDual
151+
@test label(ad[Block(2)]) == U1(-1)
152+
@test label(ad[Block(2)[1:1]]) == U1(-1)
153+
129154
I = mortar([Block(2)[1:1]])
130155
g = ad[I]
131156
@test length(g) == 1

0 commit comments

Comments
 (0)