[ { "name": "less is -1", "args": [ { "minor": 100, "currency": "GBP" }, { "minor": 200, "currency": "GBP" } ], "expect": -1 }, { "name": "greater is 1", "args": [ { "minor": 200, "currency": "GBP" }, { "minor": 100, "currency": "GBP" } ], "expect": 1 }, { "name": "equal is 0", "args": [ { "minor": 1999, "currency": "GBP" }, { "minor": 1999, "currency": "GBP" } ], "expect": 0 }, { "name": "the answer is 1, not the difference of 1998", "args": [ { "minor": 1999, "currency": "GBP" }, { "minor": 1, "currency": "GBP" } ], "expect": 1 }, { "name": "a larger debt is less", "args": [ { "minor": -500, "currency": "GBP" }, { "minor": -100, "currency": "GBP" } ], "expect": -1 }, { "name": "zero is more than a credit", "args": [ { "minor": 0, "currency": "GBP" }, { "minor": -1, "currency": "GBP" } ], "expect": 1 }, { "name": "one minor unit apart", "args": [ { "minor": 10000, "currency": "GBP" }, { "minor": 10001, "currency": "GBP" } ], "expect": -1 }, { "name": "yen compares in whole yen", "args": [ { "minor": 1500, "currency": "JPY" }, { "minor": 1499, "currency": "JPY" } ], "expect": 1 }, { "name": "the largest safe amounts still compare exactly", "args": [ { "minor": 9007199254740991, "currency": "GBP" }, { "minor": 9007199254740990, "currency": "GBP" } ], "expect": 1 }, { "name": "opposite extremes", "args": [ { "minor": -9007199254740991, "currency": "GBP" }, { "minor": 9007199254740991, "currency": "GBP" } ], "expect": -1 }, { "name": "comparing across currencies is an error, not an answer", "args": [ { "minor": 1000, "currency": "GBP" }, { "minor": 1000, "currency": "EUR" } ], "expectError": "currency mismatch" } ]