Packages
fixpoint
0.4.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
alias CPSolver.Examples.Utils, as: ExamplesUtils
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)
|> Keyword.put(:solution_handler, ExamplesUtils.notify_client_handler())
instance = "data/graph_coloring/#{graph_name}"
Enum.each(1..opts[:trials], fn _ ->
ExamplesUtils.flush_solutions()
{:ok, solver} = GraphColoring.solve(instance)
ExamplesUtils.wait_for_solutions(expected_solutions, opts[:timeout], fn solution ->
assert_solution(solution, instance)
end)
assert CPSolver.statistics(solver).solution_count == expected_solutions
end)
end
defp assert_solution(solution, instance) do
assert GraphColoring.check_solution(solution, instance)
end
end