@@ -25,6 +25,43 @@ ti = time()
2525 @testset " Fusion tree $Istr : printing" begin
2626 @test eval (Meta. parse (sprint (show, f))) == f
2727 end
28+ @testset " Fusion tree $Istr : constructor properties" begin
29+ u = one (I)
30+ @constinferred FusionTree ((), u, (), (), ())
31+ @constinferred FusionTree ((u,), u, (false ,), (), ())
32+ @constinferred FusionTree ((u, u), u, (false , false ), (), (1 ,))
33+ @constinferred FusionTree ((u, u, u), u, (false , false , false ), (u,), (1 , 1 ))
34+ @constinferred FusionTree ((u, u, u, u), u, (false , false , false , false ), (u, u),
35+ (1 , 1 , 1 ))
36+ @test_throws MethodError FusionTree ((u, u, u), u, (false , false ), (u,), (1 , 1 ))
37+ @test_throws MethodError FusionTree ((u, u, u), u, (false , false , false ), (u, u),
38+ (1 , 1 ))
39+ @test_throws MethodError FusionTree ((u, u, u), u, (false , false , false ), (u,),
40+ (1 , 1 , 1 ))
41+ @test_throws MethodError FusionTree ((u, u, u), u, (false , false , false ), (), (1 ,))
42+
43+ f = FusionTree ((u, u, u), u, (false , false , false ), (u,), (1 , 1 ))
44+ @test sectortype (f) == I
45+ @test length (f) == 3
46+ @test FusionStyle (f) == FusionStyle (I)
47+ @test BraidingStyle (f) == BraidingStyle (I)
48+
49+ if FusionStyle (I) isa UniqueFusion
50+ @constinferred FusionTree ((), u, ())
51+ @constinferred FusionTree ((u,), u, (false ,))
52+ @constinferred FusionTree ((u, u), u, (false , false ))
53+ @constinferred FusionTree ((u, u, u), u)
54+ @constinferred FusionTree ((u, u, u, u))
55+ @test_throws MethodError FusionTree ((u, u), u, (false , false , false ))
56+ else
57+ errstr = " fusion tree requires inner lines if `FusionStyle(I) <: MultipleFusion`"
58+ @test_throws errstr FusionTree ((), u, ())
59+ @test_throws errstr FusionTree ((u,), u, (false ,))
60+ @test_throws errstr FusionTree ((u, u), u, (false , false ))
61+ @test_throws errstr FusionTree ((u, u, u), u)
62+ @test_throws errstr FusionTree ((u, u, u, u))
63+ end
64+ end
2865 @testset " Fusion tree $Istr : insertat" begin
2966 N = 4
3067 out2 = ntuple (n -> randsector (I), N)
0 commit comments