Skip to content

Commit a10f046

Browse files
committed
Add new test for bucket sort algorithm in sorts/bucket_sort.py
1 parent 0177ae1 commit a10f046

File tree

3 files changed

+35
-6
lines changed

3 files changed

+35
-6
lines changed

greedy_methods/fractional_knapsack.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,11 @@ def frac_knapsack(vl, wt, w, n):
3939
return (
4040
0
4141
if k == 0
42-
else sum(vl[:k]) + (w - acc[k - 1]) * (vl[k]) / (wt[k])
43-
if k != n
44-
else sum(vl[:k])
42+
else (
43+
sum(vl[:k]) + (w - acc[k - 1]) * (vl[k]) / (wt[k])
44+
if k != n
45+
else sum(vl[:k])
46+
)
4547
)
4648

4749

matrix/matrix_class.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,9 +204,11 @@ def cofactors(self) -> Matrix:
204204
return Matrix(
205205
[
206206
[
207-
self.minors().rows[row][column]
208-
if (row + column) % 2 == 0
209-
else self.minors().rows[row][column] * -1
207+
(
208+
self.minors().rows[row][column]
209+
if (row + column) % 2 == 0
210+
else self.minors().rows[row][column] * -1
211+
)
210212
for column in range(self.minors().num_columns)
211213
]
212214
for row in range(self.minors().num_rows)

sorts/bucket_sort.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,34 @@ def bucket_sort(my_list: list, bucket_count: int = 10) -> list:
5151
>>> collection = random.sample(range(-50, 50), 50)
5252
>>> bucket_sort(collection) == sorted(collection)
5353
True
54+
>>> data = [1, 2, 2, 1, 1, 3]
55+
>>> bucket_sort(data) == sorted(data)
56+
True
57+
>>> data = [5, 5, 5, 5, 5]
58+
>>> bucket_sort(data) == sorted(data)
59+
True
60+
>>> data = [1000, -1000, 500, -500, 0]
61+
>>> bucket_sort(data) == sorted(data)
62+
True
63+
>>> data = [5.5, 2.2, -1.1, 3.3, 0.0]
64+
>>> bucket_sort(data) == sorted(data)
65+
True
66+
>>> bucket_sort([1]) == [1]
67+
True
68+
>>> data = [-1.1, -1.5, -3.4, 2.5, 3.6, -3.3]
69+
>>> bucket_sort(data) == sorted(data)
70+
True
71+
>>> data = [9, 2, 7, 1, 5]
72+
>>> bucket_sort(data) == sorted(data)
73+
True
5474
"""
5575

5676
if len(my_list) == 0 or bucket_count <= 0:
5777
return []
5878

5979
min_value, max_value = min(my_list), max(my_list)
80+
if min_value == max_value:
81+
return my_list
6082
bucket_size = (max_value - min_value) / bucket_count
6183
buckets: list[list] = [[] for _ in range(bucket_count)]
6284

@@ -73,3 +95,6 @@ def bucket_sort(my_list: list, bucket_count: int = 10) -> list:
7395
testmod()
7496
assert bucket_sort([4, 5, 3, 2, 1]) == [1, 2, 3, 4, 5]
7597
assert bucket_sort([0, 1, -10, 15, 2, -2]) == [-10, -2, 0, 1, 2, 15]
98+
assert bucket_sort([1.1, 1.2, -1.2, 0, 2.4]) == [-1.2, 0, 1.1, 1.2, 2.4]
99+
assert bucket_sort([5, 5, 5, 5, 5]) == [5, 5, 5, 5, 5]
100+
assert bucket_sort([-5, -1, -6, -2]) == [-6, -5, -2, -1]

0 commit comments

Comments
 (0)