import random from splitbill import solve, perform_transfers import pytest @pytest.mark.parametrize("tolerance", [0, 1, 2, 10, 100]) def test_random(tolerance): balances = {str(k): random.randint(-200, 200) for k in range(7)} balances["7"] = -sum(balances.values()) balances = {k: v for k, v in balances.items() if v != 0} transactions = solve(balances, tolerance) assert abs(sum(perform_transfers(balances, transactions).values())) <= tolerance def test_bug1(): tolerance = 100 balances = {'0': -39, '1': 139, '2': -54, '3': 99, '4': 13, '5': 175, '6': -173, '7': -160} transactions = solve(balances, tolerance=tolerance) assert abs(sum(perform_transfers(balances, transactions).values())) <= tolerance