[ { "name": "England band A: six ninths of £2,000 is £1,333.33", "args": [ { "minor": 200000, "currency": "GBP" }, "A", "england", "2026-04-01" ], "expect": { "band": "A", "ratioNumerator": 6, "ratioDenominator": 9, "charge": { "minor": 133333, "currency": "GBP" } } }, { "name": "England band B: £1,555.56 (1555.555... rounds up)", "args": [ { "minor": 200000, "currency": "GBP" }, "B", "england", "2026-04-01" ], "expect": { "band": "B", "ratioNumerator": 7, "ratioDenominator": 9, "charge": { "minor": 155556, "currency": "GBP" } } }, { "name": "England band D is the Band D charge itself", "args": [ { "minor": 200000, "currency": "GBP" }, "D", "england", "2026-04-01" ], "expect": { "band": "D", "ratioNumerator": 9, "ratioDenominator": 9, "charge": { "minor": 200000, "currency": "GBP" } } }, { "name": "England band E: eleven ninths, £2,444.44", "args": [ { "minor": 200000, "currency": "GBP" }, "E", "england", "2026-04-01" ], "expect": { "band": "E", "ratioNumerator": 11, "ratioDenominator": 9, "charge": { "minor": 244444, "currency": "GBP" } } }, { "name": "England band H: twice Band D", "args": [ { "minor": 200000, "currency": "GBP" }, "H", "england", "2026-04-01" ], "expect": { "band": "H", "ratioNumerator": 18, "ratioDenominator": 9, "charge": { "minor": 400000, "currency": "GBP" } } }, { "name": "Wales band I: 21 ninths, £4,666.67", "args": [ { "minor": 200000, "currency": "GBP" }, "I", "wales", "2026-04-01" ], "expect": { "band": "I", "ratioNumerator": 21, "ratioDenominator": 9, "charge": { "minor": 466667, "currency": "GBP" } } }, { "name": "Wales had no band I before the 2005 revaluation", "args": [ { "minor": 200000, "currency": "GBP" }, "I", "wales", "2005-03-31" ], "expectError": "no council tax band I for wales on 2005-03-31" }, { "name": "Wales band I on 1 April 2005", "args": [ { "minor": 90000, "currency": "GBP" }, "I", "wales", "2005-04-01" ], "expect": { "band": "I", "ratioNumerator": 21, "ratioDenominator": 9, "charge": { "minor": 210000, "currency": "GBP" } } }, { "name": "England has no band I", "args": [ { "minor": 200000, "currency": "GBP" }, "I", "england", "2026-04-01" ], "expectError": "no council tax band I for england" }, { "name": "Scotland band E from April 2017: 473/360, £2,627.78", "args": [ { "minor": 200000, "currency": "GBP" }, "E", "scotland", "2026-04-01" ], "expect": { "band": "E", "ratioNumerator": 473, "ratioDenominator": 360, "charge": { "minor": 262778, "currency": "GBP" } } }, { "name": "Scotland band H from April 2017: 882/360 of £2,000 is £4,900", "args": [ { "minor": 200000, "currency": "GBP" }, "H", "scotland", "2017-04-01" ], "expect": { "band": "H", "ratioNumerator": 882, "ratioDenominator": 360, "charge": { "minor": 490000, "currency": "GBP" } } }, { "name": "Scotland band H the day before: 720/360, twice Band D", "args": [ { "minor": 200000, "currency": "GBP" }, "H", "scotland", "2017-03-31" ], "expect": { "band": "H", "ratioNumerator": 720, "ratioDenominator": 360, "charge": { "minor": 400000, "currency": "GBP" } } }, { "name": "Scotland band A unchanged by 2017: 240/360", "args": [ { "minor": 150000, "currency": "GBP" }, "A", "scotland", "2026-04-01" ], "expect": { "band": "A", "ratioNumerator": 240, "ratioDenominator": 360, "charge": { "minor": 100000, "currency": "GBP" } } }, { "name": "an exact half penny rounds up: Scottish band E of £1.80 is 236.5p, so £2.37", "args": [ { "minor": 180, "currency": "GBP" }, "E", "scotland", "2026-04-01" ], "expect": { "band": "E", "ratioNumerator": 473, "ratioDenominator": 360, "charge": { "minor": 237, "currency": "GBP" } } }, { "name": "band A of £1,789.47 is exactly £1,192.98, where 0.667 × Band D would give £1,193.58", "args": [ { "minor": 178947, "currency": "GBP" }, "A", "england", "2026-04-01" ], "expect": { "band": "A", "ratioNumerator": 6, "ratioDenominator": 9, "charge": { "minor": 119298, "currency": "GBP" } } }, { "name": "zero Band D", "args": [ { "minor": 0, "currency": "GBP" }, "C", "england", "2026-04-01" ], "expect": { "band": "C", "ratioNumerator": 8, "ratioDenominator": 9, "charge": { "minor": 0, "currency": "GBP" } } }, { "name": "a lower-case band is not a band", "args": [ { "minor": 200000, "currency": "GBP" }, "a", "england", "2026-04-01" ], "expectError": "no council tax band a for england" }, { "name": "Northern Ireland is not a council tax nation", "args": [ { "minor": 200000, "currency": "GBP" }, "A", "northern-ireland", "2026-04-01" ], "expectError": "unknown nation" }, { "name": "before council tax existed", "args": [ { "minor": 200000, "currency": "GBP" }, "A", "england", "1993-03-31" ], "expectError": "no council tax band A for england on 1993-03-31" }, { "name": "a Band D in euros is refused", "args": [ { "minor": 200000, "currency": "EUR" }, "A", "england", "2026-04-01" ], "expectError": "bandDCharge must be in GBP" }, { "name": "a negative Band D is refused", "args": [ { "minor": -1, "currency": "GBP" }, "A", "england", "2026-04-01" ], "expectError": "bandDCharge must be between 0 and" }, { "name": "a malformed date is refused", "args": [ { "minor": 200000, "currency": "GBP" }, "A", "england", "2026-4-1" ], "expectError": "onDate must be an ISO date" }, { "name": "a trailing newline is not part of an ISO date", "args": [ { "minor": 200000, "currency": "GBP" }, "A", "england", "2026-04-01\n" ], "expectError": "onDate must be an ISO date" }, { "name": "Arabic-Indic digits are not an ISO date", "args": [ { "minor": 200000, "currency": "GBP" }, "A", "england", "٢٠٢٦-٠٤-٠١" ], "expectError": "onDate must be an ISO date" } ]