1 from unittest import TestCase
2 from bluechips.lib import totals
4 class TestReorderingSettle(TestCase):
5 def test_transfer_minimized(self):
7 Test that the number of transfers is actually minimized.
9 Taken from a real-world situation, we discovered that failing
10 to re-order the debt lists after every transfer could lead to
11 extra, unnecessary transfers.
13 self.assertEqual(len(totals.settle({'Alice': 100,
20 def test_settle_even(self):
21 transfers = totals.settle({'Alice': 0,
24 assert transfers == []
26 def test_settle_positive(self):
27 transfers = totals.settle({'Alice': -50,
30 assert transfers == [('Bob', 'Charlie', 50),
33 def test_settle_uneven_positive(self):
35 transfers = totals.settle({'Alice': -50,
38 except totals.DirtyBooks:
41 def test_settle_uneven_negative(self):
43 transfers = totals.settle({'Alice': 50,
46 except totals.DirtyBooks: