def test_add_child_interp(self):
        reg_tree = compiler.RegulationTree(None)
        n1 = Node('n1', label=['205', '1', 'Interp'])
        n5 = Node('n5', label=['205', '5', 'Interp'])
        n9 = Node('n9', label=['205', '9', 'Interp'])
        n10 = Node('n10', label=['205', '10', 'Interp'])

        children = [n1, n5, n10]
        children = reg_tree.add_child(children, n9)
        self.assertEqual(children, [n1, n5, n9, n10])

        n1.label = ['205', '1', 'a', '1', 'i', 'Interp']
        n5.label = ['205', '1', 'a', '1', 'v', 'Interp']
        n9.label = ['205', '1', 'a', '1', 'ix', 'Interp']
        n10.label = ['205', '1', 'a', '1', 'x', 'Interp']
        children = [n1, n5, n10]
        children = reg_tree.add_child(children, n9)
        self.assertEqual(children, [n1, n5, n9, n10])

        n1.label = ['205', '1', 'a', 'Interp', '1', 'i']
        n5.label = ['205', '1', 'a', 'Interp', '1', 'v']
        n9.label = ['205', '1', 'a', 'Interp', '1', 'ix']
        n10.label = ['205', '1', 'a', 'Interp', '1', 'x']
        children = [n1, n5, n10]
        children = reg_tree.add_child(children, n9)
        self.assertEqual(children, [n1, n5, n9, n10])

        n1.label = ['205', '1', 'Interp', '1']
        n5.label = ['205', '1', 'a', 'Interp']
        children = [n1]
        children = reg_tree.add_child(children, n5)
        self.assertEqual(children, [n1, n5])
        children = [n5]
        children = reg_tree.add_child(children, n1)
        self.assertEqual(children, [n1, n5])
    def test_add_child_interp(self):
        reg_tree = compiler.RegulationTree(None)
        n1 = Node('n1', label=['205', '1', 'Interp'])
        n5 = Node('n5', label=['205', '5', 'Interp'])
        n9 = Node('n9', label=['205', '9', 'Interp'])
        n10 = Node('n10', label=['205', '10', 'Interp'])

        children = [n1, n5, n10]
        children = reg_tree.add_child(children, n9)
        self.assertEqual(children, [n1, n5, n9, n10])

        n1.label = ['205', '1', 'a', '1', 'i', 'Interp']
        n5.label = ['205', '1', 'a', '1', 'v', 'Interp']
        n9.label = ['205', '1', 'a', '1', 'ix', 'Interp']
        n10.label = ['205', '1', 'a', '1', 'x', 'Interp']
        children = [n1, n5, n10]
        children = reg_tree.add_child(children, n9)
        self.assertEqual(children, [n1, n5, n9, n10])

        n1.label = ['205', '1', 'a', 'Interp', '1', 'i']
        n5.label = ['205', '1', 'a', 'Interp', '1', 'v']
        n9.label = ['205', '1', 'a', 'Interp', '1', 'ix']
        n10.label = ['205', '1', 'a', 'Interp', '1', 'x']
        children = [n1, n5, n10]
        children = reg_tree.add_child(children, n9)
        self.assertEqual(children, [n1, n5, n9, n10])

        n1.label = ['205', '1', 'Interp', '1']
        n5.label = ['205', '1', 'a', 'Interp']
        children = [n1]
        children = reg_tree.add_child(children, n5)
        self.assertEqual(children, [n1, n5])
        children = [n5]
        children = reg_tree.add_child(children, n1)
        self.assertEqual(children, [n1, n5])
    def test_add_child_interp(self):
        reg_tree = compiler.RegulationTree(None)
        n1 = Node("n1", label=["205", "1", "Interp"])
        n5 = Node("n5", label=["205", "5", "Interp"])
        n9 = Node("n9", label=["205", "9", "Interp"])
        n10 = Node("n10", label=["205", "10", "Interp"])

        children = [n1, n5, n10]
        children = reg_tree.add_child(children, n9)
        self.assertEqual(children, [n1, n5, n9, n10])

        n1.label = ["205", "1", "a", "1", "i", "Interp"]
        n5.label = ["205", "1", "a", "1", "v", "Interp"]
        n9.label = ["205", "1", "a", "1", "ix", "Interp"]
        n10.label = ["205", "1", "a", "1", "x", "Interp"]
        children = [n1, n5, n10]
        children = reg_tree.add_child(children, n9)
        self.assertEqual(children, [n1, n5, n9, n10])

        n1.label = ["205", "1", "a", "Interp", "1", "i"]
        n5.label = ["205", "1", "a", "Interp", "1", "v"]
        n9.label = ["205", "1", "a", "Interp", "1", "ix"]
        n10.label = ["205", "1", "a", "Interp", "1", "x"]
        children = [n1, n5, n10]
        children = reg_tree.add_child(children, n9)
        self.assertEqual(children, [n1, n5, n9, n10])

        n1.label = ["205", "1", "Interp", "1"]
        n5.label = ["205", "1", "a", "Interp"]
        children = [n1]
        children = reg_tree.add_child(children, n5)
        self.assertEqual(children, [n1, n5])
        children = [n5]
        children = reg_tree.add_child(children, n1)
        self.assertEqual(children, [n1, n5])
    def test_bad_label(self):
        label = ['205', '4', 'a', '1', 'ii', 'A']
        node = Node('text', label=label, node_type=Node.REGTEXT)
        self.assertFalse(changes.bad_label(node))

        node.label = ['205', '38', 'i', 'vii', 'A']
        self.assertTrue(changes.bad_label(node))

        node.label = ['205', 'ii']
        self.assertTrue(changes.bad_label(node))

        node.label = ['205', '38', 'A', 'vii', 'A']
        self.assertTrue(changes.bad_label(node))
    def test_bad_label(self):
        label = ["205", "4", "a", "1", "ii", "A"]
        node = Node("text", label=label, node_type=Node.REGTEXT)
        self.assertFalse(changes.bad_label(node))

        node.label = ["205", "38", "i", "vii", "A"]
        self.assertTrue(changes.bad_label(node))

        node.label = ["205", "ii"]
        self.assertTrue(changes.bad_label(node))

        node.label = ["205", "38", "A", "vii", "A"]
        self.assertTrue(changes.bad_label(node))
    def test_bad_label(self):
        label = ['205', '4', 'a', '1', 'ii', 'A']
        node = Node('text', label=label, node_type=Node.REGTEXT)
        self.assertFalse(changes.bad_label(node))

        node.label = ['205', '38', 'i', 'vii', 'A']
        self.assertTrue(changes.bad_label(node))

        node.label = ['205', 'ii']
        self.assertTrue(changes.bad_label(node))

        node.label = ['205', '38', 'A', 'vii', 'A']
        self.assertTrue(changes.bad_label(node))
