Skip to content

Commit dcc412e

Browse files
committed
Gini tests
1 parent 59c5345 commit dcc412e

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

pabutools/utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ def gini_coefficient(values: Iterable[Numeric]) -> Numeric:
9898
return 0
9999
sorted_values: list[Numeric] = sorted(values)
100100
total_cum_sum: Numeric = 0
101+
# Slightly different from Wikipedia because we start at 0
101102
for i, v in enumerate(sorted_values):
102103
total_cum_sum += v * (num_values - i)
103104
return frac(num_values + 1 - frac(2 * total_cum_sum, sum(values)), num_values)

tests/test_analysis.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ class TestAnalysis(TestCase):
3232

3333
def test_gini(self):
3434
self.assertEqual(gini_coefficient([100 for _ in range(100)]), 0)
35-
self.assertEqual(gini_coefficient([0, 0, 0, 0, 0, 0, 0, 0, 0, 1]), 1)
35+
self.assertEqual(gini_coefficient([0, 0, 0, 100, 100, 100]), frac(1, 2))
36+
self.assertEqual(gini_coefficient([1] * 75 + [9] * 25), frac(1, 2))
3637

3738
def test_satisfaction_properties(self):
3839
projects = [Project(str(i), 10 + i) for i in range(10)]

0 commit comments

Comments
 (0)