Spaces:
Sleeping
Sleeping
Download tests/test_preprocessor.py from fergieee/gotcha-classifier2: direct link, hf CLI and curl.
- Browser
- Download file 2.39 kB
-
https://huggingface.co/spaces/fergieee/gotcha-classifier2/resolve/main/tests/test_preprocessor.py
- Command line
-
hf download hf://spaces/fergieee/gotcha-classifier2/tests/test_preprocessor.py
-
curl -L -o test_preprocessor.py https://huggingface.co/spaces/fergieee/gotcha-classifier2/resolve/main/tests/test_preprocessor.py
2.39 kB
| import pytest | |
| from gotcha.preprocessor import clean_text_pipeline, segment_sentences | |
| def test_clean_text_mojibake_fix(): | |
| # Broken UTF-8 quotation marks and apostrophes | |
| raw = "The company’s services are provided “as isâ€." | |
| cleaned = clean_text_pipeline(raw) | |
| assert "company’s" in cleaned or "company's" in cleaned | |
| assert "“as is”" in cleaned or '"as is"' in cleaned | |
| def test_clean_text_hard_wraps(): | |
| raw = "This is a sentence\nsplit across lines.\n\nThis is a new paragraph." | |
| cleaned = clean_text_pipeline(raw) | |
| assert "This is a sentence split across lines." in cleaned | |
| assert "\n\n" in cleaned or "This is a new paragraph." in cleaned | |
| def test_clean_text_whitespace_normalization(): | |
| raw = "Multiple spaces \t and tabs normalized." | |
| cleaned = clean_text_pipeline(raw) | |
| assert cleaned == "Multiple spaces and tabs normalized." | |
| def test_segment_sentences(): | |
| text = "First sentence here. Second sentence here. Third sentence." | |
| spans = segment_sentences(text) | |
| assert len(spans) == 3 | |
| s0 = text[spans[0][0]:spans[0][1]] | |
| assert s0 == "First sentence here." | |
| def test_clean_text_dehyphenation(): | |
| raw = "You agree to arbi-\n tration and indemni-\n fication of claims." | |
| cleaned = clean_text_pipeline(raw) | |
| assert "arbitration" in cleaned | |
| assert "indemnification" in cleaned | |
| assert "arbi-" not in cleaned | |
| def test_clean_text_page_markers(): | |
| raw = "Terms of Service\nPage 1 of 12\n\n1. Introduction\nWelcome.\nPage 2 of 12\n\n2. Agreement\n— 3 —\nDone." | |
| cleaned = clean_text_pipeline(raw) | |
| assert "Page 1 of 12" not in cleaned | |
| assert "Page 2 of 12" not in cleaned | |
| assert "— 3 —" not in cleaned | |
| def test_segment_sentences_legal_prefix_merge(): | |
| text = "12. Dispute Resolution. All claims shall be settled by arbitration." | |
| spans = segment_sentences(text) | |
| assert len(spans) == 2 | |
| s0 = text[spans[0][0]:spans[0][1]] | |
| assert s0 == "12. Dispute Resolution." | |
| s1 = text[spans[1][0]:spans[1][1]] | |
| assert s1 == "All claims shall be settled by arbitration." | |
| def test_segment_sentences_section_prefix(): | |
| text = "Section 4. Updates to Service. We reserve the right to modify these terms." | |
| spans = segment_sentences(text) | |
| assert len(spans) == 2 | |
| assert text[spans[0][0]:spans[0][1]] == "Section 4. Updates to Service." | |