From faeedbc77bf556e0cc64f02dc6fca90ef499f77c Mon Sep 17 00:00:00 2001 From: hangshuo652 Date: Sun, 24 May 2026 13:01:31 +0800 Subject: [PATCH] test: add edge case tests --- tests/comparator/test_aligner_edge.py | 18 ++++++++++++++++++ tests/comparator/test_compare_edge.py | 15 +++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 tests/comparator/test_aligner_edge.py create mode 100644 tests/comparator/test_compare_edge.py diff --git a/tests/comparator/test_aligner_edge.py b/tests/comparator/test_aligner_edge.py new file mode 100644 index 0000000..ac9d80f --- /dev/null +++ b/tests/comparator/test_aligner_edge.py @@ -0,0 +1,18 @@ +import sys, os +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))) +from comparator.aligner import align_records + + +def test_align_large_key_set(): + cobol = [{"ID": f"K{i:04d}", "V": i} for i in range(100)] + spark = [{"ID": f"K{i:04d}", "V": i} for i in range(100)] + result = align_records(cobol, spark, key_field="ID") + assert len(result) == 100 + assert all(st == "MATCHED" for _, _, st in result) + + +def test_align_empty_key_value(): + cobol = [{"ID": "", "V": 1}] + spark = [{"ID": "", "V": 1}] + result = align_records(cobol, spark, key_field="ID") + assert len(result) == 1 diff --git a/tests/comparator/test_compare_edge.py b/tests/comparator/test_compare_edge.py new file mode 100644 index 0000000..95d8dd7 --- /dev/null +++ b/tests/comparator/test_compare_edge.py @@ -0,0 +1,15 @@ +import sys, os +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))) +from comparator.field_compare import compare_field, DEFAULT_TOLERANCE + + +def test_negative_numbers(): + assert compare_field("AMT", "-1500", "-1500", "decimal").status == "PASS" + + +def test_mixed_precision(): + assert compare_field("AMT", "1500.00", "1500", "decimal", DEFAULT_TOLERANCE).status == "PASS" + + +def test_very_large_number(): + assert compare_field("AMT", "9999999999", "9999999999", "decimal").status == "PASS"