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