[
{"name": "per-kilogram break: 20 kg at 4.50/kg plus 18.5% fuel", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 20000, "2026-05-10"], "expect": {"zone": "DE", "ratedGrams": 20000, "breakFromGrams": 1, "freight": {"minor": 9000, "currency": "GBP"}, "fuelSurchargeBasisPoints": 1850, "fuelSurcharge": {"minor": 1665, "currency": "GBP"}, "total": {"minor": 10665, "currency": "GBP"}}},
{"name": "the fuel surcharge changes on 1 July and rounds 1912.5 up", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 20000, "2026-07-01"], "expect": {"zone": "DE", "ratedGrams": 20000, "breakFromGrams": 1, "freight": {"minor": 9000, "currency": "GBP"}, "fuelSurchargeBasisPoints": 2125, "fuelSurcharge": {"minor": 1913, "currency": "GBP"}, "total": {"minor": 10913, "currency": "GBP"}}},
{"name": "the last day of the old surcharge", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 20000, "2026-06-30"], "expect": {"zone": "DE", "ratedGrams": 20000, "breakFromGrams": 1, "freight": {"minor": 9000, "currency": "GBP"}, "fuelSurchargeBasisPoints": 1850, "fuelSurcharge": {"minor": 1665, "currency": "GBP"}, "total": {"minor": 10665, "currency": "GBP"}}},
{"name": "40 kg is cheaper charged as 45 kg at the next break (pricing only the 40 kg break gives 180.00)", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 40000, "2026-05-10"], "expect": {"zone": "DE", "ratedGrams": 45000, "breakFromGrams": 45000, "freight": {"minor": 17100, "currency": "GBP"}, "fuelSurchargeBasisPoints": 1850, "fuelSurcharge": {"minor": 3164, "currency": "GBP"}, "total": {"minor": 20264, "currency": "GBP"}}},
{"name": "90 kg is cheaper charged as 100 kg", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 90000, "2026-05-10"], "expect": {"zone": "DE", "ratedGrams": 100000, "breakFromGrams": 100000, "freight": {"minor": 32000, "currency": "GBP"}, "fuelSurchargeBasisPoints": 1850, "fuelSurcharge": {"minor": 5920, "currency": "GBP"}, "total": {"minor": 37920, "currency": "GBP"}}},
{"name": "a light consignment pays the break's minimum charge", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 5000, "2026-05-10"], "expect": {"zone": "DE", "ratedGrams": 5000, "breakFromGrams": 1, "freight": {"minor": 5000, "currency": "GBP"}, "fuelSurchargeBasisPoints": 1850, "fuelSurcharge": {"minor": 925, "currency": "GBP"}, "total": {"minor": 5925, "currency": "GBP"}}},
{"name": "the weight is rounded up to the break's 500 g step", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 12345, "2026-05-10"], "expect": {"zone": "DE", "ratedGrams": 12500, "breakFromGrams": 1, "freight": {"minor": 5625, "currency": "GBP"}, "fuelSurchargeBasisPoints": 1850, "fuelSurcharge": {"minor": 1041, "currency": "GBP"}, "total": {"minor": 6666, "currency": "GBP"}}},
{"name": "exactly on a break boundary uses that break", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 45000, "2026-05-10"], "expect": {"zone": "DE", "ratedGrams": 45000, "breakFromGrams": 45000, "freight": {"minor": 17100, "currency": "GBP"}, "fuelSurchargeBasisPoints": 1850, "fuelSurcharge": {"minor": 3164, "currency": "GBP"}, "total": {"minor": 20264, "currency": "GBP"}}},
{"name": "last year's tariff and surcharge for a 2025 shipment", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 20000, "2025-11-01"], "expect": {"zone": "DE", "ratedGrams": 20000, "breakFromGrams": 1, "freight": {"minor": 8000, "currency": "GBP"}, "fuelSurchargeBasisPoints": 1700, "fuelSurcharge": {"minor": 1360, "currency": "GBP"}, "total": {"minor": 9360, "currency": "GBP"}}},
{"name": "flat-priced band: a heavier band is dearer, so the band stands", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "FR", 1900, "2026-05-10"], "expect": {"zone": "FR", "ratedGrams": 1900, "breakFromGrams": 1, "freight": {"minor": 895, "currency": "GBP"}, "fuelSurchargeBasisPoints": 1850, "fuelSurcharge": {"minor": 166, "currency": "GBP"}, "total": {"minor": 1061, "currency": "GBP"}}},
{"name": "base plus per kilogram on a 1 kg step", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "FR", 15200, "2026-05-10"], "expect": {"zone": "FR", "ratedGrams": 16000, "breakFromGrams": 10001, "freight": {"minor": 2655, "currency": "GBP"}, "fuelSurchargeBasisPoints": 1850, "fuelSurcharge": {"minor": 491, "currency": "GBP"}, "total": {"minor": 3146, "currency": "GBP"}}},
{"name": "the per-kilogram charge 499.5 rounds half up", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "IT", 1500, "2026-05-10"], "expect": {"zone": "IT", "ratedGrams": 1500, "breakFromGrams": 1, "freight": {"minor": 500, "currency": "GBP"}, "fuelSurchargeBasisPoints": 1850, "fuelSurcharge": {"minor": 93, "currency": "GBP"}, "total": {"minor": 593, "currency": "GBP"}}},
{"name": "an empty surcharge table means no surcharge", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [], "DE", 20000, "2026-05-10"], "expect": {"zone": "DE", "ratedGrams": 20000, "breakFromGrams": 1, "freight": {"minor": 9000, "currency": "GBP"}, "fuelSurchargeBasisPoints": 0, "fuelSurcharge": {"minor": 0, "currency": "GBP"}, "total": {"minor": 9000, "currency": "GBP"}}},
{"name": "the latest-starting surcharge row in force wins", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}, {"basisPoints": 2000, "validFrom": "2026-05-04", "validTo": "2026-05-10"}], "DE", 20000, "2026-05-10"], "expect": {"zone": "DE", "ratedGrams": 20000, "breakFromGrams": 1, "freight": {"minor": 9000, "currency": "GBP"}, "fuelSurchargeBasisPoints": 2000, "fuelSurcharge": {"minor": 1800, "currency": "GBP"}, "total": {"minor": 10800, "currency": "GBP"}}},
{"name": "no break for the zone", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "ES", 20000, "2026-05-10"], "expectError": "no freight rate for zone \"ES\" on 2026-05-10 covers 20000 g"},
{"name": "a weight above the zone's last break", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "FR", 30001, "2026-05-10"], "expectError": "no freight rate for zone \"FR\" on 2026-05-10 covers 30001 g"},
{"name": "no break in force before the tariff starts", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 20000, "2024-12-31"], "expectError": "no freight rate for zone \"DE\" on 2024-12-31 covers 20000 g"},
{"name": "a surcharge table that does not reach the date", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "IT", 1500, "2024-06-01"], "expectError": "no fuel surcharge in force on 2024-06-01"},
{"name": "two breaks covering the same weight", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 5000, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 100, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 5000, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 90, "minimum": null, "validFrom": "2026-01-01", "validTo": null}], [], "DE", 5000, "2026-05-10"], "expectError": "two freight rates for zone \"DE\" on 2026-05-10 cover 5000 g"},
{"name": "zero weight", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 0, "2026-05-10"], "expectError": "chargeableGrams must be 1 or more"},
{"name": "a step below 1 g", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 0, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 100, "minimum": null, "validFrom": "2026-01-01", "validTo": null}], [], "DE", 5000, "2026-05-10"], "expectError": "stepGrams must be 1 or more"},
{"name": "a negative per-kilogram rate", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": -100, "minimum": null, "validFrom": "2026-01-01", "validTo": null}], [], "DE", 5000, "2026-05-10"], "expectError": "perKgMinor must not be negative"},
{"name": "breaks in two currencies", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 100, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 10001, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "EUR"}, "perKgMinor": 90, "minimum": null, "validFrom": "2026-01-01", "validTo": null}], [], "DE", 5000, "2026-05-10"], "expectError": "currency mismatch"},
{"name": "a malformed ship date", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 20000, "10/05/2026"], "expectError": "shipDate must be an ISO date"},
{"name": "a ship date with a trailing newline", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 20000, "2026-05-10\n"], "expectError": "shipDate must be an ISO date"},
{"name": "a ship date in Arabic-Indic digits", "args": [[{"zone": "DE", "fromGrams": 1, "toGrams": 44999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 450, "minimum": {"minor": 5000, "currency": "GBP"}, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 45000, "toGrams": 99999, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 380, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 100000, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 320, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "DE", "fromGrams": 1, "toGrams": null, "stepGrams": 500, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 400, "minimum": null, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"zone": "FR", "fromGrams": 1, "toGrams": 2000, "stepGrams": 1, "base": {"minor": 895, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 2001, "toGrams": 10000, "stepGrams": 1, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 0, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "FR", "fromGrams": 10001, "toGrams": 30000, "stepGrams": 1000, "base": {"minor": 1295, "currency": "GBP"}, "perKgMinor": 85, "minimum": null, "validFrom": "2026-01-01", "validTo": null}, {"zone": "IT", "fromGrams": 1, "toGrams": null, "stepGrams": 1, "base": {"minor": 0, "currency": "GBP"}, "perKgMinor": 333, "minimum": null, "validFrom": "2024-01-01", "validTo": null}], [{"basisPoints": 1700, "validFrom": "2025-01-01", "validTo": "2025-12-31"}, {"basisPoints": 1850, "validFrom": "2026-01-01", "validTo": "2026-06-30"}, {"basisPoints": 2125, "validFrom": "2026-07-01", "validTo": null}], "DE", 20000, "٢٠٢٦-05-10"], "expectError": "shipDate must be an ISO date"}
]