Packages
fixpoint
0.13.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/utils/digraph_test.exs
defmodule CPSolverTest.Utils.Digraph do
use ExUnit.Case
describe "Mutable digraph" do
alias CPSolver.Utils.Digraph
test "to/from libgraph" do
libgraph =
Graph.new()
|> Graph.add_vertex(:d, label: :d_vertex) ## isolated vertex
|> Graph.add_edge(:a, :b, label: :a_to_b)
|> Graph.add_edge(:b, :a, label: :b_to_a)
|> Graph.add_edge(:a, :c, label: :a_to_c)
|> Graph.add_edge(:c, :a, label: :c_to_a)
|> Graph.add_edge(:b, :c, label: :b_to_c)
|> Graph.add_edge(:c, :b, label: :c_to_b)
digraph = Digraph.from_libgraph(libgraph)
## Vertex and edges counts
assert Graph.vertices(libgraph) |> Enum.sort() == Digraph.vertices(digraph) |> Enum.sort()
assert length(Graph.edges(libgraph)) == length(Digraph.edges(digraph))
## Vertex labels
assert Enum.all?(Graph.vertices(libgraph),
fn vertex ->
vertex_labels = Graph.vertex_labels(libgraph, vertex)
{vertex, vertex_labels} == Digraph.vertex(digraph, vertex)
end)
## Edge: vertices and labels
assert Enum.all?(Digraph.edges(digraph),
fn digraph_edge ->
digraph_edge == Graph.edge(libgraph, digraph_edge.v1, digraph_edge.v2, digraph_edge.label)
end)
## Digraph -> libgraph
## (libgraph -> digraph -> libgraph) transformation preserves the original graph
libgraph2 = Digraph.to_libgraph(digraph)
assert libgraph == libgraph2
end
end
end