...
1
2
3
4
5 package simple
6
7 import (
8 "math"
9 "testing"
10
11 "k8s.io/kubernetes/third_party/forked/gonum/graph"
12 )
13
14 var _ graph.Graph = (*UndirectedGraph)(nil)
15
16 func TestAssertMutableNotDirected(t *testing.T) {
17 var g graph.UndirectedBuilder = NewUndirectedGraph(0, math.Inf(1))
18 if _, ok := g.(graph.Directed); ok {
19 t.Fatal("Graph is directed, but a MutableGraph cannot safely be directed!")
20 }
21 }
22
23 func TestMaxID(t *testing.T) {
24 g := NewUndirectedGraph(0, math.Inf(1))
25 nodes := make(map[graph.Node]struct{})
26 for i := Node(0); i < 3; i++ {
27 g.AddNode(i)
28 nodes[i] = struct{}{}
29 }
30 g.RemoveNode(Node(0))
31 delete(nodes, Node(0))
32 g.RemoveNode(Node(2))
33 delete(nodes, Node(2))
34 n := Node(g.NewNodeID())
35 g.AddNode(n)
36 if !g.Has(n) {
37 t.Error("added node does not exist in graph")
38 }
39 if _, exists := nodes[n]; exists {
40 t.Errorf("Created already existing node id: %v", n.ID())
41 }
42 }
43
44
45 func TestIssue123UndirectedGraph(t *testing.T) {
46 defer func() {
47 if r := recover(); r != nil {
48 t.Errorf("unexpected panic: %v", r)
49 }
50 }()
51 g := NewUndirectedGraph(0, math.Inf(1))
52
53 n0 := Node(g.NewNodeID())
54 g.AddNode(n0)
55
56 n1 := Node(g.NewNodeID())
57 g.AddNode(n1)
58
59 g.RemoveNode(n0)
60
61 n2 := Node(g.NewNodeID())
62 g.AddNode(n2)
63 }
64
View as plain text