[
{ "name": "DuBois & DuBois's own worked example: 150 cm, 60 kg is 1.55 m² (Mosteller 1.58)", "args": [60, 150], "expect": { "mosteller": 1.58, "duBois": 1.55 } },
{ "name": "180 cm, 80 kg: Mosteller is exactly √4 = 2.00; DuBois 1.9964 rounds to 2.00", "args": [80, 180], "expect": { "mosteller": 2.0, "duBois": 2.0 } },
{ "name": "170 cm, 70 kg: the formulas disagree in the second place", "args": [70, 170], "expect": { "mosteller": 1.82, "duBois": 1.81 } },
{ "name": "175 cm, 70 kg: here DuBois is the larger", "args": [70, 175], "expect": { "mosteller": 1.84, "duBois": 1.85 } },
{ "name": "152 cm, 45 kg", "args": [45, 152], "expect": { "mosteller": 1.38, "duBois": 1.38 } },
{ "name": "190 cm, 100 kg", "args": [100, 190], "expect": { "mosteller": 2.3, "duBois": 2.28 } },
{ "name": "165 cm, 150 kg: in obesity DuBois is 0.17 m² lower", "args": [150, 165], "expect": { "mosteller": 2.62, "duBois": 2.45 } },
{ "name": "a child: 110 cm, 20 kg; DuBois 0.77502 is just above the 0.775 tie", "args": [20, 110], "expect": { "mosteller": 0.78, "duBois": 0.78 } },
{ "name": "a newborn: 50 cm, 3.5 kg", "args": [3.5, 50], "expect": { "mosteller": 0.22, "duBois": 0.21 } },
{ "name": "the lowest accepted weight and height", "args": [1, 30], "expect": { "mosteller": 0.09, "duBois": 0.08 } },
{ "name": "the highest accepted weight and height", "args": [650, 272], "expect": { "mosteller": 7.01, "duBois": 6.56 } },
{ "name": "height in metres is refused", "args": [70, 1.75], "expectError": "heightCm must be a number from 30 to 272 cm" },
{ "name": "zero weight is refused", "args": [0, 170], "expectError": "weightKg must be a number from 1 to 650 kg" },
{ "name": "negative height is refused", "args": [70, -170], "expectError": "heightCm must be a number from 30 to 272 cm" },
{ "name": "a weight in grams is refused", "args": [70000, 170], "expectError": "weightKg must be a number from 1 to 650 kg" },
{ "name": "a missing weight is refused", "args": [null, 170], "expectError": "weightKg must be a number from 1 to 650 kg" }
]