From a56c700dd1bdbcdf1e4801321b102514802b00cf Mon Sep 17 00:00:00 2001 From: aseembits93 Date: Tue, 13 May 2025 15:04:52 -0700 Subject: [PATCH 1/3] range can work with double equal --- codeflash/verification/comparator.py | 1 + tests/test_comparator.py | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/codeflash/verification/comparator.py b/codeflash/verification/comparator.py index 1e13eb1cf..79ae7776c 100644 --- a/codeflash/verification/comparator.py +++ b/codeflash/verification/comparator.py @@ -84,6 +84,7 @@ def comparator(orig: Any, new: Any, superset_obj=False) -> bool: frozenset, enum.Enum, type, + range ), ): return orig == new diff --git a/tests/test_comparator.py b/tests/test_comparator.py index c94abb277..1b678bc09 100644 --- a/tests/test_comparator.py +++ b/tests/test_comparator.py @@ -125,6 +125,12 @@ def test_basic_python_objects() -> None: assert comparator(a, b) assert not comparator(a, c) + a = range(1,10) + b = range(1,10) + c = range(1,20) + assert comparator(a, b) + assert not comparator(a, c) + def test_standard_python_library_objects() -> None: a = datetime.datetime(2020, 2, 2, 2, 2, 2) # type: ignore From f482e763d38260af5c88ca149b10235a1c04d876 Mon Sep 17 00:00:00 2001 From: aseembits93 Date: Tue, 13 May 2025 16:06:36 -0700 Subject: [PATCH 2/3] tests galore --- tests/test_comparator.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/tests/test_comparator.py b/tests/test_comparator.py index 1b678bc09..f45a16142 100644 --- a/tests/test_comparator.py +++ b/tests/test_comparator.py @@ -125,11 +125,21 @@ def test_basic_python_objects() -> None: assert comparator(a, b) assert not comparator(a, c) - a = range(1,10) - b = range(1,10) - c = range(1,20) - assert comparator(a, b) - assert not comparator(a, c) +@pytest.mark.parametrize("r1, r2, expected", [ + (range(1, 10), range(1, 10), True), # equal + (range(0, 10), range(1, 10), False), # different start + (range(2, 10), range(1, 10), False), + (range(1, 5), range(1, 10), False), # different stop + (range(1, 20), range(1, 10), False), + (range(1, 10, 1), range(1, 10, 2), False), # different step + (range(1, 10, 3), range(1, 10, 2), False), + (range(-5, 0), range(-5, 0), True), # negative ranges + (range(-10, 0), range(-5, 0), False), + (range(5, 1), range(10, 5), True), # empty ranges + (range(5, 1), range(5, 1), True), +]) +def test_ranges(r1, r2, expected): + assert comparator(r1, r2) == expected def test_standard_python_library_objects() -> None: From ab0288c85db21bc82def7adf09ba20632db96a66 Mon Sep 17 00:00:00 2001 From: Aseem Saxena Date: Tue, 13 May 2025 16:21:52 -0700 Subject: [PATCH 3/3] Update test_comparator.py --- tests/test_comparator.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test_comparator.py b/tests/test_comparator.py index f45a16142..6c659e385 100644 --- a/tests/test_comparator.py +++ b/tests/test_comparator.py @@ -137,7 +137,11 @@ def test_basic_python_objects() -> None: (range(-10, 0), range(-5, 0), False), (range(5, 1), range(10, 5), True), # empty ranges (range(5, 1), range(5, 1), True), + (range(7), range(0, 7), True), + (range(0, 7), range(0, 7, 1), True), + (range(7), range(0, 7, 1), True), ]) + def test_ranges(r1, r2, expected): assert comparator(r1, r2) == expected