Packages
fixpoint
0.16.1
0.22.1
0.21.5
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.6
0.20.5
0.20.4
0.20.3
0.20.2
0.20.1
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.18.2
0.18.1
0.17.6
0.17.5
0.17.4
0.17.3
0.17.2
0.17.1
0.16.5
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.9
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.13.5
0.13.4
0.13.2
0.13.1
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.2
0.12.1
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.10.7
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.9.12
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.52
0.8.51
0.8.50
0.8.49
0.8.48
0.8.46
0.8.44
0.8.43
0.8.42
0.8.41
0.8.40
0.8.39
0.8.38
0.8.37
0.8.36
0.8.35
0.8.34
0.8.33
0.8.32
0.8.31
0.8.30
0.8.29
0.8.28
0.8.27
0.8.26
0.8.25
0.8.24
0.8.23
0.8.22
0.8.21
0.8.20
0.8.19
0.8.18
0.8.17
0.8.16
0.8.15
0.8.14
0.8.13
0.8.12
0.8.11
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.10
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.12
0.5.11
0.5.10
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.1.3
0.1.2
0.1.1
0.1.0
Constraint Programming Solver
Current section
Files
Jump to
Current section
Files
test/examples/graph_coloring_test.exs
defmodule CPSolverTest.Examples.GraphColoring do
use ExUnit.Case, async: false
alias CPSolver.Examples.GraphColoring
test "P3" do
test_graph("p3", 2, trials: 10)
end
test "P4" do
test_graph("p4", 2, trials: 10)
end
test "Triangle" do
test_graph("triangle", 6, trials: 10)
end
test "Square" do
test_graph("square", 2, trials: 10)
end
test "Paw" do
test_graph("paw", 12, timeout: 100, trials: 10)
end
test "Petersen" do
test_graph("petersen", 120, timeout: 500, trials: 5)
end
test "gc_15_30_1" do
test_graph("gc_15_30_1", 36)
end
@tag :slow
test "gc_15_30_5" do
test_graph("gc_15_30_5", 34848, timeout: 2000, trials: 1)
end
test "gc_15_30_3" do
test_graph("gc_15_30_3", 12)
end
test "Multiple P4 runs" do
test_graph("p4", 2, trials: 20)
end
test "Multiple P3 runs" do
test_graph("p3", 2, trials: 20)
end
defp test_graph(graph_name, expected_solutions, opts \\ []) do
opts =
Keyword.merge([timeout: 100, trials: 5], opts)
instance = "data/graph_coloring/#{graph_name}"
Enum.each(1..opts[:trials], fn _ ->
{:ok, result} = CPSolver.solve(GraphColoring.model(instance), timeout: opts[:timeout])
Enum.each(result.solutions, fn sol -> assert_solution(sol, instance) end)
solution_count = result.statistics.solution_count
assert solution_count == expected_solutions
end)
end
defp assert_solution(solution, instance) do
assert GraphColoring.check_solution(solution, instance)
end
end