def test_pre_process_defined_twice(self): tree = Node(u"The term “lol” means laugh out loud. " + u"How do you pronounce “lol”, though?", label=['1212', '5']) t = Terms(tree) t.pre_process() self.assertEqual(t.layer['referenced']['lol:1212-5']['position'], (10, 13))
def test_pre_process(self): noname_subpart = Node('', label=['88', 'Subpart'], node_type=Node.EMPTYPART, children=[ Node(u"Definition. For the purposes of this part, " + u"“abcd” is an alphabet", label=['88', '1'])]) xqxq_subpart = Node('', title='Subpart XQXQ: The unreadable', label=['88', 'Subpart', 'XQXQ'], node_type=Node.SUBPART, children=[ Node(label=['88', '2'], children=[ Node(label=['88', '2', 'a'], text="Definitions come later for the purposes of " + "this section ", children=[ Node(u"“AXAX” means axe-cop", label=['88', '2', 'a', '1'])]), Node(label=['88', '2', 'b'], children=[ Node(label=['88', '2', 'b', 'i'], children=[ Node(label=['88', '2', 'b', 'i', 'A'], text=u"Definition. “Awesome sauce” means " +"great for the purposes of this " + "paragraph",)])])])]) tree = Node(label=['88'], children=[noname_subpart, xqxq_subpart]) t = Terms(tree) t.pre_process() self.assertTrue(('88',) in t.scoped_terms) self.assertEqual([Ref('abcd', '88-1', (44,48))], t.scoped_terms[('88',)]) self.assertTrue(('88','2') in t.scoped_terms) self.assertEqual([Ref('axax', '88-2-a-1', (1,5))], t.scoped_terms[('88','2')]) self.assertTrue(('88','2','b','i','A') in t.scoped_terms) self.assertEqual([Ref('awesome sauce', '88-2-b-i-A', (13,26))], t.scoped_terms[('88','2','b','i','A')]) # Check subparts are correct self.assertEqual({None: ['1'], 'XQXQ': ['2']}, dict(t.subpart_map)) # Finally, make sure the references are added referenced = t.layer['referenced'] self.assertTrue('abcd:88-1' in referenced) self.assertEqual('abcd', referenced['abcd:88-1']['term']) self.assertEqual('88-1', referenced['abcd:88-1']['reference']) self.assertEqual((44,48), referenced['abcd:88-1']['position']) self.assertTrue('axax:88-2-a-1' in referenced) self.assertEqual('axax', referenced['axax:88-2-a-1']['term']) self.assertEqual('88-2-a-1', referenced['axax:88-2-a-1']['reference']) self.assertEqual((1,5), referenced['axax:88-2-a-1']['position']) self.assertTrue('awesome sauce:88-2-b-i-A' in referenced) self.assertEqual('awesome sauce', referenced['awesome sauce:88-2-b-i-A']['term']) self.assertEqual('88-2-b-i-A', referenced['awesome sauce:88-2-b-i-A']['reference']) self.assertEqual((13,26), referenced['awesome sauce:88-2-b-i-A']['position'])
def test_pre_process(self): settings.SUBPART_STARTS = {'2': 'XQXQ'} tree = Node(children=[ Node(u"Definition. For the purposes of this part, “abcd” is " + "an alphabet", label=['88', '1']), Node(children=[ Node("Definitions come later for the purposes of this " + "section ", children=[ Node(u"“AXAX” means axe-cop", label=["88","2","a","1"]) ], label=["88","2","a"]), Node(children=[Node(children=[Node( u"Definition. “Awesome sauce” means great for the " + "purposes of this paragraph", label=["88","2","b","i","A"])])]) ], label=['88','2']) ]) t = Terms(tree) t.pre_process() self.assertTrue(('88',) in t.scoped_terms) self.assertEqual([Ref('abcd', '88-1', (44,48))], t.scoped_terms[('88',)]) self.assertTrue(('88','2') in t.scoped_terms) self.assertEqual([Ref('axax', '88-2-a-1', (1,5))], t.scoped_terms[('88','2')]) self.assertTrue(('88','2','b','i','A') in t.scoped_terms) self.assertEqual([Ref('awesome sauce', '88-2-b-i-A', (13,26))], t.scoped_terms[('88','2','b','i','A')]) # Check subparts are correct self.assertEqual({None: ['1'], 'XQXQ': ['2']}, dict(t.subpart_map)) # Finally, make sure the references are added referenced = t.layer['referenced'] self.assertTrue('abcd:88-1' in referenced) self.assertEqual('abcd', referenced['abcd:88-1']['term']) self.assertEqual('88-1', referenced['abcd:88-1']['reference']) self.assertEqual((44,48), referenced['abcd:88-1']['position']) self.assertTrue('axax:88-2-a-1' in referenced) self.assertEqual('axax', referenced['axax:88-2-a-1']['term']) self.assertEqual('88-2-a-1', referenced['axax:88-2-a-1']['reference']) self.assertEqual((1,5), referenced['axax:88-2-a-1']['position']) self.assertTrue('awesome sauce:88-2-b-i-A' in referenced) self.assertEqual('awesome sauce', referenced['awesome sauce:88-2-b-i-A']['term']) self.assertEqual('88-2-b-i-A', referenced['awesome sauce:88-2-b-i-A']['reference']) self.assertEqual((13,26), referenced['awesome sauce:88-2-b-i-A']['position'])
def test_node_definitions_exclusion(self): n1 = Node(u'“Bologna” is a type of deli meat', label=['111', '1']) n2 = Node(u'Let us not forget that the term “bologna” does not ' + 'include turtle meat', label=['111', '1', 'a']) t = Terms(Node(label=['111'], children=[n1, n2])) t.pre_process() stack = ParentStack() stack.add(1, Node('Definitions')) included, excluded = t.node_definitions(n1, stack) self.assertEqual([Ref('bologna', '111-1', (1, 8))], included) self.assertEqual([], excluded) t.scoped_terms[('111', '1')] = included included, excluded = t.node_definitions(n2, stack) self.assertEqual([], included) self.assertEqual([Ref('bologna', '111-1-a', (33, 40))], excluded)
def test_pre_process_subpart(self): root = Node("", label=['1212']) subpartA = Node("", label=['1212', 'Subpart', 'A'], title='Subpart A') section2 = Node("", label=['1212', '2'], title='1212.2') def1 = Node(u"“totes” means in total", label=['1212', '2', 'a']) subpartB = Node("", label=['1212', 'Subpart', 'B'], title='Subpart B') section22 = Node("\nFor the purposes of this subpart", label=['1212', '22'], title='1212.22') def2 = Node(u"“totes” means in extremely", label=['1212', '22', 'a']) root.children = [subpartA, subpartB] subpartA.children, subpartB.children = [section2], [section22] section2.children, section22.children = [def1], [def2] t = Terms(root) t.pre_process() self.assertTrue(('1212',) in t.scoped_terms) self.assertEqual(len(t.scoped_terms[('1212',)]), 1) self.assertEqual('1212-2-a', t.scoped_terms[('1212',)][0].label) self.assertTrue(('1212', '22') in t.scoped_terms) self.assertEqual(len(t.scoped_terms[('1212', '22')]), 1) self.assertEqual('1212-22-a', t.scoped_terms[('1212', '22')][0].label)
def test_pre_process(self): noname_subpart = Node( '', label=['88', 'Subpart'], node_type=Node.EMPTYPART, children=[ Node(u"Definition. For the purposes of this part, " + u"“abcd” is an alphabet", label=['88', '1']) ]) xqxq_subpart = Node( '', title='Subpart XQXQ: The unreadable', label=['88', 'Subpart', 'XQXQ'], node_type=Node.SUBPART, children=[ Node( label=['88', '2'], children=[ Node(label=['88', '2', 'a'], text="Definitions come later for the purposes of " + "this section ", children=[ Node(u"“AXAX” means axe-cop", label=['88', '2', 'a', '1']) ]), Node( label=['88', '2', 'b'], children=[ Node( label=['88', '2', 'b', 'i'], children=[ Node( label=['88', '2', 'b', 'i', 'A'], text= u"Definition. “Awesome sauce” means " + "great for the purposes of this " + "paragraph", ) ]) ]) ]) ]) tree = Node(label=['88'], children=[noname_subpart, xqxq_subpart]) t = Terms(tree) t.pre_process() self.assertTrue(('88', ) in t.scoped_terms) self.assertEqual([Ref('abcd', '88-1', 44)], t.scoped_terms[('88', )]) self.assertTrue(('88', '2') in t.scoped_terms) self.assertEqual([Ref('axax', '88-2-a-1', 1)], t.scoped_terms[('88', '2')]) self.assertTrue(('88', '2', 'b', 'i', 'A') in t.scoped_terms) self.assertEqual([Ref('awesome sauce', '88-2-b-i-A', 13)], t.scoped_terms[('88', '2', 'b', 'i', 'A')]) # Check subparts are correct self.assertEqual({ None: ['1'], 'XQXQ': ['2'] }, dict(t.scope_finder.subpart_map)) # Finally, make sure the references are added referenced = t.layer['referenced'] self.assertTrue('abcd:88-1' in referenced) self.assertEqual('abcd', referenced['abcd:88-1']['term']) self.assertEqual('88-1', referenced['abcd:88-1']['reference']) self.assertEqual((44, 48), referenced['abcd:88-1']['position']) self.assertTrue('axax:88-2-a-1' in referenced) self.assertEqual('axax', referenced['axax:88-2-a-1']['term']) self.assertEqual('88-2-a-1', referenced['axax:88-2-a-1']['reference']) self.assertEqual((1, 5), referenced['axax:88-2-a-1']['position']) self.assertTrue('awesome sauce:88-2-b-i-A' in referenced) self.assertEqual('awesome sauce', referenced['awesome sauce:88-2-b-i-A']['term']) self.assertEqual('88-2-b-i-A', referenced['awesome sauce:88-2-b-i-A']['reference']) self.assertEqual((13, 26), referenced['awesome sauce:88-2-b-i-A']['position'])