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..6c659e385 100644 --- a/tests/test_comparator.py +++ b/tests/test_comparator.py @@ -125,6 +125,26 @@ def test_basic_python_objects() -> None: 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), + (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 + def test_standard_python_library_objects() -> None: a = datetime.datetime(2020, 2, 2, 2, 2, 2) # type: ignore