def test_bad_label():
    label = ['205', '4', 'a', '1', 'ii', 'A']
    node = Node('text', label=label, node_type=Node.REGTEXT)
    assert not changes.bad_label(node)

    node.label = ['205', '38', 'i', 'vii', 'A']
    assert changes.bad_label(node)

    node.label = ['205', 'ii']
    assert changes.bad_label(node)

    node.label = ['205', '38', 'A', 'vii', 'A']
    assert changes.bad_label(node)
    def derive_nodes(self, xml, processor=None):
        text = tree_utils.get_node_text(xml).strip()
        node = Node(text=text, source_xml=xml)
        node.tagged_text = unicode(
            tree_utils.get_node_text_tags_preserved(xml).strip())

        regex = self._PAREN_REGEX if text[:1] == '(' else self._PERIOD_REGEX
        match = regex.match(text)
        if match:
            node.label = [match.group('marker')]
        else:
            node.label = [mtypes.MARKERLESS]

        return [node]
    def derive_nodes(self, xml, processor=None):
        text = tree_utils.get_node_text(xml).strip()
        node = Node(text=text, source_xml=xml)
        node.tagged_text = six.text_type(
            tree_utils.get_node_text_tags_preserved(xml).strip())

        regex = self._PAREN_REGEX if text[:1] == '(' else self._PERIOD_REGEX
        match = regex.match(text)
        if match:
            node.label = [match.group('marker')]
        else:
            node.label = [mtypes.MARKERLESS]

        return [node]
Ejemplo n.º 10
0
    def paragraph_with_marker(self, text, tagged_text):
        """The paragraph has a marker, like (a) or a. etc."""
        # To aid in determining collapsed paragraphs, replace any
        # keyterms present
        node_for_keyterms = Node(text, node_type=Node.APPENDIX)
        node_for_keyterms.tagged_text = tagged_text
        node_for_keyterms.label = [initial_marker(text)[0]]
        keyterm = KeyTerms.get_keyterm(node_for_keyterms)
        if keyterm:
            mtext = text.replace(keyterm, ';'*len(keyterm))
        else:
            mtext = text

        for mtext in split_paragraph_text(mtext):
            if keyterm:     # still need the original text
                mtext = mtext.replace(';'*len(keyterm), keyterm)
            # label_candidate = [initial_marker(mtext)[0]]
            # existing_node = None
            # for node in self.nodes:
            #     if node.label == label_candidate:
            #         existing_node = node
            # if existing_node:
            #     self.paragraph_counter += 1
            #     node = Node(mtext, node_type=Node.APPENDIX,
            #                 label=['dup{}'.format(self.paragraph_counter),
            #                        initial_marker(mtext)[0]])
            # else:
            node = Node(mtext, node_type=Node.APPENDIX,
                        label=[initial_marker(mtext)[0]])
            node.tagged_text = tagged_text
            self.nodes.append(node)
