{"abstract":"A stone or metre entry is added at face value instead of being rejected.","category":"Aviation weight and balance","checks":10,"contract":"Input [[quantity, 'kg'|'lb', arm, 'in'|'cm'|'mm']]. Convert to lb (1 kg = 2.20462 lb) and inches (2.54 cm, 25.4 mm per inch); other units -> 'ERR_UNIT'; total weight <= 0 -> 'ERR_WEIGHT'. Return [weight lb r1, reduced moment (lb-in/1000) r2, CG in r2 computed from the unreduced moment].","evaluation_group":"w2-aviation-weight-balance-metric-loadsheet-conversion","failed_approach":"Validating only the weight unit still accepts metres as inches.","family":"w2-aviation-weight-balance-metric-loadsheet-conversion-unknown-unit-default","id":"FA-66111","implementations":{"attempt":{"sha256":"8c9d764dba0519a4abf60a016516de79194c2bcac381cec9cc9464ea57cea3f7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    wf = {'kg': 2.20462, 'lb': 1.0}\n    af = {'in': 1.0, 'cm': 1 / 2.54, 'mm': 1 / 25.4}\n    w = 0.0\n    m = 0.0\n    for q, wu, arm, au in x:\n        if wu not in wf: return 'ERR_UNIT'\n        af.setdefault(au, 1.0)\n        lb = q * wf[wu]\n        w += lb\n        m += lb * arm * af[au]\n    if w <= 0: return 'ERR_WEIGHT'\n    return [round(w, 1), round(m / 1000, 2), round(m / w, 2)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['mixed kg and cm', [[81.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [348.6, 12.97, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3510.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 498.38, 150.71]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [120.0, 'lb', 48.0, 'in']], [2110.0, 83.02, 39.35]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[10.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 251.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 560.51, 97.91]], ['sampled case 1', [[1412.5, 'kg', 3138.2, 'cm'], [645.7, 'lb', 3313.7, 'cm'], [780.8, 'lb', 1136.3, 'cm'], [548.1, 'kg', 3196.1, 'cm'], [708.5, 'kg', 4627.1, 'in']], [7310.9, 13786.98, 1885.82]], ['sampled case 2', [[446.5, 'lb', 1614.2, 'cm'], [1166.3, 'lb', 934.4, 'mm'], [1321.5, 'lb', 2983.7, 'in'], [1133.4, 'lb', 4571.3, 'mm']], [4067.7, 4473.6, 1099.79]], ['sampled case 3', [[880.0, 'kg', 2334.3, 'mm']], [1940.1, 178.3, 91.9]]], [['mixed kg and cm', [[82.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [350.8, 13.05, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3520.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 499.42, 151.02]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [240.0, 'lb', 48.0, 'in']], [2230.0, 88.78, 39.81]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[20.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 252.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 562.68, 98.28]], ['sampled case 1', [[451.1, 'lb', 2563.5, 'mm'], [525.2, 'kg', 1580.7, 'in'], [1447.9, 'kg', 4822.5, 'cm'], [324.3, 'kg', 4534.3, 'in']], [5516.0, 11178.14, 2026.5]], ['sampled case 2', [[741.8, 'lb', 489.9, 'mm']], [741.8, 14.31, 19.29]], ['sampled case 3', [[65.8, 'lb', 769.9, 'cm'], [1474.8, 'kg', 2706.1, 'mm'], [1498.3, 'kg', 2769.1, 'cm']], [6620.4, 3967.46, 599.28]]], [['mixed kg and cm', [[83.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [353.0, 13.13, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3530.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 500.47, 151.34]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [360.0, 'lb', 48.0, 'in']], [2350.0, 94.54, 40.23]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[30.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 253.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 564.85, 98.66]], ['sampled case 1', [[587.7, 'lb', 751.0, 'in'], [1481.3, 'kg', 2071.3, 'mm'], [1260.8, 'lb', 3264.1, 'in']], [5114.2, 4823.05, 943.07]], ['sampled case 2', [[1420.4, 'lb', 62.7, 'in'], [744.7, 'lb', 3096.0, 'cm'], [1460.6, 'lb', 2357.4, 'in'], [784.7, 'kg', 1562.0, 'mm']], [5355.7, 4546.38, 848.89]], ['sampled case 3', [[927.8, 'lb', 3339.6, 'mm'], [96.5, 'lb', 2857.2, 'in']], [1024.3, 397.71, 388.27]]], [['mixed kg and cm', [[84.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [355.2, 13.22, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3540.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 501.51, 151.65]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [480.0, 'lb', 48.0, 'in']], [2470.0, 100.3, 40.61]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[40.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 254.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 567.02, 99.04]], ['sampled case 1', [[845.6, 'lb', 549.1, 'mm'], [706.7, 'lb', 4259.5, 'cm'], [418.1, 'lb', 941.4, 'in'], [300.5, 'lb', 701.4, 'in']], [2270.9, 1807.76, 796.06]], ['sampled case 2', [[672.3, 'lb', 4546.6, 'cm'], [811.4, 'kg', 2178.7, 'mm'], [1336.5, 'kg', 2678.4, 'cm'], [437.9, 'lb', 3587.0, 'in']], [5845.5, 6034.62, 1032.35]], ['sampled case 3', [[932.7, 'lb', 1924.2, 'in'], [707.5, 'lb', 1732.9, 'cm']], [1640.2, 2277.39, 1388.48]]], [['mixed kg and cm', [[85.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [357.4, 13.3, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3550.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 502.55, 151.97]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [600.0, 'lb', 48.0, 'in']], [2590.0, 106.06, 40.95]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[50.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 255.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 569.19, 99.42]], ['sampled case 1', [[443.4, 'lb', 3757.6, 'mm'], [1247.8, 'lb', 3883.6, 'cm'], [863.0, 'kg', 1577.0, 'in']], [3593.8, 4973.83, 1384.01]], ['sampled case 2', [[1022.3, 'kg', 4134.6, 'cm'], [1227.6, 'kg', 1189.8, 'mm']], [4960.2, 3795.47, 765.19]], ['sampled case 3', [[516.4, 'kg', 3268.8, 'in'], [1320.8, 'kg', 2685.1, 'cm'], [1128.7, 'kg', 3910.9, 'cm'], [295.8, 'kg', 1659.2, 'cm'], [1025.6, 'lb', 579.9, 'cm']], [8216.4, 11291.14, 1374.22]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"b1cd588443d90f046914f699f428f00fecc735346382b16c983b780119413106","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    wf = {'kg': 2.20462, 'lb': 1.0}\n    af = {'in': 1.0, 'cm': 1 / 2.54, 'mm': 1 / 25.4}\n    w = 0.0\n    m = 0.0\n    for q, wu, arm, au in x:\n        wf.setdefault(wu, 1.0); af.setdefault(au, 1.0)\n        lb = q * wf[wu]\n        w += lb\n        m += lb * arm * af[au]\n    if w <= 0: return 'ERR_WEIGHT'\n    return [round(w, 1), round(m / 1000, 2), round(m / w, 2)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['mixed kg and cm', [[81.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [348.6, 12.97, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3510.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 498.38, 150.71]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [120.0, 'lb', 48.0, 'in']], [2110.0, 83.02, 39.35]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[10.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 251.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 560.51, 97.91]], ['sampled case 1', [[1412.5, 'kg', 3138.2, 'cm'], [645.7, 'lb', 3313.7, 'cm'], [780.8, 'lb', 1136.3, 'cm'], [548.1, 'kg', 3196.1, 'cm'], [708.5, 'kg', 4627.1, 'in']], [7310.9, 13786.98, 1885.82]], ['sampled case 2', [[446.5, 'lb', 1614.2, 'cm'], [1166.3, 'lb', 934.4, 'mm'], [1321.5, 'lb', 2983.7, 'in'], [1133.4, 'lb', 4571.3, 'mm']], [4067.7, 4473.6, 1099.79]], ['sampled case 3', [[880.0, 'kg', 2334.3, 'mm']], [1940.1, 178.3, 91.9]]], [['mixed kg and cm', [[82.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [350.8, 13.05, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3520.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 499.42, 151.02]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [240.0, 'lb', 48.0, 'in']], [2230.0, 88.78, 39.81]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[20.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 252.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 562.68, 98.28]], ['sampled case 1', [[451.1, 'lb', 2563.5, 'mm'], [525.2, 'kg', 1580.7, 'in'], [1447.9, 'kg', 4822.5, 'cm'], [324.3, 'kg', 4534.3, 'in']], [5516.0, 11178.14, 2026.5]], ['sampled case 2', [[741.8, 'lb', 489.9, 'mm']], [741.8, 14.31, 19.29]], ['sampled case 3', [[65.8, 'lb', 769.9, 'cm'], [1474.8, 'kg', 2706.1, 'mm'], [1498.3, 'kg', 2769.1, 'cm']], [6620.4, 3967.46, 599.28]]], [['mixed kg and cm', [[83.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [353.0, 13.13, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3530.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 500.47, 151.34]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [360.0, 'lb', 48.0, 'in']], [2350.0, 94.54, 40.23]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[30.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 253.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 564.85, 98.66]], ['sampled case 1', [[587.7, 'lb', 751.0, 'in'], [1481.3, 'kg', 2071.3, 'mm'], [1260.8, 'lb', 3264.1, 'in']], [5114.2, 4823.05, 943.07]], ['sampled case 2', [[1420.4, 'lb', 62.7, 'in'], [744.7, 'lb', 3096.0, 'cm'], [1460.6, 'lb', 2357.4, 'in'], [784.7, 'kg', 1562.0, 'mm']], [5355.7, 4546.38, 848.89]], ['sampled case 3', [[927.8, 'lb', 3339.6, 'mm'], [96.5, 'lb', 2857.2, 'in']], [1024.3, 397.71, 388.27]]], [['mixed kg and cm', [[84.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [355.2, 13.22, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3540.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 501.51, 151.65]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [480.0, 'lb', 48.0, 'in']], [2470.0, 100.3, 40.61]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[40.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 254.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 567.02, 99.04]], ['sampled case 1', [[845.6, 'lb', 549.1, 'mm'], [706.7, 'lb', 4259.5, 'cm'], [418.1, 'lb', 941.4, 'in'], [300.5, 'lb', 701.4, 'in']], [2270.9, 1807.76, 796.06]], ['sampled case 2', [[672.3, 'lb', 4546.6, 'cm'], [811.4, 'kg', 2178.7, 'mm'], [1336.5, 'kg', 2678.4, 'cm'], [437.9, 'lb', 3587.0, 'in']], [5845.5, 6034.62, 1032.35]], ['sampled case 3', [[932.7, 'lb', 1924.2, 'in'], [707.5, 'lb', 1732.9, 'cm']], [1640.2, 2277.39, 1388.48]]], [['mixed kg and cm', [[85.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [357.4, 13.3, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3550.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 502.55, 151.97]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [600.0, 'lb', 48.0, 'in']], [2590.0, 106.06, 40.95]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[50.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 255.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 569.19, 99.42]], ['sampled case 1', [[443.4, 'lb', 3757.6, 'mm'], [1247.8, 'lb', 3883.6, 'cm'], [863.0, 'kg', 1577.0, 'in']], [3593.8, 4973.83, 1384.01]], ['sampled case 2', [[1022.3, 'kg', 4134.6, 'cm'], [1227.6, 'kg', 1189.8, 'mm']], [4960.2, 3795.47, 765.19]], ['sampled case 3', [[516.4, 'kg', 3268.8, 'in'], [1320.8, 'kg', 2685.1, 'cm'], [1128.7, 'kg', 3910.9, 'cm'], [295.8, 'kg', 1659.2, 'cm'], [1025.6, 'lb', 579.9, 'cm']], [8216.4, 11291.14, 1374.22]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"4e14ae7e89aefa37cfb0d9d7235ff7ca416b7a80f8833a83d24c0df3daa99026","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    wf = {'kg': 2.20462, 'lb': 1.0}\n    af = {'in': 1.0, 'cm': 1 / 2.54, 'mm': 1 / 25.4}\n    w = 0.0\n    m = 0.0\n    for q, wu, arm, au in x:\n        if wu not in wf or au not in af: return 'ERR_UNIT'\n        lb = q * wf[wu]\n        w += lb\n        m += lb * arm * af[au]\n    if w <= 0: return 'ERR_WEIGHT'\n    return [round(w, 1), round(m / 1000, 2), round(m / w, 2)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['mixed kg and cm', [[81.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [348.6, 12.97, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3510.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 498.38, 150.71]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [120.0, 'lb', 48.0, 'in']], [2110.0, 83.02, 39.35]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[10.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 251.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 560.51, 97.91]], ['sampled case 1', [[1412.5, 'kg', 3138.2, 'cm'], [645.7, 'lb', 3313.7, 'cm'], [780.8, 'lb', 1136.3, 'cm'], [548.1, 'kg', 3196.1, 'cm'], [708.5, 'kg', 4627.1, 'in']], [7310.9, 13786.98, 1885.82]], ['sampled case 2', [[446.5, 'lb', 1614.2, 'cm'], [1166.3, 'lb', 934.4, 'mm'], [1321.5, 'lb', 2983.7, 'in'], [1133.4, 'lb', 4571.3, 'mm']], [4067.7, 4473.6, 1099.79]], ['sampled case 3', [[880.0, 'kg', 2334.3, 'mm']], [1940.1, 178.3, 91.9]]], [['mixed kg and cm', [[82.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [350.8, 13.05, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3520.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 499.42, 151.02]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [240.0, 'lb', 48.0, 'in']], [2230.0, 88.78, 39.81]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[20.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 252.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 562.68, 98.28]], ['sampled case 1', [[451.1, 'lb', 2563.5, 'mm'], [525.2, 'kg', 1580.7, 'in'], [1447.9, 'kg', 4822.5, 'cm'], [324.3, 'kg', 4534.3, 'in']], [5516.0, 11178.14, 2026.5]], ['sampled case 2', [[741.8, 'lb', 489.9, 'mm']], [741.8, 14.31, 19.29]], ['sampled case 3', [[65.8, 'lb', 769.9, 'cm'], [1474.8, 'kg', 2706.1, 'mm'], [1498.3, 'kg', 2769.1, 'cm']], [6620.4, 3967.46, 599.28]]], [['mixed kg and cm', [[83.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [353.0, 13.13, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3530.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 500.47, 151.34]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [360.0, 'lb', 48.0, 'in']], [2350.0, 94.54, 40.23]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[30.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 253.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 564.85, 98.66]], ['sampled case 1', [[587.7, 'lb', 751.0, 'in'], [1481.3, 'kg', 2071.3, 'mm'], [1260.8, 'lb', 3264.1, 'in']], [5114.2, 4823.05, 943.07]], ['sampled case 2', [[1420.4, 'lb', 62.7, 'in'], [744.7, 'lb', 3096.0, 'cm'], [1460.6, 'lb', 2357.4, 'in'], [784.7, 'kg', 1562.0, 'mm']], [5355.7, 4546.38, 848.89]], ['sampled case 3', [[927.8, 'lb', 3339.6, 'mm'], [96.5, 'lb', 2857.2, 'in']], [1024.3, 397.71, 388.27]]], [['mixed kg and cm', [[84.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [355.2, 13.22, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3540.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 501.51, 151.65]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [480.0, 'lb', 48.0, 'in']], [2470.0, 100.3, 40.61]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[40.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 254.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 567.02, 99.04]], ['sampled case 1', [[845.6, 'lb', 549.1, 'mm'], [706.7, 'lb', 4259.5, 'cm'], [418.1, 'lb', 941.4, 'in'], [300.5, 'lb', 701.4, 'in']], [2270.9, 1807.76, 796.06]], ['sampled case 2', [[672.3, 'lb', 4546.6, 'cm'], [811.4, 'kg', 2178.7, 'mm'], [1336.5, 'kg', 2678.4, 'cm'], [437.9, 'lb', 3587.0, 'in']], [5845.5, 6034.62, 1032.35]], ['sampled case 3', [[932.7, 'lb', 1924.2, 'in'], [707.5, 'lb', 1732.9, 'cm']], [1640.2, 2277.39, 1388.48]]], [['mixed kg and cm', [[85.0, 'kg', 95.0, 'cm'], [170.0, 'lb', 37.0, 'in']], [357.4, 13.3, 37.21]], ['millimetre arms', [[1200.0, 'kg', 3550.0, 'mm'], [300.0, 'kg', 5100.0, 'mm']], [3306.9, 502.55, 151.97]], ['all imperial', [[1650.0, 'lb', 39.2, 'in'], [340.0, 'lb', 37.0, 'in'], [600.0, 'lb', 48.0, 'in']], [2590.0, 106.06, 40.95]], ['unknown weight unit', [[10.0, 'st', 50.0, 'in']], 'ERR_UNIT'], ['unknown arm unit', [[50.0, 'kg', 2.0, 'm']], 'ERR_UNIT'], ['removal leaves nothing', [[20.0, 'kg', 100.0, 'cm'], [-50.0, 'lb', 39.37, 'in']], 'ERR_WEIGHT'], ['heavy kg load', [[2500.0, 'kg', 255.0, 'cm'], [90.0, 'kg', 180.0, 'cm'], [15.0, 'lb', 120.0, 'in']], [5725.0, 569.19, 99.42]], ['sampled case 1', [[443.4, 'lb', 3757.6, 'mm'], [1247.8, 'lb', 3883.6, 'cm'], [863.0, 'kg', 1577.0, 'in']], [3593.8, 4973.83, 1384.01]], ['sampled case 2', [[1022.3, 'kg', 4134.6, 'cm'], [1227.6, 'kg', 1189.8, 'mm']], [4960.2, 3795.47, 765.19]], ['sampled case 3', [[516.4, 'kg', 3268.8, 'in'], [1320.8, 'kg', 2685.1, 'cm'], [1128.7, 'kg', 3910.9, 'cm'], [295.8, 'kg', 1659.2, 'cm'], [1025.6, 'lb', 579.9, 'cm']], [8216.4, 11291.14, 1374.22]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic toy loading model with stipulated constants; it is not an approved aircraft flight manual procedure and makes no claim of regulatory conformance. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-aviation-weight-balance-metric-loadsheet-conversion-unknown-unit-default","generated_at":"2026-09-29T14:47:40.276777+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Imported aircraft documentation mixes metric and imperial units; reduced moments (moment/1000) are a charting convenience and must not feed the CG division.","repair":"Return ERR_UNIT when either the weight or the arm unit is not supported.","root_cause":"Missing unit factors default to 1.0, masking unsupported units.","sha256":"ae3826034fb76e2826d632a7c3f4009c429031b59cc9357333c8271347be9c07","title":"Unknown units silently treated as pounds and inches · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.322,"exit_code":1,"observations":[{"actual":[348.6,12.97,37.21],"check":"mixed kg and cm","expected":[348.6,12.97,37.21],"passed":true},{"actual":[3306.9,498.38,150.71],"check":"millimetre arms","expected":[3306.9,498.38,150.71],"passed":true},{"actual":[2110.0,83.02,39.35],"check":"all imperial","expected":[2110.0,83.02,39.35],"passed":true},{"actual":"ERR_UNIT","check":"unknown weight unit","expected":"ERR_UNIT","passed":true},{"actual":[22.0,0.04,2.0],"check":"unknown arm unit","expected":"ERR_UNIT","passed":false},{"actual":"ERR_WEIGHT","check":"removal leaves nothing","expected":"ERR_WEIGHT","passed":true},{"actual":[5725.0,560.51,97.91],"check":"heavy kg load","expected":[5725.0,560.51,97.91],"passed":true},{"actual":[7310.9,13786.98,1885.82],"check":"sampled case 1","expected":[7310.9,13786.98,1885.82],"passed":true},{"actual":[4067.7,4473.6,1099.79],"check":"sampled case 2","expected":[4067.7,4473.6,1099.79],"passed":true},{"actual":[1940.1,178.3,91.9],"check":"sampled case 3","expected":[1940.1,178.3,91.9],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"mixed kg and cm\", \"actual\": [348.6, 12.97, 37.21], \"expected\": [348.6, 12.97, 37.21], \"passed\": true}, {\"check\": \"millimetre arms\", \"actual\": [3306.9, 498.38, 150.71], \"expected\": [3306.9, 498.38, 150.71], \"passed\": true}, {\"check\": \"all imperial\", \"actual\": [2110.0, 83.02, 39.35], \"expected\": [2110.0, 83.02, 39.35], \"passed\": true}, {\"check\": \"unknown weight unit\", \"actual\": \"ERR_UNIT\", \"expected\": \"ERR_UNIT\", \"passed\": true}, {\"check\": \"unknown arm unit\", \"actual\": [22.0, 0.04, 2.0], \"expected\": \"ERR_UNIT\", \"passed\": false}, {\"check\": \"removal leaves nothing\", \"actual\": \"ERR_WEIGHT\", \"expected\": \"ERR_WEIGHT\", \"passed\": true}, {\"check\": \"heavy kg load\", \"actual\": [5725.0, 560.51, 97.91], \"expected\": [5725.0, 560.51, 97.91], \"passed\": true}, {\"check\": \"sampled case 1\", \"actual\": [7310.9, 13786.98, 1885.82], \"expected\": [7310.9, 13786.98, 1885.82], \"passed\": true}, {\"check\": \"sampled case 2\", \"actual\": [4067.7, 4473.6, 1099.79], \"expected\": [4067.7, 4473.6, 1099.79], \"passed\": true}, {\"check\": \"sampled case 3\", \"actual\": [1940.1, 178.3, 91.9], \"expected\": [1940.1, 178.3, 91.9], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.512,"exit_code":1,"observations":[{"actual":[348.6,12.97,37.21],"check":"mixed kg and cm","expected":[348.6,12.97,37.21],"passed":true},{"actual":[3306.9,498.38,150.71],"check":"millimetre arms","expected":[3306.9,498.38,150.71],"passed":true},{"actual":[2110.0,83.02,39.35],"check":"all imperial","expected":[2110.0,83.02,39.35],"passed":true},{"actual":[10.0,0.5,50.0],"check":"unknown weight unit","expected":"ERR_UNIT","passed":false},{"actual":[22.0,0.04,2.0],"check":"unknown arm unit","expected":"ERR_UNIT","passed":false},{"actual":"ERR_WEIGHT","check":"removal leaves nothing","expected":"ERR_WEIGHT","passed":true},{"actual":[5725.0,560.51,97.91],"check":"heavy kg load","expected":[5725.0,560.51,97.91],"passed":true},{"actual":[7310.9,13786.98,1885.82],"check":"sampled case 1","expected":[7310.9,13786.98,1885.82],"passed":true},{"actual":[4067.7,4473.6,1099.79],"check":"sampled case 2","expected":[4067.7,4473.6,1099.79],"passed":true},{"actual":[1940.1,178.3,91.9],"check":"sampled case 3","expected":[1940.1,178.3,91.9],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"mixed kg and cm\", \"actual\": [348.6, 12.97, 37.21], \"expected\": [348.6, 12.97, 37.21], \"passed\": true}, {\"check\": \"millimetre arms\", \"actual\": [3306.9, 498.38, 150.71], \"expected\": [3306.9, 498.38, 150.71], \"passed\": true}, {\"check\": \"all imperial\", \"actual\": [2110.0, 83.02, 39.35], \"expected\": [2110.0, 83.02, 39.35], \"passed\": true}, {\"check\": \"unknown weight unit\", \"actual\": [10.0, 0.5, 50.0], \"expected\": \"ERR_UNIT\", \"passed\": false}, {\"check\": \"unknown arm unit\", \"actual\": [22.0, 0.04, 2.0], \"expected\": \"ERR_UNIT\", \"passed\": false}, {\"check\": \"removal leaves nothing\", \"actual\": \"ERR_WEIGHT\", \"expected\": \"ERR_WEIGHT\", \"passed\": true}, {\"check\": \"heavy kg load\", \"actual\": [5725.0, 560.51, 97.91], \"expected\": [5725.0, 560.51, 97.91], \"passed\": true}, {\"check\": \"sampled case 1\", \"actual\": [7310.9, 13786.98, 1885.82], \"expected\": [7310.9, 13786.98, 1885.82], \"passed\": true}, {\"check\": \"sampled case 2\", \"actual\": [4067.7, 4473.6, 1099.79], \"expected\": [4067.7, 4473.6, 1099.79], \"passed\": true}, {\"check\": \"sampled case 3\", \"actual\": [1940.1, 178.3, 91.9], \"expected\": [1940.1, 178.3, 91.9], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.354,"exit_code":0,"observations":[{"actual":[348.6,12.97,37.21],"check":"mixed kg and cm","expected":[348.6,12.97,37.21],"passed":true},{"actual":[3306.9,498.38,150.71],"check":"millimetre arms","expected":[3306.9,498.38,150.71],"passed":true},{"actual":[2110.0,83.02,39.35],"check":"all imperial","expected":[2110.0,83.02,39.35],"passed":true},{"actual":"ERR_UNIT","check":"unknown weight unit","expected":"ERR_UNIT","passed":true},{"actual":"ERR_UNIT","check":"unknown arm unit","expected":"ERR_UNIT","passed":true},{"actual":"ERR_WEIGHT","check":"removal leaves nothing","expected":"ERR_WEIGHT","passed":true},{"actual":[5725.0,560.51,97.91],"check":"heavy kg load","expected":[5725.0,560.51,97.91],"passed":true},{"actual":[7310.9,13786.98,1885.82],"check":"sampled case 1","expected":[7310.9,13786.98,1885.82],"passed":true},{"actual":[4067.7,4473.6,1099.79],"check":"sampled case 2","expected":[4067.7,4473.6,1099.79],"passed":true},{"actual":[1940.1,178.3,91.9],"check":"sampled case 3","expected":[1940.1,178.3,91.9],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"mixed kg and cm\", \"actual\": [348.6, 12.97, 37.21], \"expected\": [348.6, 12.97, 37.21], \"passed\": true}, {\"check\": \"millimetre arms\", \"actual\": [3306.9, 498.38, 150.71], \"expected\": [3306.9, 498.38, 150.71], \"passed\": true}, {\"check\": \"all imperial\", \"actual\": [2110.0, 83.02, 39.35], \"expected\": [2110.0, 83.02, 39.35], \"passed\": true}, {\"check\": \"unknown weight unit\", \"actual\": \"ERR_UNIT\", \"expected\": \"ERR_UNIT\", \"passed\": true}, {\"check\": \"unknown arm unit\", \"actual\": \"ERR_UNIT\", \"expected\": \"ERR_UNIT\", \"passed\": true}, {\"check\": \"removal leaves nothing\", \"actual\": \"ERR_WEIGHT\", \"expected\": \"ERR_WEIGHT\", \"passed\": true}, {\"check\": \"heavy kg load\", \"actual\": [5725.0, 560.51, 97.91], \"expected\": [5725.0, 560.51, 97.91], \"passed\": true}, {\"check\": \"sampled case 1\", \"actual\": [7310.9, 13786.98, 1885.82], \"expected\": [7310.9, 13786.98, 1885.82], \"passed\": true}, {\"check\": \"sampled case 2\", \"actual\": [4067.7, 4473.6, 1099.79], \"expected\": [4067.7, 4473.6, 1099.79], \"passed\": true}, {\"check\": \"sampled case 3\", \"actual\": [1940.1, 178.3, 91.9], \"expected\": [1940.1, 178.3, 91.9], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}