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] """))
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")
def test_parse_tree(self): sentences = parse_tree(data) self.assertEqual(len(sentences), 1) root = sentences[0] self.assertEqual( str(root), "TokenTree<token={id=5, form=jumps}, children=[...]>") self.assertEqual( root.token, Token([('id', 5), ('form', 'jumps'), ('lemma', 'jump'), ('upos', 'VERB'), ('xpos', 'VBZ'), ('feats', Token([ ("Mood", "Ind"), ("Number", "Sing"), ("Person", "3"), ("Tense", "Pres"), ("VerbForm", "Fin"), ])), ('head', 0), ('deprel', 'root'), ('deps', None), ('misc', None)])) self.assertEqual([str(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 upos:VERB [5] (deprel:nsubj) form:fox lemma:fox upos:NOUN [4] (deprel:det) form:The lemma:the upos:DET [1] (deprel:amod) form:quick lemma:quick upos:ADJ [2] (deprel:amod) form:brown lemma:brown upos:ADJ [3] (deprel:nmod) form:dog lemma:dog upos:NOUN [9] (deprel:case) form:over lemma:over upos:ADP [6] (deprel:det) form:the lemma:the upos:DET [7] (deprel:amod) form:lazy lemma:lazy upos:ADJ [8] (deprel:punct) form:. lemma:. upos:PUNCT [10] """))
def test_tree_without_id(self): tree = TokenTree(token={"form": "hej", "deprel": "nmod"}, children=[]) with self.assertRaises(ParseException): capture_print(tree.print_tree)
def test_print_empty_list(self): tree = TokenTree(None, []) with self.assertRaises(ParseException): capture_print(tree.print_tree)