-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbasic_graph_test.py
More file actions
48 lines (37 loc) · 1.77 KB
/
basic_graph_test.py
File metadata and controls
48 lines (37 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import unittest
import basic_graph
class BasicGraphTest(unittest.TestCase):
def test_node(self):
self.assertEqual('abcd', basic_graph.Node('abcd').id())
self.assertEqual(None, basic_graph.Node(None).id())
def test_edge(self):
edge = basic_graph.Edge(basic_graph.Node(1), basic_graph.Node(2))
expected_pair = [basic_graph.Node(1), basic_graph.Node(2)]
self.assertEqual(expected_pair, edge.nodes())
def test_graph(self):
edge1 = basic_graph.Edge(basic_graph.Node(1), basic_graph.Node(2))
edge2 = basic_graph.Edge(basic_graph.Node(2), basic_graph.Node(1))
nodes = [basic_graph.Node(3), basic_graph.Node(2), basic_graph.Node(1),
basic_graph.Node(2)]
graph = basic_graph.Graph(nodes, [edge2, edge1])
expected_nodes = set([basic_graph.Node(1), basic_graph.Node(2),
basic_graph.Node(3)])
self.assertEqual(expected_nodes, graph.nodes())
self.assertEqual(3, len(graph.nodes()))
expected_edges = set([edge1, edge2])
self.assertEqual(expected_edges, graph.edges())
self.assertEqual(2, len(graph.edges()))
def test_factory(self):
factory = basic_graph.Factory()
node = factory.create_node(1)
edge = factory.create_edge(node, node)
graph = factory.create_graph([node, node], [edge, edge])
self.assertIsInstance(node, basic_graph.Node)
self.assertIsInstance(edge, basic_graph.Edge)
self.assertIsInstance(graph, basic_graph.Graph)
self.assertEqual(1, node.id())
self.assertEqual([node, node], edge.nodes())
self.assertEqual([node], list(graph.nodes()))
self.assertEqual([edge], list(graph.edges()))
if __name__ == '__main__':
unittest.main()