Example #1
0
    def test_transfer_minimized(self):
        """
        Test that the number of transfers is actually minimized.

        Taken from a real-world situation, we discovered that failing
        to re-order the debt lists after every transfer could lead to
        extra, unnecessary transfers.
        """
        self.assertEqual(len(totals.settle({"Alice": 100, "Bob": -85, "Charlie": 35, "Dave": -35, "Eve": -15})), 3)
Example #2
0
 def test_settle_uneven_positive(self):
     try:
         transfers = totals.settle({
             'Alice': -50,
             'Bob': -50,
             'Charlie': -50
         })
     except totals.DirtyBooks:
         pass
Example #3
0
    def test_transfer_minimized(self):
        """
        Test that the number of transfers is actually minimized.

        Taken from a real-world situation, we discovered that failing
        to re-order the debt lists after every transfer could lead to
        extra, unnecessary transfers.
        """
        self.assertEqual(
            len(
                totals.settle({
                    'Alice': 100,
                    'Bob': -85,
                    'Charlie': 35,
                    'Dave': -35,
                    'Eve': -15
                })), 3)
Example #4
0
 def test_settle_uneven_negative(self):
     try:
         transfers = totals.settle({"Alice": 50, "Bob": 50, "Charlie": 50})
     except totals.DirtyBooks:
         pass
Example #5
0
 def test_settle_positive(self):
     transfers = totals.settle({"Alice": -50, "Bob": 100, "Charlie": -50})
     assert transfers == [("Bob", "Charlie", 50), ("Bob", "Alice", 50)]
Example #6
0
 def test_settle_even(self):
     transfers = totals.settle({"Alice": 0, "Bob": 0, "Charlie": 0})
     assert transfers == []
Example #7
0
 def test_settle_positive(self):
     transfers = totals.settle({'Alice': -50, 'Bob': 100, 'Charlie': -50})
     assert transfers == [('Bob', 'Charlie', 50), ('Bob', 'Alice', 50)]
Example #8
0
 def test_settle_even(self):
     transfers = totals.settle({'Alice': 0, 'Bob': 0, 'Charlie': 0})
     assert transfers == []