def test_add_topnode(discont_tree, cont_tree): """transform.add_topnode """ dtree = discont_tree discont_nodes = [node for node in trees.preorder(dtree)] dtree = transform.add_topnode(dtree) discont_nodes_p = [node for node in trees.preorder(dtree)] assert len(discont_nodes) == len(discont_nodes_p) - 1 assert discont_tree.parent == dtree assert len(trees.children(dtree)) == 1 ctree = cont_tree cont_nodes = [node for node in trees.preorder(ctree)] ctree = transform.add_topnode(ctree) cont_nodes_p = [node for node in trees.preorder(ctree)] assert len(cont_nodes) == len(cont_nodes_p) - 1 assert cont_tree.parent == ctree assert len(trees.children(ctree)) == 1
def test_punctuation_root(discont_tree, cont_tree): """transform.punctuation_root """ terms = trees.terminals(discont_tree) terms[0].data['word'] = "," old_p = terms[0].parent assert len(trees.children(old_p)) == 2 discont_tree = transform.punctuation_root(discont_tree) assert len(trees.children(old_p)) == 1 assert terms[0].parent == discont_tree terms = trees.terminals(cont_tree) terms[3].data['word'] = "," old_p = terms[3].parent assert len(trees.children(old_p)) == 3 cont_tree = transform.punctuation_root(cont_tree) assert len(trees.children(old_p)) == 2 assert terms[3].parent == cont_tree
def test_lca(discont_tree, cont_tree): """trees.lca """ tree = discont_tree ctree = cont_tree terms = trees.terminals(tree) cterms = trees.terminals(ctree) root_children = trees.children(tree) croot_children = trees.children(ctree) lca = trees.lca(terms[0], terms[1]) clca = trees.lca(cterms[0], cterms[1]) assert terms[0].data['word'] == 'Who' assert cterms[0].data['word'] == 'Who' assert terms[1].data['word'] == 'did' assert cterms[1].data['word'] == 'did' assert root_children[0].data['label'] == 'S' assert croot_children[0].data['label'] == 'S' assert root_children[0] == lca assert croot_children[0] == clca