Packages
fixpoint
0.3.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
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, timeout: 500, trials: 5)
end
test "gc_15_30_3" do
test_graph("gc_15_30_3", 12, timeout: 500, trials: 5)
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: 1], opts)
instance = "data/graph_coloring/#{graph_name}"
Enum.each(1..opts[:trials], fn _ ->
{:ok, solver} = CPSolver.Examples.GraphColoring.solve(instance)
Process.sleep(opts[:timeout])
assert Enum.all?(CPSolver.solutions(solver), fn solution ->
CPSolver.Examples.GraphColoring.check_solution(solution, instance)
end)
## TODO: fix occasional overshooting
## and then change it back to strict equality
assert CPSolver.statistics(solver).solution_count >= expected_solutions
end)
end
end