Files
doczyai-pipelines/fieldExtraction/tests/ac_smart_chunking_test.py
T
Alex Galarce c6a854b2b9 Merged in hotfix/cleaned-new-date-regex (pull request #325)
Hotfix/cleaned new date regex

* new date pattern

* add tests


Approved-by: Katon Minhas
2024-12-10 17:14:51 +00:00

112 lines
2.7 KiB
Python

import pytest
import re
from ac_smart_chunking import DATE_PATTERN
legal_traditional_dates = [
"This 12th day of December, 2024",
"The 23RD DAY of JANUARY, 2026",
"The 0th dAy of JaNuArY, 1000",
"12th of December, Two Thousand and Twenty-Four",
"Thirteenth of DeCeMbEr, Two Thousand and Sixteen",
"Thirteenth of DeCeMbEr, Nineteen Hundred and Sixty Seven",
"Thirteenth of DeCeMbEr, One Thousand, Nine Hundred, and Sixty Seven",
"The 12th of December, 2024",
"The 145th of January, 2023",
"12th day of December, 2024",
"1st day of January, 2025",
"2nd day of JaNuArY, 2025",
"3rd day of JANUARY, 2025",
"21st day of January, 2025",
"22nd day of January, 2025",
"On 12 December 2025",
]
numeric_dates = [
"20.12.2024",
"01.01.1000",
"05.12.06",
"12.18.2024",
"20241212",
"11/18/2014",
"11-18-2024",
"11/18/24",
"11-18-24",
"2024/11/18",
"2024-11-18",
"18/11/24",
"1224",
"2024.12.09",
]
abbreviated_dates = [
"18-Nov-2024",
"Nov-18-2024",
"Dec/12/2024",
"Dec.12.2024",
"Dec/2024",
]
contextual_dates = [
"Friday, December 18, 2024",
"Fri, Dec 18, 2024",
]
compact_dates = [
"12-December-2024",
"December 2024",
"Dec-12-2024",
]
case_variations = [
"friday, december 18, 2024",
"FRI, DEC 18, 2024",
"DECEMBER 2024",
# Multiple spaces
"Friday, December 18, 2024",
"Dec 12, 2024",
# Multiple newlines
"Friday,\nDecember\n18,\n2024",
"Dec\n12,\n2024",
# Original formats with newlines
"1 day\nof December\n,\n2006",
"1\nday\nof\nDecember\n,\n2006",
"1st day\nof\nDecember,\n2006",
]
ordinal_dates = [
"1st day of December, 2006",
"1st Day of December,2006",
"2nd day of January, 2024",
"2nd Day of Jan,2024",
"3rd day of November, 1999",
"3rd Day of Nov,1999",
"4th day of March, 2023",
"4th Day of Mar,2023",
"21st day of April, 2022",
"22nd day of May,2022",
"23rd day of June, 2021",
"24th Day of July,2021",
]
invalid_dates = [
"Invalid date",
"Not a date",
"Decide", # make sure "dec" doesn't accidentally match to "decide" or other words
"decided",
"Novel", # make sure "nov" doesn't accidentally match to other words
"novelty",
]
def test_valid_dates():
for date_list in [legal_traditional_dates, numeric_dates, abbreviated_dates,
contextual_dates, compact_dates, case_variations, ordinal_dates]:
for date in date_list:
match = re.findall(DATE_PATTERN, date)
assert match
def test_invalid_dates():
for date in invalid_dates:
match = re.findall(DATE_PATTERN, date)
assert not match