[
{ "name": "12.5 percent is 1250 basis points", "args": ["12.5", "percent", "basis-points"], "expect": "1250" },
{ "name": "1250 basis points is 12.5 percent", "args": ["1250", "basis-points", "percent"], "expect": "12.5" },
{ "name": "a ratio of 0.125 is 12.5 percent", "args": ["0.125", "ratio", "percent"], "expect": "12.5" },
{ "name": "20 percent is a ratio of 0.2", "args": ["20", "percent", "ratio"], "expect": "0.2" },
{ "name": "one basis point is a ratio of 0.0001", "args": ["1", "basis-points", "ratio"], "expect": "0.0001" },
{ "name": "half a basis point as a ratio needs leading zeros", "args": ["0.5", "basis-points", "ratio"], "expect": "0.00005" },
{ "name": "0.07 as a ratio is exactly 7 percent, not 7.000000000000001", "args": ["0.07", "ratio", "percent"], "expect": "7" },
{ "name": "a negative rate keeps its sign", "args": ["-2.75", "percent", "basis-points"], "expect": "-275" },
{ "name": "same unit gives the canonical form", "args": ["007.500", "percent", "percent"], "expect": "7.5" },
{ "name": "zero with trailing zeros is plain zero", "args": ["0.00", "ratio", "basis-points"], "expect": "0" },
{ "name": "negative zero is zero", "args": ["-0.0", "percent", "ratio"], "expect": "0" },
{ "name": "a ratio of one is 10000 basis points", "args": ["1", "ratio", "basis-points"], "expect": "10000" },
{ "name": "numbers beyond any float or integer convert exactly", "args": ["123456789012345678901.23", "percent", "basis-points"], "expect": "12345678901234567890123" },
{ "name": "a percent sign is not part of the number", "args": ["12.5%", "percent", "basis-points"], "expectError": "is not a decimal number" },
{ "name": "exponent notation is refused", "args": ["1e3", "basis-points", "percent"], "expectError": "is not a decimal number" },
{ "name": "a bare leading point is refused", "args": [".5", "percent", "ratio"], "expectError": "is not a decimal number" },
{ "name": "a decimal comma is refused", "args": ["1,5", "percent", "ratio"], "expectError": "is not a decimal number" },
{ "name": "an empty string is refused", "args": ["", "percent", "ratio"], "expectError": "is not a decimal number" },
{ "name": "an unknown unit is an error", "args": ["5", "permille", "percent"], "expectError": "unknown rate unit" }
]