Functional Weave
Code in Rust

fleet.company-car-bik@1.0.0

vectors.json

15,241 bytes · view raw

[
  {"name": "petrol car at 120 g/km in 2025-26 is 30% of 30,000.00", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 120, 0, false, "2023-03-01", "2025-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2025/26", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 3000000, "currency": "GBP"}, "appropriateBasisPoints": 3000, "carBenefit": {"minor": 900000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 900000, "currency": "GBP"}}},
  {"name": "free fuel adds 30% of the 28,200 multiplier", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 120, 0, false, "2023-03-01", "2025-09-01", 0, {"minor": 0, "currency": "GBP"}, true], "expect": {"taxYear": "2025/26", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 3000000, "currency": "GBP"}, "appropriateBasisPoints": 3000, "carBenefit": {"minor": 900000, "currency": "GBP"}, "fuelBenefit": {"minor": 846000, "currency": "GBP"}, "total": {"minor": 1746000, "currency": "GBP"}}},
  {"name": "electric car at 3% in 2025-26, and electricity is not fuel so no fuel benefit", "args": [{"minor": 4000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 0, 250, false, "2024-01-10", "2025-09-01", 0, {"minor": 0, "currency": "GBP"}, true], "expect": {"taxYear": "2025/26", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 4000000, "currency": "GBP"}, "appropriateBasisPoints": 300, "carBenefit": {"minor": 120000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 120000, "currency": "GBP"}}},
  {"name": "plug-in hybrid at 30 g/km with a 45 mile range is 10% in 2026-27", "args": [{"minor": 4500000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 30, 45, false, "2025-06-01", "2026-06-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2026/27", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 4500000, "currency": "GBP"}, "appropriateBasisPoints": 1000, "carBenefit": {"minor": 450000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 450000, "currency": "GBP"}}},
  {"name": "the same hybrid is 18% in 2028-29, when range stops mattering", "args": [{"minor": 4500000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 30, 45, false, "2025-06-01", "2028-05-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2028/29", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 4500000, "currency": "GBP"}, "appropriateBasisPoints": 1800, "carBenefit": {"minor": 810000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 810000, "currency": "GBP"}}},
  {"name": "2021-22, car first registered before 6 April 2020 uses the NEDC column: 100 g/km is 25%", "args": [{"minor": 2500000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 100, 0, false, "2019-05-01", "2021-10-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2021/22", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 2500000, "currency": "GBP"}, "appropriateBasisPoints": 2500, "carBenefit": {"minor": 625000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 625000, "currency": "GBP"}}},
  {"name": "2021-22, first registered on 6 April 2020 uses the WLTP column: 24%", "args": [{"minor": 2500000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 100, 0, false, "2020-04-06", "2021-10-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2021/22", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 2500000, "currency": "GBP"}, "appropriateBasisPoints": 2400, "carBenefit": {"minor": 600000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 600000, "currency": "GBP"}}},
  {"name": "2021-22, first registered on 5 April 2020 is still NEDC", "args": [{"minor": 2500000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 100, 0, false, "2020-04-05", "2021-10-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2021/22", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 2500000, "currency": "GBP"}, "appropriateBasisPoints": 2500, "carBenefit": {"minor": 625000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 625000, "currency": "GBP"}}},
  {"name": "2023-24 has 366 days: a diesel unavailable 61 days pays for 305/366 of 35%", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 130, 0, true, "2019-01-01", "2023-11-15", 61, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2023/24", "daysInYear": 366, "daysAvailable": 305, "price": {"minor": 3000000, "currency": "GBP"}, "appropriateBasisPoints": 3500, "carBenefit": {"minor": 875000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 875000, "currency": "GBP"}}},
  {"name": "the diesel supplement stops at the 37% maximum", "args": [{"minor": 2000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 158, 0, true, "2017-01-01", "2024-12-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2024/25", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 2000000, "currency": "GBP"}, "appropriateBasisPoints": 3700, "carBenefit": {"minor": 740000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 740000, "currency": "GBP"}}},
  {"name": "capital contributions count only up to 5,000.00; private use payments come off after", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 800000, "currency": "GBP"}, 0, 300, false, "2024-01-01", "2025-09-01", 0, {"minor": 20000, "currency": "GBP"}, false], "expect": {"taxYear": "2025/26", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 2500000, "currency": "GBP"}, "appropriateBasisPoints": 300, "carBenefit": {"minor": 55000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 55000, "currency": "GBP"}}},
  {"name": "private use payments above the benefit leave it at nil, not negative", "args": [{"minor": 2000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 0, 300, false, "2024-01-01", "2025-09-01", 0, {"minor": 100000, "currency": "GBP"}, false], "expect": {"taxYear": "2025/26", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 2000000, "currency": "GBP"}, "appropriateBasisPoints": 300, "carBenefit": {"minor": 0, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 0, "currency": "GBP"}}},
  {"name": "unavailability rounds the car benefit down to the penny; the fuel benefit is 265/365 of 34% of 29,200", "args": [{"minor": 3333333, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 142, 0, false, "2022-01-01", "2026-08-01", 100, {"minor": 0, "currency": "GBP"}, true], "expect": {"taxYear": "2026/27", "daysInYear": 365, "daysAvailable": 265, "price": {"minor": 3333333, "currency": "GBP"}, "appropriateBasisPoints": 3400, "carBenefit": {"minor": 822830, "currency": "GBP"}, "fuelBenefit": {"minor": 720800, "currency": "GBP"}, "total": {"minor": 1543630, "currency": "GBP"}}},
  {"name": "2026-27: 77 g/km is still 21%, the same as 70-74 g/km", "args": [{"minor": 1000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 77, 0, false, "2022-01-01", "2026-08-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2026/27", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 1000000, "currency": "GBP"}, "appropriateBasisPoints": 2100, "carBenefit": {"minor": 210000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 210000, "currency": "GBP"}}},
  {"name": "2026-27: 74 g/km is 21%", "args": [{"minor": 1000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 74, 0, false, "2022-01-01", "2026-08-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2026/27", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 1000000, "currency": "GBP"}, "appropriateBasisPoints": 2100, "carBenefit": {"minor": 210000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 210000, "currency": "GBP"}}},
  {"name": "2025-26: 50 g/km with a 130 mile range is 3%", "args": [{"minor": 1000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 50, 130, false, "2024-01-01", "2025-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2025/26", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 1000000, "currency": "GBP"}, "appropriateBasisPoints": 300, "carBenefit": {"minor": 30000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 30000, "currency": "GBP"}}},
  {"name": "2025-26: 50 g/km with a 129 mile range is 6%", "args": [{"minor": 1000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 50, 129, false, "2024-01-01", "2025-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2025/26", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 1000000, "currency": "GBP"}, "appropriateBasisPoints": 600, "carBenefit": {"minor": 60000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 60000, "currency": "GBP"}}},
  {"name": "2025-26: 51 g/km is 16% whatever the range", "args": [{"minor": 1000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 51, 130, false, "2024-01-01", "2025-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2025/26", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 1000000, "currency": "GBP"}, "appropriateBasisPoints": 1600, "carBenefit": {"minor": 160000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 160000, "currency": "GBP"}}},
  {"name": "2029-30 maximum is 39%", "args": [{"minor": 1000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 250, 0, false, "2027-01-01", "2029-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2029/30", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 1000000, "currency": "GBP"}, "appropriateBasisPoints": 3900, "carBenefit": {"minor": 390000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 390000, "currency": "GBP"}}},
  {"name": "2029-30 zero emission is 9%", "args": [{"minor": 5000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 0, 300, false, "2027-01-01", "2029-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2029/30", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 5000000, "currency": "GBP"}, "appropriateBasisPoints": 900, "carBenefit": {"minor": 450000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 450000, "currency": "GBP"}}},
  {"name": "5 April 2026 is still 2025-26: 3% for a zero-emission car", "args": [{"minor": 1000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 0, 0, false, "2024-01-01", "2026-04-05", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2025/26", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 1000000, "currency": "GBP"}, "appropriateBasisPoints": 300, "carBenefit": {"minor": 30000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 30000, "currency": "GBP"}}},
  {"name": "6 April 2026 starts 2026-27: 4%", "args": [{"minor": 1000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 0, 0, false, "2024-01-01", "2026-04-06", 0, {"minor": 0, "currency": "GBP"}, false], "expect": {"taxYear": "2026/27", "daysInYear": 365, "daysAvailable": 365, "price": {"minor": 1000000, "currency": "GBP"}, "appropriateBasisPoints": 400, "carBenefit": {"minor": 40000, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 40000, "currency": "GBP"}}},
  {"name": "a car unavailable all year has no benefit", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 120, 0, false, "2023-03-01", "2025-09-01", 365, {"minor": 0, "currency": "GBP"}, true], "expect": {"taxYear": "2025/26", "daysInYear": 365, "daysAvailable": 0, "price": {"minor": 3000000, "currency": "GBP"}, "appropriateBasisPoints": 3000, "carBenefit": {"minor": 0, "currency": "GBP"}, "fuelBenefit": {"minor": 0, "currency": "GBP"}, "total": {"minor": 0, "currency": "GBP"}}},
  {"name": "no fuel benefit multiplier is published yet for 2027-28", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 120, 0, false, "2023-03-01", "2027-09-01", 0, {"minor": 0, "currency": "GBP"}, true], "expectError": "no car fuel benefit multiplier for tax year 2027/28"},
  {"name": "2020-21 is before the tables this carries", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 120, 0, false, "2019-01-01", "2020-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expectError": "no company car benefit rates for tax year 2020/21"},
  {"name": "only GBP", "args": [{"minor": 3000000, "currency": "USD"}, {"minor": 0, "currency": "GBP"}, 120, 0, false, "2023-03-01", "2025-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expectError": "company car benefit is worked in GBP"},
  {"name": "a negative list price is an error", "args": [{"minor": -1, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 120, 0, false, "2023-03-01", "2025-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expectError": "listPrice must not be negative"},
  {"name": "more unavailable days than the year has", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 120, 0, false, "2023-03-01", "2025-09-01", 366, {"minor": 0, "currency": "GBP"}, false], "expectError": "unavailableDays must be a whole number from 0 to 365"},
  {"name": "a fractional CO2 figure must be rounded down by the caller", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 120.5, 0, false, "2023-03-01", "2025-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expectError": "co2 must be a whole number of g/km"},
  {"name": "a negative electric range", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 120, -1, false, "2023-03-01", "2025-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expectError": "electricRangeMiles must be a whole number of miles"},
  {"name": "a zero-emission car has no diesel supplement", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 0, 0, true, "2023-03-01", "2025-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expectError": "a zero-emission car cannot take the diesel supplement"},
  {"name": "a malformed date", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 120, 0, false, "2023-03-01", "1/9/2025", 0, {"minor": 0, "currency": "GBP"}, false], "expectError": "onDate must be an ISO date (YYYY-MM-DD)"},
  {"name": "a car first registered after the tax year", "args": [{"minor": 3000000, "currency": "GBP"}, {"minor": 0, "currency": "GBP"}, 120, 0, false, "2026-05-01", "2025-09-01", 0, {"minor": 0, "currency": "GBP"}, false], "expectError": "is after the end of tax year 2025/26"}
]