Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions codeflash/verification/comparator.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ def comparator(orig: Any, new: Any, superset_obj=False) -> bool:
frozenset,
enum.Enum,
type,
range
),
):
return orig == new
Expand Down
16 changes: 16 additions & 0 deletions tests/test_comparator.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,22 @@ 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),
])
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
Expand Down
Loading