Esempio n. 1
0
    def test_parse_tree(self):
        sentences = parse_tree(data)
        self.assertEqual(len(sentences), 1)

        root = sentences[0]
        self.assertEqual(text(root), "TokenTree<token={id=5, form=jumps}, children=[...]>")

        self.assertEqual(
            root.token,
            OrderedDict([
                ('id', 5),
                ('form', 'jumps'),
                ('lemma', 'jump'),
                ('upostag', 'VERB'),
                ('xpostag', 'VBZ'),
                ('feats', OrderedDict([
                    ("Mood", "Ind"),
                    ("Number", "Sing"),
                    ("Person", "3"),
                    ("Tense", "Pres"),
                    ("VerbForm", "Fin"),
                ])),
                ('head', 0),
                ('deprel', 'root'),
                ('deps', None),
                ('misc', None)
            ])
        )

        self.assertEqual(
            [text(child) for child in root.children],
            [
                "TokenTree<token={id=4, form=fox}, children=[...]>",
                "TokenTree<token={id=9, form=dog}, children=[...]>",
                "TokenTree<token={id=10, form=.}, children=None>",
            ]
        )

        self.assertEqual(
            root.metadata["text"],
            "The quick brown fox jumps over the lazy dog."
        )

        self.assertEqual(root.serialize(), data)

        self.assertEqual(
            capture_print(root.print_tree),
            dedent("""\
                (deprel:root) form:jumps lemma:jump upostag:VERB [5]
                    (deprel:nsubj) form:fox lemma:fox upostag:NOUN [4]
                        (deprel:det) form:The lemma:the upostag:DET [1]
                        (deprel:amod) form:quick lemma:quick upostag:ADJ [2]
                        (deprel:amod) form:brown lemma:brown upostag:ADJ [3]
                    (deprel:nmod) form:dog lemma:dog upostag:NOUN [9]
                        (deprel:case) form:over lemma:over upostag:ADP [6]
                        (deprel:det) form:the lemma:the upostag:DET [7]
                        (deprel:amod) form:lazy lemma:lazy upostag:ADJ [8]
                    (deprel:punct) form:. lemma:. upostag:PUNCT [10]
            """)
        )
Esempio n. 2
0
    def test_print_with_children(self):
        tree = TokenTree(token={
            "id": "X",
            "deprel": "Y",
            "test": "data"
        },
                         children=[
                             TokenTree(token={
                                 "id": "X",
                                 "deprel": "Y",
                                 "test": "data"
                             },
                                       children=[]),
                             TokenTree(token={
                                 "id": "X",
                                 "deprel": "Y",
                                 "test": "data"
                             },
                                       children=[]),
                         ])
        result = capture_print(tree.print_tree)

        self.assertEqual(
            result,
            dedent("""\
            (deprel:Y) test:data [X]
                (deprel:Y) test:data [X]
                (deprel:Y) test:data [X]
        """))
Esempio n. 3
0
 def test_print_simple(self):
     tree = TokenTree(token={
         "id": "X",
         "deprel": "Y",
         "test": "data"
     },
                      children=[])
     result = capture_print(tree.print_tree)
     self.assertEqual(result, "(deprel:Y) test:data [X]\n")
Esempio n. 4
0
 def test_tree_without_id(self):
     tree = TokenTree(token={"form": "hej", "deprel": "nmod"}, children=[])
     with self.assertRaises(ParseException):
         capture_print(tree.print_tree)
Esempio n. 5
0
 def test_print_empty_list(self):
     tree = TokenTree(None, [])
     with self.assertRaises(ParseException):
         capture_print(tree.print_tree)