Ejemplo n.º 11
0
    def paragraph_with_marker(self, text, tagged_text):
        """The paragraph has a marker, like (a) or a. etc."""
        # To aid in determining collapsed paragraphs, replace any
        # keyterms present
        node_for_keyterms = Node(text, node_type=Node.APPENDIX)
        node_for_keyterms.tagged_text = tagged_text
        node_for_keyterms.label = [initial_marker(text)[0]]
        keyterm = KeyTerms.get_keyterm(node_for_keyterms)
        if keyterm:
            mtext = text.replace(keyterm, ';' * len(keyterm))
        else:
            mtext = text

        for mtext in split_paragraph_text(mtext):
            if keyterm:  # still need the original text
                mtext = mtext.replace(';' * len(keyterm), keyterm)
            # label_candidate = [initial_marker(mtext)[0]]
            # existing_node = None
            # for node in self.nodes:
            #     if node.label == label_candidate:
            #         existing_node = node
            # if existing_node:
            #     self.paragraph_counter += 1
            #     node = Node(mtext, node_type=Node.APPENDIX,
            #                 label=['dup{}'.format(self.paragraph_counter),
            #                        initial_marker(mtext)[0]])
            # else:
            node = Node(mtext,
                        node_type=Node.APPENDIX,
                        label=[initial_marker(mtext)[0]])
            node.tagged_text = tagged_text
            self.nodes.append(node)
    def test_get_parent_label(self):
        node = Node(node_type=Node.REGTEXT)
        node.label = ['205', '3', 'a']
        self.assertEqual(compiler.get_parent_label(node), "205-3")

        node.label = ['205', '3', 'a', '5', 'ii', 'R']
        self.assertEqual(compiler.get_parent_label(node), "205-3-a-5-ii")

        node.node_type = Node.SUBPART
        self.assertEqual(compiler.get_parent_label(node), "205")

        node.node_type = Node.INTERP
        node.label = ['205', '3', 'a', Node.INTERP_MARK, '1', 'i']
        self.assertEqual(compiler.get_parent_label(node), "205-3-a-Interp-1")

        node.label = ['205', '3', 'a', Node.INTERP_MARK, '1']
        self.assertEqual(compiler.get_parent_label(node), "205-3-a-Interp")

        node.label = ['205', '3', 'a', Node.INTERP_MARK]
        self.assertEqual(compiler.get_parent_label(node), "205-3-Interp")
    def test_get_parent_label(self):
        node = Node(node_type=Node.REGTEXT)
        node.label = ['205', '3', 'a']
        self.assertEqual(compiler.get_parent_label(node), "205-3")

        node.label = ['205', '3', 'a', '5', 'ii', 'R']
        self.assertEqual(compiler.get_parent_label(node), "205-3-a-5-ii")

        node.node_type = Node.SUBPART
        self.assertEqual(compiler.get_parent_label(node), "205")

        node.node_type = Node.INTERP
        node.label = ['205', '3', 'a', Node.INTERP_MARK, '1', 'i']
        self.assertEqual(compiler.get_parent_label(node), "205-3-a-Interp-1")

        node.label = ['205', '3', 'a', Node.INTERP_MARK, '1']
        self.assertEqual(compiler.get_parent_label(node), "205-3-a-Interp")

        node.label = ['205', '3', 'a', Node.INTERP_MARK]
        self.assertEqual(compiler.get_parent_label(node), "205-3-Interp")
    def test_get_parent_label(self):
        node = Node(node_type=Node.REGTEXT)
        node.label = ["205", "3", "a"]
        self.assertEqual(compiler.get_parent_label(node), "205-3")

        node.label = ["205", "3", "a", "5", "ii", "R"]
        self.assertEqual(compiler.get_parent_label(node), "205-3-a-5-ii")

        node.node_type = Node.SUBPART
        self.assertEqual(compiler.get_parent_label(node), "205")

        node.node_type = Node.INTERP
        node.label = ["205", "3", "a", Node.INTERP_MARK, "1", "i"]
        self.assertEqual(compiler.get_parent_label(node), "205-3-a-Interp-1")

        node.label = ["205", "3", "a", Node.INTERP_MARK, "1"]
        self.assertEqual(compiler.get_parent_label(node), "205-3-a-Interp")

        node.label = ["205", "3", "a", Node.INTERP_MARK]
        self.assertEqual(compiler.get_parent_label(node), "205-3-Interp")
Ejemplo n.º 15
0
    def paragraph_with_marker(self, text, tagged_text):
        """The paragraph has a marker, like (a) or a. etc."""
        # To aid in determining collapsed paragraphs, replace any
        # keyterms present
        node_for_keyterms = Node(text, node_type=Node.APPENDIX)
        node_for_keyterms.tagged_text = tagged_text
        node_for_keyterms.label = [initial_marker(text)[0]]
        keyterm = KeyTerms.get_keyterm(node_for_keyterms)
        if keyterm:
            mtext = text.replace(keyterm, '.'*len(keyterm))
        else:
            mtext = text

        for mtext in split_paragraph_text(mtext):
            if keyterm:     # still need the original text
                mtext = mtext.replace('.'*len(keyterm), keyterm)
            node = Node(mtext, node_type=Node.APPENDIX,
                        label=[initial_marker(mtext)[0]])
            self.nodes.append(node)