Beispiel #1
0
 def test_find_not_existing(self):
     self.assertIsNone(find_slice_beg([1, 2, 3, 4, 5], slice_to_find=[]))
     self.assertIsNone(find_slice_beg([1, 2, 3, 4, 5], slice_to_find=[5,
                                                                      6]))
     self.assertIsNone(find_slice_beg([1, 2, 3, 4, 5], slice_to_find=[7,
                                                                      8]))
     self.assertIsNone(find_slice_beg([1, 2, 3, 4, 5], slice_to_find=[1,
                                                                      3]))
Beispiel #2
0
    def test_find_all(self):
        self.assertEqual([0],
                         find_slice_beg([1, 2, 3, 4, 5],
                                        slice_to_find=[1],
                                        find_all=True))
        self.assertEqual([2],
                         find_slice_beg([1, 2, 3, 4, 5],
                                        slice_to_find=[3],
                                        find_all=True))
        self.assertEqual([4],
                         find_slice_beg([1, 2, 3, 4, 5],
                                        slice_to_find=[5],
                                        find_all=True))

        self.assertEqual([0, 2, 4],
                         find_slice_beg([1, 2, 1, 4, 1],
                                        slice_to_find=[1],
                                        find_all=True))

        self.assertEqual([],
                         find_slice_beg([1, 2, 3, 4, 5],
                                        slice_to_find=[],
                                        find_all=True))
        self.assertEqual([],
                         find_slice_beg([1, 2, 3, 4, 5],
                                        slice_to_find=[6],
                                        find_all=True))
        self.assertEqual([],
                         find_slice_beg([1, 2, 3, 4, 5],
                                        slice_to_find=[6, 7],
                                        find_all=True))
Beispiel #3
0
    def _find_all_introducers(self, source: List[str]):
        found_introducers = []

        for introducer in self.introducers:
            introducer = split_on_special_characters(
                introducer, preserve_special_characters=True)
            found_indexes = find_slice_beg(source,
                                           slice_to_find=introducer,
                                           find_all=True,
                                           case_insensitive=True)
            found_introducers.extend([(idx, introducer)
                                      for idx in found_indexes])

        found_introducers.sort(key=lambda idx_introducer: idx_introducer[0])

        return found_introducers
Beispiel #4
0
    def test_find_single_elem(self):
        self.assertEqual(0,
                         find_slice_beg([1, 2, 3, 4, 5], slice_to_find=[1, 2]))
        self.assertEqual(1,
                         find_slice_beg([1, 2, 3, 4, 5], slice_to_find=[2, 3]))
        self.assertEqual(2,
                         find_slice_beg([1, 2, 3, 4, 5], slice_to_find=[3, 4]))
        self.assertEqual(3,
                         find_slice_beg([1, 2, 3, 4, 5], slice_to_find=[4, 5]))

        self.assertEqual(0, find_slice_beg([1, 2, 3, 4, 5], slice_to_find=[1]))
        self.assertEqual(4, find_slice_beg([1, 2, 3, 4, 5], slice_to_find=[5]))

        self.assertEqual(
            0, find_slice_beg([1, 2, 3, 4, 5], slice_to_find=[1, 2, 3, 4, 5]))
    def _test_first_word_of_sentence_helper(self, sentence, analysis_subject,
                                            expected_result):
        source = split_on_special_characters(sentence,
                                             preserve_special_characters=True)
        analysis_subject = split_on_special_characters(
            analysis_subject, preserve_special_characters=True)

        slice_beg = find_slice_beg(source, slice_to_find=analysis_subject)
        assert slice_beg is not None

        slice_end = slice_beg + len(analysis_subject)
        match = AddressMatch(
            source=source,
            match_slice_position=(slice_beg, slice_end),
            location=''  # doesn't matter
        )
        assert match.matched_phrase == ' '.join(analysis_subject)

        ctx_analyser = FirstWordOfSentenceContext()
        self.assertEqual(ctx_analyser(match), expected_result)

        negated_ctx_analyser = FirstWordOfSentenceContext(negate=True)
        self.assertEqual(negated_ctx_analyser(match), not expected_result)
Beispiel #6
0
 def test_find_case_insensitive(self):
     self.assertIsNotNone(
         find_slice_beg(["Nieopodal"],
                        slice_to_find=["nieopodal"],
                        case_insensitive=True))