@@ -3,20 +3,41 @@ import DifferentiationInterface as DI
33import DifferentiationInterfaceTest as DIT
44using LinearAlgebra: I, Symmetric
55using SparseArrays: sprand
6+ using Test
67
78alg = DI. GreedyColoringAlgorithm ()
89
9- A = sprand (Bool, 100 , 200 , 0.05 )
10+ @testset " Grouping" begin
11+ colors = [1 , 3 , 1 , 3 , 1 , 2 ]
12+ @test DI. color_groups (colors) == [[1 , 3 , 5 ], [6 ], [2 , 4 ]]
13+ colors = [2 , 3 , 2 , 3 , 2 , 1 ]
14+ @test DI. color_groups (colors) == [[6 ], [1 , 3 , 5 ], [2 , 4 ]]
15+ colors = [2 , 3 , 2 , 3 , 2 ]
16+ @test_throws AssertionError DI. color_groups (colors)
17+ end
1018
11- column_colors = ADTypes. column_coloring (A, alg)
12- @test DIT. check_structurally_orthogonal_columns (A, column_colors)
13- @test maximum (column_colors) < size (A, 2 ) ÷ 2
19+ @testset " Column coloring" begin
20+ for A in (sprand (Bool, 100 , 200 , 0.05 ), sprand (Bool, 200 , 100 , 0.05 ))
21+ column_colors = ADTypes. column_coloring (A, alg)
22+ @test DIT. check_structurally_orthogonal_columns (A, column_colors)
23+ @test minimum (column_colors) == 1
24+ @test maximum (column_colors) < size (A, 2 ) ÷ 2
25+ end
26+ end
1427
15- row_colors = ADTypes. row_coloring (A, alg)
16- @test DIT. check_structurally_orthogonal_rows (A, row_colors)
17- @test maximum (row_colors) < size (A, 1 ) ÷ 2
28+ @testset " Row coloring" begin
29+ for A in (sprand (Bool, 100 , 200 , 0.05 ), sprand (Bool, 200 , 100 , 0.05 ))
30+ row_colors = ADTypes. row_coloring (A, alg)
31+ @test DIT. check_structurally_orthogonal_rows (A, row_colors)
32+ @test minimum (row_colors) == 1
33+ @test maximum (row_colors) < size (A, 1 ) ÷ 2
34+ end
35+ end
1836
19- S = Symmetric (sprand (Bool, 100 , 100 , 0.05 )) + I
20- symmetric_colors = ADTypes. symmetric_coloring (S, alg)
21- @test DIT. check_symmetrically_structurally_orthogonal (S, symmetric_colors)
22- @test maximum (symmetric_colors) < size (A, 2 ) ÷ 2
37+ @testset " Symmetric coloring" begin
38+ S = Symmetric (sprand (Bool, 100 , 100 , 0.05 )) + I
39+ symmetric_colors = ADTypes. symmetric_coloring (S, alg)
40+ @test DIT. check_symmetrically_structurally_orthogonal (S, symmetric_colors)
41+ @test minimum (symmetric_colors) == 1
42+ @test maximum (symmetric_colors) < size (S, 2 ) ÷ 2
43+ end
0 commit comments