Пример #1
0
    def test_de_dates(self):
        text = """Ausfertigungsdatum: 23.05.1975 Vollzitat:
                "Gesetz über vermögenswirksame Leistungen für Beamte, Richter, Berufssoldaten und
                Soldaten auf Zeit in der Fassung der Bekanntmachung vom 16. Mai 2002 (BGBl. I S. 1778),
                das zuletzt durch Artikel 39 des Gesetzes vom 29. März 2017 (BGBl. I S. 626) geändert worden ist"
                Stand:        Neugefasst durch Bek. v. 16.5.2002 I 1778;
                zuletzt geändert durch Art. 39 G v. 29.3.2017 I 626"""

        extracted_dates = list(get_date_annotations(text=text, locale='de'))
        extracted_dates.sort(key=lambda a: a.coords[0])
        for d in extracted_dates:
            d.text = text[d.coords[0]:d.coords[1]].strip()
        expected_values = [
            (20, 30, datetime.datetime(1975, 5, 23), '23.05.1975'),
            (212, 224, datetime.datetime(2002, 5, 16), '16. Mai 2002'),
            (306, 319, datetime.datetime(2017, 3, 29), '29. März 2017'),
            (413, 422, datetime.datetime(2002, 5, 16), '16.5.2002'),
            (483, 492, datetime.datetime(2017, 3, 29), '29.3.2017')
        ]

        self.assertEqual(len(expected_values), len(extracted_dates))
        for i in range(len(expected_values)):
            act = extracted_dates[i]
            exp = expected_values[i]
            self.assertEqual((exp[0], exp[1]), act.coords)
            self.assertEqual(exp[2], act.date)
Пример #2
0
    def test_negative(self):
        text = '''Leasing ohne Anzahlung: Monatliche Rate 300€, Laufzeit 36 Monaten, Gesamtkosten
        10.800€
        Leasing mit 2.500€ Anzahlung: Monatliche Rate 230,55€, Laufzeit 36 Monate,
        Gesamtkosten 10.800€
        Durch eine Sonderzahlung wird die monatliche Belastung gesenkt, das Risiko für
        den Leasinggeber sinkt.'''
        dates = list(get_date_annotations(text))
        for d in dates:
            d.text = text[d.coords[0]:d.coords[1]]

        self.assertEqual(0, len(dates))
Пример #3
0
def get_dates_ordered(text: str) -> List[DateAnnotation]:
    dates = list(get_date_annotations(text))
    dates.sort(key=lambda d: d.coords[0])
    return dates
Пример #4
0
 def test_date_reverse_order(self):
     text = 'Commencement Date: 09/12/2022.'
     dates = list(get_date_annotations(text))
     self.assertEqual(1, len(dates))
     self.assertEqual(12, dates[0].date.month)