예제 #1
0
파일: test_tree.py 프로젝트: vsbogd/penman
    def test_walk(self, one_arg_node, reentrant):
        t = tree.Tree(one_arg_node)
        assert list(t.walk()) == [
            ((0, ), ('/', 'alpha')),
            ((1, ), (':ARG0', ('b', [('/', 'beta')]))),
            ((1, 0), ('/', 'beta')),
        ]

        t = tree.Tree(reentrant)
        assert list(t.walk()) == [
            ((0, ), ('/', 'alpha')),
            ((1, ), (':ARG0', ('b', [('/', 'beta')]))),
            ((1, 0), ('/', 'beta')),
            ((2, ), (':ARG1', ('g', [('/', 'gamma'), (':ARG0', 'b')]))),
            ((2, 0), ('/', 'gamma')),
            ((2, 1), (':ARG0', 'b')),
        ]

        t = tree.Tree(('a', [('/', 'alpha'), (':polarity', '-'),
                             (':ARG0', ('b', [('/', 'beta')]))]))
        assert list(t.walk()) == [
            ((0, ), ('/', 'alpha')),
            ((1, ), (':polarity', '-')),
            ((2, ), (':ARG0', ('b', [('/', 'beta')]))),
            ((2, 0), ('/', 'beta')),
        ]
예제 #2
0
    def test_nodes(self, one_arg_node, reentrant):
        t = tree.Tree(one_arg_node)
        assert t.nodes() == [one_arg_node, ('b', [('/', 'beta')])]

        t = tree.Tree(reentrant)
        assert t.nodes() == [reentrant,
                             ('b', [('/', 'beta')]),
                             ('g', [('/', 'gamma'), (':ARG0', 'b')])]
예제 #3
0
파일: test_tree.py 프로젝트: vsbogd/penman
    def test__init__(self, empty_node, simple_node):
        with pytest.raises(TypeError):
            tree.Tree()

        t = tree.Tree(empty_node)
        assert t.node == empty_node
        assert t.metadata == {}

        t = tree.Tree(simple_node, metadata={'snt': 'Alpha.'})
        assert t.node == simple_node
        assert t.metadata == {'snt': 'Alpha.'}
예제 #4
0
    def test_reset_variables(self, one_arg_node, reentrant, var_instance):

        def _vars(t):
            return [v for v, _ in t.nodes()]

        t = tree.Tree(one_arg_node)
        assert _vars(t) == ['a', 'b']

        t.reset_variables(fmt='a{i}')
        assert _vars(t) == ['a0', 'a1']

        t.reset_variables(fmt='a{j}')
        assert _vars(t) == ['a', 'a2']

        t.reset_variables()
        assert _vars(t) == ['a', 'b']

        t = tree.Tree(reentrant)
        assert _vars(t) == ['a', 'b', 'g']

        t.reset_variables(fmt='a{i}')
        assert _vars(t) == ['a0', 'a1', 'a2']
        assert t == (
            'a0', [('/', 'alpha'),
                   (':ARG0', ('a1', [('/', 'beta')])),
                   (':ARG1', ('a2', [('/', 'gamma'),
                                   (':ARG0', 'a1')]))])

        t.reset_variables()
        assert _vars(t) == ['a', 'b', 'g']

        t = tree.Tree(var_instance)
        assert _vars(t) == ['a', 'b']

        t.reset_variables(fmt='a{i}')
        assert _vars(t) == ['a0', 'a1']
        assert t == (
            'a0', [('/', 'alpha'),
                   (':ARG0', ('a1', [('/', 'b')]))])

        t.reset_variables()
        assert _vars(t) == ['a', 'b']