def test_discont_general(discont_tree): """General tests concerning discontinuous trees. """ tree = discont_tree nodes = [node for node in trees.preorder(tree)] labels = [node.data['label'] for node in nodes] terms = trees.terminals(tree) words = [node.data['word'] for node in terms] uterms = trees.unordered_terminals(tree) uwords = [node.data['word'] for node in uterms] tree = transform.negra_mark_heads(tree) tree = transform.binarize(tree) left_reorder = [node.data['num'] for node in treeanalysis.disco_order(tree, 'left')] rightd_reorder = [node.data['num'] for node in treeanalysis.disco_order(tree, 'rightd')] assert left_reorder == testdata.DISCONT_LEFT_REORDER assert rightd_reorder == testdata.DISCONT_RIGHTD_REORDER assert all(['num' in node.data for node in terms]) assert all([node in uterms for node in terms]) assert len(terms) == 9 assert len(uterms) == 9 assert len(nodes) == 15 assert labels == testdata.DISCONT_LABELS_PREORDER assert words == testdata.WORDS assert set(uwords) == set(testdata.WORDS)
def test_boyd(discont_tree): """See transform.boyd_split """ tree = discont_tree tree = transform.root_attach(tree) tree = transform.negra_mark_heads(tree) tree = transform.boyd_split(tree) nodes = [node for node in trees.preorder(tree)] labels = [node.data['label'] for node in nodes] terms = trees.terminals(tree) words = [node.data['word'] for node in terms] uterms = trees.unordered_terminals(tree) uwords = [node.data['word'] for node in uterms] assert labels == testdata.DISCONT_LABELSBOYD_PREORDER assert words == testdata.WORDS assert set(uwords) == set(testdata.WORDS)
def test_root_attach(discont_tree): """See transform.root_attach """ tree = discont_tree tree = transform.root_attach(tree) nodes = [node for node in trees.preorder(tree)] labels = [node.data['label'] for node in nodes] terms = trees.terminals(tree) words = [node.data['word'] for node in terms] uterms = trees.unordered_terminals(tree) uwords = [node.data['word'] for node in uterms] assert labels == testdata.DISCONT_LABELS_PREORDER assert words == testdata.WORDS assert set(uwords) == set(testdata.WORDS) with pytest.raises(ValueError): transform.boyd_split(tree)
def test_cont_general(cont_tree): """General tests concerning continuous trees. """ tree = cont_tree terms = trees.terminals(tree) uterms = trees.unordered_terminals(tree) nodes = [node for node in trees.preorder(tree)] labels = [node.data['label'] for node in nodes] words = [node.data['word'] for node in terms] uwords = [node.data['word'] for node in uterms] assert all(['num' in node.data for node in terms]) assert all([node in uterms for node in terms]) assert len(terms) == 9 assert len(uterms) == 9 assert len(nodes) == 15 assert labels == testdata.CONT_LABELS_PREORDER assert words == testdata.WORDS assert set(uwords) == set(testdata.WORDS)