Current section

Files

Jump to
fixpoint test constraints circuit_test.exs
Raw

test/constraints/circuit_test.exs

defmodule CPSolverTest.Constraint.Circuit do
use ExUnit.Case, async: false
describe "Circuit" do
alias CPSolver.Constraint.Circuit
alias CPSolver.IntVariable
alias CPSolver.Constraint
alias CPSolver.Model
test "produces all possible circuits" do
n = 5
domain = 0..(n - 1)
variables = Enum.map(1..n, fn _ -> IntVariable.new(domain) end)
model = Model.new(variables, [Constraint.new(Circuit, variables)])
{:ok, solver} = CPSolver.solve_sync(model)
assert length(solver.solutions) == Math.factorial(n - 1)
end
end
end