[
{
"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"
}
]