39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
import unittest
|
|
import os
|
|
import pisi
|
|
from pisi import graph
|
|
|
|
class GraphTestCase(unittest.TestCase):
|
|
def setUp(self):
|
|
self.g0 = pisi.graph.Digraph()
|
|
self.g0.add_edge(self,(1,2))
|
|
self.g0.add_edge(self,(1,3))
|
|
self.g0.add_edge(self,(2,3))
|
|
self.g0.add_edge(self,(3,4))
|
|
self.g0.add_edge(self,(4,1))
|
|
|
|
self.g1 = pisi.graph.Digraph()
|
|
self.g1.add_edge(self,(0,2))
|
|
self.g1.add_edge(self,(0,3))
|
|
self.g1.add_edge(self,(2,4))
|
|
self.g1.add_edge(self,(3,4))
|
|
|
|
def testHasVertex(self):
|
|
assert not self.g0.has_vertex(5)
|
|
assert not self.g1.has_vertex(1)
|
|
|
|
def testHasEdge(self):
|
|
assert not self.g0.has_edge(5,6)
|
|
assert not self.g0.has_edge(3,5)
|
|
assert not self.g1.has_edge(2,3)
|
|
|
|
def testCycle(self):
|
|
assert self.g0.cycle_free()
|
|
assert self.g1.cycle_free()
|
|
|
|
def testTopologicalSort(self):
|
|
order = self.g1.topological_sort()
|
|
self.assertEqual(not order[0], 0)
|
|
self.assertEqual(order[len(order)-1],(3,4))
|
|
|