Esempio n. 1
0
    def test_create_graph(self):
        root = Vertice('root')
        g1 = Graph(root)
        self.assertEqual(root, g1._root)
        self.assertEqual([], g1._edges)

        root_attr = Vertice('root', {'attr1': 1, 'attr2': 'value1'})
        g2 = Graph(root_attr)
        self.assertEqual(root_attr, g2._root)
        self.assertEqual([], g2._edges)
Esempio n. 2
0
    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()))
Esempio n. 3
0
 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'))
Esempio n. 4
0
 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'))
Esempio n. 5
0
    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)
Esempio n. 6
0
    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)
Esempio n. 7
0
    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
Esempio n. 8
0
 def test_create_graph(self):
     g1 = Graph()
     self.assertEqual([], g1._vertices)
     self.assertEqual([], g1._edges)
Esempio n. 9
0
    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)))
Esempio n. 10
0
 def test_add_vertice(self):
     g1 = Graph()
     v1 = Vertice('v1')
     g1.add_vertice(v1)
     self.assertIn(v1, g1._vertices)
Esempio n. 11
0
 def test_get_vertice(self):
     root = Vertice('root')
     g1 = Graph()
     g1._vertices.append(root)
     self.assertEqual(None, g1.get_vertice('vertice_unknown'))
     self.assertEqual(root, g1.get_vertice('root'))
Esempio n. 12
0
    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)))
Esempio n. 13
0
 def test_add_vertice(self):
     root = Vertice('root')
     g1 = Graph(root)
     v1 = Vertice('v1')
     g1.add_vertice(v1)
     self.assertIn(v1, g1._vertices)