|
|
|
|
@ -47,6 +47,34 @@ func TestAcyclicGraphRoot_multiple(t *testing.T) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestAcyclicGraphValidate(t *testing.T) {
|
|
|
|
|
var g AcyclicGraph
|
|
|
|
|
g.Add(1)
|
|
|
|
|
g.Add(2)
|
|
|
|
|
g.Add(3)
|
|
|
|
|
g.Connect(BasicEdge(3, 2))
|
|
|
|
|
g.Connect(BasicEdge(3, 1))
|
|
|
|
|
|
|
|
|
|
if err := g.Validate(); err != nil {
|
|
|
|
|
t.Fatalf("err: %s", err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestAcyclicGraphValidate_cycle(t *testing.T) {
|
|
|
|
|
var g AcyclicGraph
|
|
|
|
|
g.Add(1)
|
|
|
|
|
g.Add(2)
|
|
|
|
|
g.Add(3)
|
|
|
|
|
g.Connect(BasicEdge(3, 2))
|
|
|
|
|
g.Connect(BasicEdge(3, 1))
|
|
|
|
|
g.Connect(BasicEdge(1, 2))
|
|
|
|
|
g.Connect(BasicEdge(2, 1))
|
|
|
|
|
|
|
|
|
|
if err := g.Validate(); err == nil {
|
|
|
|
|
t.Fatal("should error")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestAcyclicGraphWalk(t *testing.T) {
|
|
|
|
|
var g AcyclicGraph
|
|
|
|
|
g.Add(1)
|
|
|
|
|
|