Skip to content

Commit eb72cc3

Browse files
committed
test cyclic sort input validation
1 parent 09f3e80 commit eb72cc3

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

sorts/cyclic_sort.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,16 @@ def cyclic_sort(nums: list[int]) -> list[int]:
2828
[]
2929
>>> cyclic_sort([3, 5, 2, 1, 4])
3030
[1, 2, 3, 4, 5]
31+
32+
>>> cyclic_sort([1, 2, 2])
33+
Traceback (most recent call last):
34+
...
35+
ValueError: All numbers must be unique, got 2
36+
37+
>>> cyclic_sort([1, 5])
38+
Traceback (most recent call last):
39+
...
40+
ValueError: All numbers must be in range 1 to 2, got 5
3141
"""
3242

3343
# Input validation
@@ -36,7 +46,7 @@ def cyclic_sort(nums: list[int]) -> list[int]:
3646

3747
for num in nums:
3848
if num in seen:
39-
message = f"All numbers must be unique, got {nums}"
49+
message = f"All numbers must be unique, got {num}"
4050
raise ValueError(message)
4151

4252
if num < 1 or num > n:
@@ -51,10 +61,8 @@ def cyclic_sort(nums: list[int]) -> list[int]:
5161
correct_index = nums[index] - 1
5262

5363
if index != correct_index:
54-
nums[index], nums[correct_index] = (
55-
nums[correct_index],
56-
nums[index],
57-
)
64+
nums[index], nums[correct_index] = nums[correct_index], nums[index]
65+
5866
else:
5967
index += 1
6068

0 commit comments

Comments
 (0)