[
{
"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"
}
]