[ { "name": "exact division", "args": [ 100, 4, "half-up" ], "expect": 25 }, { "name": "half rounds away from zero", "args": [ 7, 2, "half-up" ], "expect": 4 }, { "name": "negative half rounds away from zero", "args": [ -7, 2, "half-up" ], "expect": -4 }, { "name": "below half rounds down", "args": [ 7, 3, "half-up" ], "expect": 2 }, { "name": "banker's rounding keeps 2 even", "args": [ 5, 2, "half-even" ], "expect": 2 }, { "name": "banker's rounding keeps 4 even", "args": [ 7, 2, "half-even" ], "expect": 4 }, { "name": "banker's rounding away from an odd quotient", "args": [ 11, 2, "half-even" ], "expect": 6 }, { "name": "down truncates toward zero", "args": [ 199, 100, "down" ], "expect": 1 }, { "name": "down truncates negatives toward zero", "args": [ -199, 100, "down" ], "expect": -1 }, { "name": "up rounds away from zero on any remainder", "args": [ 101, 100, "up" ], "expect": 2 }, { "name": "negative divisor keeps the sign rule", "args": [ 7, -2, "half-up" ], "expect": -4 }, { "name": "zero numerator", "args": [ 0, 7, "half-up" ], "expect": 0 }, { "name": "20 percent of 199 pence", "args": [ 3980, 100, "half-up" ], "expect": 40 }, { "name": "divide by zero is an error", "args": [ 1, 0, "half-up" ], "expectError": "denominator must not be zero" } ]