12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // Copyright ©2014 The gonum Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package simple
- import (
- "math"
- "testing"
- "k8s.io/kubernetes/third_party/forked/gonum/graph"
- )
- var _ graph.Graph = (*UndirectedGraph)(nil)
- func TestAssertMutableNotDirected(t *testing.T) {
- var g graph.UndirectedBuilder = NewUndirectedGraph(0, math.Inf(1))
- if _, ok := g.(graph.Directed); ok {
- t.Fatal("Graph is directed, but a MutableGraph cannot safely be directed!")
- }
- }
- func TestMaxID(t *testing.T) {
- g := NewUndirectedGraph(0, math.Inf(1))
- nodes := make(map[graph.Node]struct{})
- for i := Node(0); i < 3; i++ {
- g.AddNode(i)
- nodes[i] = struct{}{}
- }
- g.RemoveNode(Node(0))
- delete(nodes, Node(0))
- g.RemoveNode(Node(2))
- delete(nodes, Node(2))
- n := Node(g.NewNodeID())
- g.AddNode(n)
- if !g.Has(n) {
- t.Error("added node does not exist in graph")
- }
- if _, exists := nodes[n]; exists {
- t.Errorf("Created already existing node id: %v", n.ID())
- }
- }
- // Test for issue #123 https://github.com/gonum/graph/issues/123
- func TestIssue123UndirectedGraph(t *testing.T) {
- defer func() {
- if r := recover(); r != nil {
- t.Errorf("unexpected panic: %v", r)
- }
- }()
- g := NewUndirectedGraph(0, math.Inf(1))
- n0 := Node(g.NewNodeID())
- g.AddNode(n0)
- n1 := Node(g.NewNodeID())
- g.AddNode(n1)
- g.RemoveNode(n0)
- n2 := Node(g.NewNodeID())
- g.AddNode(n2)
- }
|