[
{ "name": "ten pounds three ways keeps the penny", "args": [{ "minor": 1000, "currency": "GBP" }, [1, 1, 1]], "expect": [{ "minor": 334, "currency": "GBP" }, { "minor": 333, "currency": "GBP" }, { "minor": 333, "currency": "GBP" }] },
{ "name": "exact split needs no remainder", "args": [{ "minor": 500, "currency": "GBP" }, [3, 7]], "expect": [{ "minor": 150, "currency": "GBP" }, { "minor": 350, "currency": "GBP" }] },
{ "name": "weighted split distributes by largest remainder", "args": [{ "minor": 10000, "currency": "GBP" }, [1, 1, 1, 1, 1, 1]], "expect": [{ "minor": 1667, "currency": "GBP" }, { "minor": 1667, "currency": "GBP" }, { "minor": 1667, "currency": "GBP" }, { "minor": 1667, "currency": "GBP" }, { "minor": 1666, "currency": "GBP" }, { "minor": 1666, "currency": "GBP" }] },
{ "name": "credit notes split without inventing money", "args": [{ "minor": -1000, "currency": "GBP" }, [1, 1, 1]], "expect": [{ "minor": -333, "currency": "GBP" }, { "minor": -333, "currency": "GBP" }, { "minor": -334, "currency": "GBP" }] },
{ "name": "single share takes everything", "args": [{ "minor": 999, "currency": "GBP" }, [1]], "expect": [{ "minor": 999, "currency": "GBP" }] },
{ "name": "zero ratios are an error", "args": [{ "minor": 100, "currency": "GBP" }, [0, 0]], "expectError": "ratios must not sum to zero" },
{ "name": "empty ratios are an error", "args": [{ "minor": 100, "currency": "GBP" }, []], "expectError": "at least one ratio" }
]