Current section

Files

Jump to
fixpoint test examples bin_packing_test.exs
Raw

test/examples/bin_packing_test.exs

defmodule CPSolverTest.Examples.BinPacking do
use ExUnit.Case
alias CPSolverTest.Examples.BinPacking
alias CPSolver.Examples.BinPacking
test "binpacking p01" do
test_bin_packing("p01")
end
test "binpacking p02" do
test_bin_packing("p02")
end
test "binpacking p03" do
test_bin_packing("p03")
end
test "binpacking p04" do
test_bin_packing("p04")
end
defp test_bin_packing(dataset) do
weights =
File.read!("data/bin_packing/#{dataset}/#{dataset}_w.txt")
|> String.split("\n", trim: true)
|> Enum.map(fn line ->
line
|> String.trim()
|> String.to_integer()
end)
max_capacity =
File.read!("data/bin_packing/#{dataset}/#{dataset}_c.txt")
|> String.trim()
|> String.to_integer()
model = BinPacking.model(weights, max_capacity, :minimize)
{:ok, result} = CPSolver.solve(model, search: {:first_fail, :indomain_max})
assert BinPacking.check_solution(result, weights, max_capacity)
end
end