def test_serialize(self): root = Vertice('root') g1 = Graph(root) v1 = Vertice('v1') g1.add_vertice(v1) e1 = Edge('e1', root, v1) g1.add_edge(e1) result = [{ 'edges': [{ 'vertice_b': 'v1', 'index': 'e1', 'vertice_a': 'root', 'is_directed': True, 'attributes': None }], 'vertice': { 'index': 'root', 'attributes': None } }, { 'edges': [{ 'vertice_b': 'v1', 'index': 'e1', 'vertice_a': 'root', 'is_directed': True, 'attributes': None }], 'vertice': { 'index': 'v1', 'attributes': None } }] self.assertEqual(result, list(g1.serialize()))
def test_get_edge(self): root = Vertice('root') g1 = Graph(root) v1 = Vertice('v1') g1.add_vertice(v1) edge = Edge('e1', root, v1) g1.add_edge(edge) self.assertEqual(edge, g1.get_edge('e1'))
def test_get_edge(self): g1 = Graph() v1 = Vertice('v1') v2 = Vertice('v2') g1.add_vertice(v1) g1.add_vertice(v2) edge = Edge('e1', v1, v2) g1.add_edge(edge) self.assertEqual(edge, g1.get_edge('e1'))
def test_add_edge(self): root = Vertice('root') g1 = Graph(root) v1 = Vertice('v1') g1.add_vertice(v1) e1 = Edge('e1', root, v1) g1.add_edge(e1) self.assertIn(e1, g1._edges) with self.assertRaises(ValueError): v2 = Vertice('v2') e2 = Edge('e2', root, v2) # v2 is instanciated but not inserted in graph g1.add_edge(e2)
def test_add_edge(self): g1 = Graph() v1 = Vertice('v1') v2 = Vertice('v2') g1.add_vertice(v1) g1.add_vertice(v2) e1 = Edge('e1', v1, v2) g1.add_edge(e1) self.assertIn(e1, g1._edges) with self.assertRaises(ValueError): v3 = Vertice('v3') e2 = Edge('e2', v1, v3) # v2 is instanciated but not inserted in graph g1.add_edge(e2)
def test_get_relate_edges(self): g1 = Graph() v1 = Vertice('v1') v2 = Vertice('v2') g1.add_vertice(v1) g1.add_vertice(v2) e1 = Edge('e1', v1, v2) g1.add_edge(e1) self.assertEqual([e1], list(g1.get_related_edges(v1.index))) v3 = Vertice('v3') g1.add_vertice(v3) e2 = Edge('e2', v1, v3) g1.add_edge(e2) self.assertEqual([e1, e2], list(g1.get_related_edges(v1.index)))
def test_get_relate_edges(self): root = Vertice('root') g1 = Graph(root) v1 = Vertice('v1') g1.add_vertice(v1) e1 = Edge('e1', root, v1) g1.add_edge(e1) self.assertEqual([e1], list(g1.get_related_edges(root.index))) v2 = Vertice('v2') g1.add_vertice(v2) e2 = Edge('e2', v1, v2) g1.add_edge(e2) self.assertEqual([e1], list(g1.get_related_edges(root.index))) self.assertEqual([e1, e2], list(g1.get_related_edges(v1.index)))
def transform_dependency(self, to_parse): # make a tree from dependency parsing if not to_parse: return to_parse = self._split_tokens(to_parse) g = Graph() for token in to_parse: token_tmp = token.copy() index = token_tmp.pop('index') v = Vertice(index, token_tmp) g.add_vertice(v) for token in to_parse: if token['parent'] != 0: # zero is the mark of not having parent, for root node parent_v = g.get_vertice(token['parent']) v = g.get_vertice(token['index']) e = Edge('{}_{}'.format(parent_v.index, token['index']), parent_v, v, {'relation': token['relation']}) g.add_edge(e) return g
def test_add_vertice(self): g1 = Graph() v1 = Vertice('v1') g1.add_vertice(v1) self.assertIn(v1, g1._vertices)
def test_add_vertice(self): root = Vertice('root') g1 = Graph(root) v1 = Vertice('v1') g1.add_vertice(v1) self.assertIn(v1, g1._vertices)