[ { "name": "100 litres of pump diesel in 2025 is 257.082 kg", "args": [ "fuel-diesel", "100", "litres", 2025 ], "expect": { "co2eGrams": 257082, "factor": "2.57082", "factorYear": 2025, "activity": "fuel-diesel", "unit": "litres" } }, { "name": "40.5 litres of petrol in 2025: 83,800.98 g rounds to 83,801", "args": [ "fuel-petrol", "40.5", "litres", 2025 ], "expect": { "co2eGrams": 83801, "factor": "2.06916", "factorYear": 2025, "activity": "fuel-petrol", "unit": "litres" } }, { "name": "one litre of diesel in the 2023 set", "args": [ "fuel-diesel", "1", "litres", 2023 ], "expect": { "co2eGrams": 2512, "factor": "2.51206", "factorYear": 2023, "activity": "fuel-diesel", "unit": "litres" } }, { "name": "one litre of diesel in the 2024 set", "args": [ "fuel-diesel", "1", "litres", 2024 ], "expect": { "co2eGrams": 2513, "factor": "2.51279", "factorYear": 2024, "activity": "fuel-diesel", "unit": "litres" } }, { "name": "one litre of diesel in the 2026 set", "args": [ "fuel-diesel", "1", "litres", 2026 ], "expect": { "co2eGrams": 2584, "factor": "2.58354", "factorYear": 2026, "activity": "fuel-diesel", "unit": "litres" } }, { "name": "an exact half gram rounds up: 0.1 litre of 2026 petrol is 207.5 g", "args": [ "fuel-petrol", "0.1", "litres", 2026 ], "expect": { "co2eGrams": 208, "factor": "2.07500", "factorYear": 2026, "activity": "fuel-petrol", "unit": "litres" } }, { "name": "1,000 km in an average petrol car, 2025", "args": [ "car-average-petrol", "1000", "km", 2025 ], "expect": { "co2eGrams": 162720, "factor": "0.16272", "factorYear": 2025, "activity": "car-average-petrol", "unit": "km" } }, { "name": "100 miles uses DESNZ's own per-mile factor", "args": [ "car-average-petrol", "100", "miles", 2025 ], "expect": { "co2eGrams": 26187, "factor": "0.26187", "factorYear": 2025, "activity": "car-average-petrol", "unit": "miles" } }, { "name": "the same trip in km (160.9344) agrees to the gram", "args": [ "car-average-petrol", "160.9344", "km", 2025 ], "expect": { "co2eGrams": 26187, "factor": "0.16272", "factorYear": 2025, "activity": "car-average-petrol", "unit": "km" } }, { "name": "250 km in an average laden HGV in 2026: 224,357.5 g rounds up", "args": [ "hgv-all-hgvs-laden-average", "250", "km", 2026 ], "expect": { "co2eGrams": 224358, "factor": "0.89743", "factorYear": 2026, "activity": "hgv-all-hgvs-laden-average", "unit": "km" } }, { "name": "zero distance is zero", "args": [ "car-average-petrol", "0", "km", 2025 ], "expect": { "co2eGrams": 0, "factor": "0.16272", "factorYear": 2025, "activity": "car-average-petrol", "unit": "km" } }, { "name": "a nine-decimal quantity is accepted and rounds to nothing", "args": [ "fuel-diesel", "0.000000001", "litres", 2025 ], "expect": { "co2eGrams": 0, "factor": "2.57082", "factorYear": 2025, "activity": "fuel-diesel", "unit": "litres" } }, { "name": "a fuel has no per-km factor", "args": [ "fuel-diesel", "10", "km", 2025 ], "expectError": "no conversion factor for fuel-diesel per km in 2025" }, { "name": "a vehicle class has no per-litre factor", "args": [ "car-average-petrol", "10", "litres", 2025 ], "expectError": "no conversion factor for car-average-petrol per litres in 2025" }, { "name": "battery electric cars are not carried: their emissions are electricity, not scope 1", "args": [ "car-average-bev", "10", "km", 2025 ], "expectError": "unknown activity \"car-average-bev\" in the 2025 factors" }, { "name": "van PHEV factors start in 2024", "args": [ "van-average-phev", "10", "km", 2023 ], "expectError": "unknown activity \"van-average-phev\" in the 2023 factors" }, { "name": "2022 factors are not carried", "args": [ "fuel-diesel", "10", "litres", 2022 ], "expectError": "no conversion factors for 2022" }, { "name": "a negative quantity is refused", "args": [ "fuel-diesel", "-5", "litres", 2025 ], "expectError": "quantity must be plain decimal text, not negative" }, { "name": "exponent notation is refused", "args": [ "fuel-diesel", "1e3", "litres", 2025 ], "expectError": "quantity must be plain decimal text, not negative" }, { "name": "a number instead of text is refused", "args": [ "fuel-diesel", 12, "litres", 2025 ], "expectError": "quantity must be plain decimal text, not negative" }, { "name": "ten decimal places are too many", "args": [ "fuel-diesel", "0.0000000001", "litres", 2025 ], "expectError": "at most 15 significant digits and 9 decimal places" }, { "name": "an unknown unit is refused", "args": [ "fuel-diesel", "10", "gallons", 2025 ], "expectError": "unknown unit \"gallons\"" }, { "name": "a result beyond 2^53 - 1 grams is refused", "args": [ "fuel-diesel", "123456789012345", "litres", 2025 ], "expectError": "the result exceeds 2^53 - 1 grams" } ]