{"abstract":"Heavy rain on a thin pack reports negative snow depth.","category":"Weather index computation","checks":8,"contract":"hours are [liquid_mm, temp_c]. Snow-to-liquid ratio: T>1 rain (0), 0<T<=1: 5, -5<T<=0: 10, -12<T<=-5: 15, T<=-12: 20. New snow cm = liquid*ratio/10. Each hour the existing depth settles by 2% before the new snow is added; rain (ratio 0, liquid > 0) melts 0.5 cm per mm, floored at 0. Return [total new snowfall rounded 0.1, final depth rounded 0.1].","evaluation_group":"w2-weather_index_computation-snow-accumulation","failed_approach":"Using 0.05 cm per mm restores the floor but scales melt tenfold too small.","family":"w2-weather_index_computation-snow-accumulation-rain-melt-floor","id":"FA-71336","implementations":{"attempt":{"sha256":"85daf033a69829dc5c689eb0327644c287daca536ed17b52fe707af2c2e3ae5b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(hours):\n    total = 0.0\n    depth = 0.0\n    for liq, t in hours:\n        if t > 1:\n            slr = 0\n        elif t > 0:\n            slr = 5\n        elif t > -5:\n            slr = 10\n        elif t > -12:\n            slr = 15\n        else:\n            slr = 20\n        new = liq * slr / 10.0\n        depth = depth * 0.98 + new\n        total += new\n        if slr == 0 and liq > 0:\n            depth = max(depth - 0.05 * liq, 0.0)\n    return [round(total, 1), round(depth, 1)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['storm 0', [[[1.0, -15.0], [1.0, 1.0], [0.0, 0.0], [1.0, 3.0], [2.0, -8.0], [0.5, 0.0]]], [6.0, 5.2]], ['storm 1', [[[0.5, 0.5], [1.0, 0.5], [2.0, -8.0], [0.0, -5.0], [0.0, 1.0], [1.0, -5.0]]], [5.2, 5.0]], ['storm 2', [[[1.0, -8.0], [2.0, 0.0], [0.0, -5.0], [1.0, -0.5], [1.0, 3.0], [4.0, 0.5]]], [6.5, 5.7]], ['storm 3', [[[0.5, -3.0], [0.5, -0.5], [1.0, -8.0], [4.0, -5.0], [4.0, -0.5], [0.5, -8.0]]], [13.2, 12.8]], ['storm 4', [[[2.0, -5.0], [4.0, -0.5], [0.5, -5.0], [0.0, -5.0], [1.0, 1.0], [2.0, -0.5]]], [10.2, 9.6]], ['storm 5', [[[2.0, -5.0], [2.0, -3.0], [0.0, -8.0], [4.0, -8.0], [4.0, 0.5], [0.0, -15.0]]], [13.0, 12.3]], ['storm 6', [[[1.0, -8.0], [1.0, -0.5], [0.0, -12.0], [0.0, 0.5], [1.0, 0.0], [0.0, 0.0]]], [3.5, 3.3]], ['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]]], [['storm 7', [[[0.0, 3.0], [1.0, 0.0], [0.0, -15.0], [4.0, -5.0], [0.5, -15.0], [0.5, 1.0]]], [8.2, 7.9]], ['storm 8', [[[0.0, 1.0], [2.0, -8.0], [2.0, -0.5], [2.0, -8.0], [4.0, 0.5], [2.0, -3.0]]], [12.0, 11.5]], ['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]], ['storm 10', [[[0.0, -12.0], [2.0, -15.0], [0.0, 3.0], [2.0, 1.0], [0.0, 0.5], [1.0, -15.0]]], [7.0, 6.6]], ['storm 11', [[[1.0, -8.0], [2.0, -15.0], [1.0, -3.0], [0.0, 1.0], [4.0, -3.0], [0.0, 3.0]]], [10.5, 9.9]], ['storm 12', [[[1.0, -0.5], [4.0, -5.0], [0.5, -12.0], [4.0, 0.5], [1.0, -5.0], [1.0, 3.0]]], [11.5, 10.3]], ['storm 13', [[[4.0, -8.0], [4.0, 0.5], [1.0, -15.0], [4.0, -5.0], [0.5, -12.0], [0.5, -12.0]]], [18.0, 16.9]], ['storm 23', [[[2.0, -12.0], [4.0, -8.0], [0.5, -3.0], [4.0, 0.0], [1.0, -8.0], [0.5, 3.0]]], [16.0, 14.7]]], [['storm 0', [[[1.0, -15.0], [1.0, 1.0], [0.0, 0.0], [1.0, 3.0], [2.0, -8.0], [0.5, 0.0]]], [6.0, 5.2]], ['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]], ['storm 14', [[[1.0, 1.0], [0.0, -5.0], [2.0, -5.0], [4.0, -8.0], [1.0, -15.0], [4.0, 3.0]]], [11.5, 9.0]], ['storm 15', [[[2.0, -12.0], [2.0, 1.0], [1.0, 3.0], [4.0, -5.0], [2.0, -15.0], [4.0, -3.0]]], [19.0, 17.7]], ['storm 16', [[[4.0, 1.0], [0.0, 0.0], [0.0, -5.0], [4.0, 1.0], [0.0, 0.0], [0.0, 0.0]]], [4.0, 3.7]], ['storm 17', [[[0.0, -12.0], [0.5, 0.0], [2.0, -12.0], [2.0, 0.5], [1.0, 0.5], [2.0, -12.0]]], [10.0, 9.7]], ['storm 18', [[[4.0, 0.5], [0.0, -12.0], [0.0, -3.0], [0.0, -12.0], [0.0, 0.0], [0.5, -5.0]]], [2.8, 2.6]], ['storm 19', [[[4.0, -5.0], [0.5, -3.0], [4.0, 1.0], [0.5, -15.0], [0.0, -15.0], [0.5, 3.0]]], [9.5, 8.5]]], [['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]], ['storm 19', [[[4.0, -5.0], [0.5, -3.0], [4.0, 1.0], [0.5, -15.0], [0.0, -15.0], [0.5, 3.0]]], [9.5, 8.5]], ['storm 21', [[[0.0, -5.0], [1.0, -15.0], [4.0, 1.0], [4.0, -3.0], [4.0, -12.0], [2.0, -12.0]]], [20.0, 19.4]], ['storm 22', [[[4.0, -8.0], [2.0, -15.0], [0.0, -3.0], [4.0, -8.0], [4.0, -0.5], [4.0, 0.0]]], [24.0, 22.8]], ['storm 23', [[[2.0, -12.0], [4.0, -8.0], [0.5, -3.0], [4.0, 0.0], [1.0, -8.0], [0.5, 3.0]]], [16.0, 14.7]], ['storm 24', [[[0.0, 0.5], [2.0, 3.0], [2.0, -5.0], [4.0, -3.0], [0.0, -0.5], [1.0, 3.0]]], [7.0, 6.2]], ['storm 25', [[[2.0, -3.0], [4.0, -8.0], [1.0, 3.0], [0.0, 0.5], [0.5, -3.0], [0.0, -5.0]]], [8.5, 7.4]], ['storm 26', [[[2.0, 0.0], [1.0, -0.5], [2.0, -12.0], [2.0, -8.0], [4.0, -12.0], [1.0, -12.0]]], [20.0, 19.2]]], [['storm 0', [[[1.0, -15.0], [1.0, 1.0], [0.0, 0.0], [1.0, 3.0], [2.0, -8.0], [0.5, 0.0]]], [6.0, 5.2]], ['storm 1', [[[0.5, 0.5], [1.0, 0.5], [2.0, -8.0], [0.0, -5.0], [0.0, 1.0], [1.0, -5.0]]], [5.2, 5.0]], ['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]], ['storm 28', [[[0.0, -3.0], [0.5, -3.0], [2.0, -3.0], [2.0, 3.0], [0.0, 1.0], [2.0, -15.0]]], [6.5, 5.4]], ['storm 29', [[[0.5, -5.0], [4.0, 1.0], [1.0, -3.0], [0.5, 0.5], [1.0, 1.0], [1.0, -5.0]]], [6.0, 5.7]], ['rain on snowpack', [[[5.0, -8.0], [3.0, 2.0], [10.0, 3.0]]], [7.5, 0.7]], ['exactly freezing', [[[2.0, 0.0], [2.0, 0.0]]], [4.0, 4.0]], ['single burst then settling', [[[4.0, -6.0], [0.0, -6.0], [0.0, -6.0]]], [6.0, 5.8]]]]\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":"6a23519a06efa4b4f07c0efcac2a111f7ab8d5e62639bb10e56277ad52078fa9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(hours):\n    total = 0.0\n    depth = 0.0\n    for liq, t in hours:\n        if t > 1:\n            slr = 0\n        elif t > 0:\n            slr = 5\n        elif t > -5:\n            slr = 10\n        elif t > -12:\n            slr = 15\n        else:\n            slr = 20\n        new = liq * slr / 10.0\n        depth = depth * 0.98 + new\n        total += new\n        if slr == 0 and liq > 0:\n            depth = depth - 0.5 * liq\n    return [round(total, 1), round(depth, 1)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['storm 0', [[[1.0, -15.0], [1.0, 1.0], [0.0, 0.0], [1.0, 3.0], [2.0, -8.0], [0.5, 0.0]]], [6.0, 5.2]], ['storm 1', [[[0.5, 0.5], [1.0, 0.5], [2.0, -8.0], [0.0, -5.0], [0.0, 1.0], [1.0, -5.0]]], [5.2, 5.0]], ['storm 2', [[[1.0, -8.0], [2.0, 0.0], [0.0, -5.0], [1.0, -0.5], [1.0, 3.0], [4.0, 0.5]]], [6.5, 5.7]], ['storm 3', [[[0.5, -3.0], [0.5, -0.5], [1.0, -8.0], [4.0, -5.0], [4.0, -0.5], [0.5, -8.0]]], [13.2, 12.8]], ['storm 4', [[[2.0, -5.0], [4.0, -0.5], [0.5, -5.0], [0.0, -5.0], [1.0, 1.0], [2.0, -0.5]]], [10.2, 9.6]], ['storm 5', [[[2.0, -5.0], [2.0, -3.0], [0.0, -8.0], [4.0, -8.0], [4.0, 0.5], [0.0, -15.0]]], [13.0, 12.3]], ['storm 6', [[[1.0, -8.0], [1.0, -0.5], [0.0, -12.0], [0.0, 0.5], [1.0, 0.0], [0.0, 0.0]]], [3.5, 3.3]], ['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]]], [['storm 7', [[[0.0, 3.0], [1.0, 0.0], [0.0, -15.0], [4.0, -5.0], [0.5, -15.0], [0.5, 1.0]]], [8.2, 7.9]], ['storm 8', [[[0.0, 1.0], [2.0, -8.0], [2.0, -0.5], [2.0, -8.0], [4.0, 0.5], [2.0, -3.0]]], [12.0, 11.5]], ['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]], ['storm 10', [[[0.0, -12.0], [2.0, -15.0], [0.0, 3.0], [2.0, 1.0], [0.0, 0.5], [1.0, -15.0]]], [7.0, 6.6]], ['storm 11', [[[1.0, -8.0], [2.0, -15.0], [1.0, -3.0], [0.0, 1.0], [4.0, -3.0], [0.0, 3.0]]], [10.5, 9.9]], ['storm 12', [[[1.0, -0.5], [4.0, -5.0], [0.5, -12.0], [4.0, 0.5], [1.0, -5.0], [1.0, 3.0]]], [11.5, 10.3]], ['storm 13', [[[4.0, -8.0], [4.0, 0.5], [1.0, -15.0], [4.0, -5.0], [0.5, -12.0], [0.5, -12.0]]], [18.0, 16.9]], ['storm 23', [[[2.0, -12.0], [4.0, -8.0], [0.5, -3.0], [4.0, 0.0], [1.0, -8.0], [0.5, 3.0]]], [16.0, 14.7]]], [['storm 0', [[[1.0, -15.0], [1.0, 1.0], [0.0, 0.0], [1.0, 3.0], [2.0, -8.0], [0.5, 0.0]]], [6.0, 5.2]], ['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]], ['storm 14', [[[1.0, 1.0], [0.0, -5.0], [2.0, -5.0], [4.0, -8.0], [1.0, -15.0], [4.0, 3.0]]], [11.5, 9.0]], ['storm 15', [[[2.0, -12.0], [2.0, 1.0], [1.0, 3.0], [4.0, -5.0], [2.0, -15.0], [4.0, -3.0]]], [19.0, 17.7]], ['storm 16', [[[4.0, 1.0], [0.0, 0.0], [0.0, -5.0], [4.0, 1.0], [0.0, 0.0], [0.0, 0.0]]], [4.0, 3.7]], ['storm 17', [[[0.0, -12.0], [0.5, 0.0], [2.0, -12.0], [2.0, 0.5], [1.0, 0.5], [2.0, -12.0]]], [10.0, 9.7]], ['storm 18', [[[4.0, 0.5], [0.0, -12.0], [0.0, -3.0], [0.0, -12.0], [0.0, 0.0], [0.5, -5.0]]], [2.8, 2.6]], ['storm 19', [[[4.0, -5.0], [0.5, -3.0], [4.0, 1.0], [0.5, -15.0], [0.0, -15.0], [0.5, 3.0]]], [9.5, 8.5]]], [['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]], ['storm 19', [[[4.0, -5.0], [0.5, -3.0], [4.0, 1.0], [0.5, -15.0], [0.0, -15.0], [0.5, 3.0]]], [9.5, 8.5]], ['storm 21', [[[0.0, -5.0], [1.0, -15.0], [4.0, 1.0], [4.0, -3.0], [4.0, -12.0], [2.0, -12.0]]], [20.0, 19.4]], ['storm 22', [[[4.0, -8.0], [2.0, -15.0], [0.0, -3.0], [4.0, -8.0], [4.0, -0.5], [4.0, 0.0]]], [24.0, 22.8]], ['storm 23', [[[2.0, -12.0], [4.0, -8.0], [0.5, -3.0], [4.0, 0.0], [1.0, -8.0], [0.5, 3.0]]], [16.0, 14.7]], ['storm 24', [[[0.0, 0.5], [2.0, 3.0], [2.0, -5.0], [4.0, -3.0], [0.0, -0.5], [1.0, 3.0]]], [7.0, 6.2]], ['storm 25', [[[2.0, -3.0], [4.0, -8.0], [1.0, 3.0], [0.0, 0.5], [0.5, -3.0], [0.0, -5.0]]], [8.5, 7.4]], ['storm 26', [[[2.0, 0.0], [1.0, -0.5], [2.0, -12.0], [2.0, -8.0], [4.0, -12.0], [1.0, -12.0]]], [20.0, 19.2]]], [['storm 0', [[[1.0, -15.0], [1.0, 1.0], [0.0, 0.0], [1.0, 3.0], [2.0, -8.0], [0.5, 0.0]]], [6.0, 5.2]], ['storm 1', [[[0.5, 0.5], [1.0, 0.5], [2.0, -8.0], [0.0, -5.0], [0.0, 1.0], [1.0, -5.0]]], [5.2, 5.0]], ['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]], ['storm 28', [[[0.0, -3.0], [0.5, -3.0], [2.0, -3.0], [2.0, 3.0], [0.0, 1.0], [2.0, -15.0]]], [6.5, 5.4]], ['storm 29', [[[0.5, -5.0], [4.0, 1.0], [1.0, -3.0], [0.5, 0.5], [1.0, 1.0], [1.0, -5.0]]], [6.0, 5.7]], ['rain on snowpack', [[[5.0, -8.0], [3.0, 2.0], [10.0, 3.0]]], [7.5, 0.7]], ['exactly freezing', [[[2.0, 0.0], [2.0, 0.0]]], [4.0, 4.0]], ['single burst then settling', [[[4.0, -6.0], [0.0, -6.0], [0.0, -6.0]]], [6.0, 5.8]]]]\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":"7d5c1453b23ecc4e06b23c8db8859ae149bd24352cef3f58e95c726c77304638","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(hours):\n    total = 0.0\n    depth = 0.0\n    for liq, t in hours:\n        if t > 1:\n            slr = 0\n        elif t > 0:\n            slr = 5\n        elif t > -5:\n            slr = 10\n        elif t > -12:\n            slr = 15\n        else:\n            slr = 20\n        new = liq * slr / 10.0\n        depth = depth * 0.98 + new\n        total += new\n        if slr == 0 and liq > 0:\n            depth = max(depth - 0.5 * liq, 0.0)\n    return [round(total, 1), round(depth, 1)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['storm 0', [[[1.0, -15.0], [1.0, 1.0], [0.0, 0.0], [1.0, 3.0], [2.0, -8.0], [0.5, 0.0]]], [6.0, 5.2]], ['storm 1', [[[0.5, 0.5], [1.0, 0.5], [2.0, -8.0], [0.0, -5.0], [0.0, 1.0], [1.0, -5.0]]], [5.2, 5.0]], ['storm 2', [[[1.0, -8.0], [2.0, 0.0], [0.0, -5.0], [1.0, -0.5], [1.0, 3.0], [4.0, 0.5]]], [6.5, 5.7]], ['storm 3', [[[0.5, -3.0], [0.5, -0.5], [1.0, -8.0], [4.0, -5.0], [4.0, -0.5], [0.5, -8.0]]], [13.2, 12.8]], ['storm 4', [[[2.0, -5.0], [4.0, -0.5], [0.5, -5.0], [0.0, -5.0], [1.0, 1.0], [2.0, -0.5]]], [10.2, 9.6]], ['storm 5', [[[2.0, -5.0], [2.0, -3.0], [0.0, -8.0], [4.0, -8.0], [4.0, 0.5], [0.0, -15.0]]], [13.0, 12.3]], ['storm 6', [[[1.0, -8.0], [1.0, -0.5], [0.0, -12.0], [0.0, 0.5], [1.0, 0.0], [0.0, 0.0]]], [3.5, 3.3]], ['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]]], [['storm 7', [[[0.0, 3.0], [1.0, 0.0], [0.0, -15.0], [4.0, -5.0], [0.5, -15.0], [0.5, 1.0]]], [8.2, 7.9]], ['storm 8', [[[0.0, 1.0], [2.0, -8.0], [2.0, -0.5], [2.0, -8.0], [4.0, 0.5], [2.0, -3.0]]], [12.0, 11.5]], ['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]], ['storm 10', [[[0.0, -12.0], [2.0, -15.0], [0.0, 3.0], [2.0, 1.0], [0.0, 0.5], [1.0, -15.0]]], [7.0, 6.6]], ['storm 11', [[[1.0, -8.0], [2.0, -15.0], [1.0, -3.0], [0.0, 1.0], [4.0, -3.0], [0.0, 3.0]]], [10.5, 9.9]], ['storm 12', [[[1.0, -0.5], [4.0, -5.0], [0.5, -12.0], [4.0, 0.5], [1.0, -5.0], [1.0, 3.0]]], [11.5, 10.3]], ['storm 13', [[[4.0, -8.0], [4.0, 0.5], [1.0, -15.0], [4.0, -5.0], [0.5, -12.0], [0.5, -12.0]]], [18.0, 16.9]], ['storm 23', [[[2.0, -12.0], [4.0, -8.0], [0.5, -3.0], [4.0, 0.0], [1.0, -8.0], [0.5, 3.0]]], [16.0, 14.7]]], [['storm 0', [[[1.0, -15.0], [1.0, 1.0], [0.0, 0.0], [1.0, 3.0], [2.0, -8.0], [0.5, 0.0]]], [6.0, 5.2]], ['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]], ['storm 14', [[[1.0, 1.0], [0.0, -5.0], [2.0, -5.0], [4.0, -8.0], [1.0, -15.0], [4.0, 3.0]]], [11.5, 9.0]], ['storm 15', [[[2.0, -12.0], [2.0, 1.0], [1.0, 3.0], [4.0, -5.0], [2.0, -15.0], [4.0, -3.0]]], [19.0, 17.7]], ['storm 16', [[[4.0, 1.0], [0.0, 0.0], [0.0, -5.0], [4.0, 1.0], [0.0, 0.0], [0.0, 0.0]]], [4.0, 3.7]], ['storm 17', [[[0.0, -12.0], [0.5, 0.0], [2.0, -12.0], [2.0, 0.5], [1.0, 0.5], [2.0, -12.0]]], [10.0, 9.7]], ['storm 18', [[[4.0, 0.5], [0.0, -12.0], [0.0, -3.0], [0.0, -12.0], [0.0, 0.0], [0.5, -5.0]]], [2.8, 2.6]], ['storm 19', [[[4.0, -5.0], [0.5, -3.0], [4.0, 1.0], [0.5, -15.0], [0.0, -15.0], [0.5, 3.0]]], [9.5, 8.5]]], [['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]], ['storm 19', [[[4.0, -5.0], [0.5, -3.0], [4.0, 1.0], [0.5, -15.0], [0.0, -15.0], [0.5, 3.0]]], [9.5, 8.5]], ['storm 21', [[[0.0, -5.0], [1.0, -15.0], [4.0, 1.0], [4.0, -3.0], [4.0, -12.0], [2.0, -12.0]]], [20.0, 19.4]], ['storm 22', [[[4.0, -8.0], [2.0, -15.0], [0.0, -3.0], [4.0, -8.0], [4.0, -0.5], [4.0, 0.0]]], [24.0, 22.8]], ['storm 23', [[[2.0, -12.0], [4.0, -8.0], [0.5, -3.0], [4.0, 0.0], [1.0, -8.0], [0.5, 3.0]]], [16.0, 14.7]], ['storm 24', [[[0.0, 0.5], [2.0, 3.0], [2.0, -5.0], [4.0, -3.0], [0.0, -0.5], [1.0, 3.0]]], [7.0, 6.2]], ['storm 25', [[[2.0, -3.0], [4.0, -8.0], [1.0, 3.0], [0.0, 0.5], [0.5, -3.0], [0.0, -5.0]]], [8.5, 7.4]], ['storm 26', [[[2.0, 0.0], [1.0, -0.5], [2.0, -12.0], [2.0, -8.0], [4.0, -12.0], [1.0, -12.0]]], [20.0, 19.2]]], [['storm 0', [[[1.0, -15.0], [1.0, 1.0], [0.0, 0.0], [1.0, 3.0], [2.0, -8.0], [0.5, 0.0]]], [6.0, 5.2]], ['storm 1', [[[0.5, 0.5], [1.0, 0.5], [2.0, -8.0], [0.0, -5.0], [0.0, 1.0], [1.0, -5.0]]], [5.2, 5.0]], ['storm 9', [[[4.0, 3.0], [1.0, -3.0], [2.0, -3.0], [0.5, -12.0], [0.0, -3.0], [2.0, -3.0]]], [6.0, 5.8]], ['storm 28', [[[0.0, -3.0], [0.5, -3.0], [2.0, -3.0], [2.0, 3.0], [0.0, 1.0], [2.0, -15.0]]], [6.5, 5.4]], ['storm 29', [[[0.5, -5.0], [4.0, 1.0], [1.0, -3.0], [0.5, 0.5], [1.0, 1.0], [1.0, -5.0]]], [6.0, 5.7]], ['rain on snowpack', [[[5.0, -8.0], [3.0, 2.0], [10.0, 3.0]]], [7.5, 0.7]], ['exactly freezing', [[[2.0, 0.0], [2.0, 0.0]]], [4.0, 4.0]], ['single burst then settling', [[[4.0, -6.0], [0.0, -6.0], [0.0, -6.0]]], [6.0, 5.8]]]]\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":"Stipulated deterministic teaching model of an operational weather index; coefficients and thresholds are fixed by the contract and no claim of standards conformance is made. 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-weather_index_computation-snow-accumulation-rain-melt-floor","generated_at":"2026-09-29T14:48:28.674455+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Winter road maintenance and snow reports need both new snowfall and settled depth.","repair":"Floor the depth at 0 after rain melt.","root_cause":"Rain melt is not floored at zero.","sha256":"78269a3d20c1bb311554f949fd2988c6a28c7d913e04e2bab4e37fb94aad3256","title":"Hourly snowfall and settled depth: rain melt floor · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.406,"exit_code":1,"observations":[{"actual":[6.0,5.7],"check":"storm 0","expected":[6.0,5.2],"passed":false},{"actual":[5.2,5.0],"check":"storm 1","expected":[5.2,5.0],"passed":true},{"actual":[6.5,6.1],"check":"storm 2","expected":[6.5,5.7],"passed":false},{"actual":[13.2,12.8],"check":"storm 3","expected":[13.2,12.8],"passed":true},{"actual":[10.2,9.6],"check":"storm 4","expected":[10.2,9.6],"passed":true},{"actual":[13.0,12.3],"check":"storm 5","expected":[13.0,12.3],"passed":true},{"actual":[3.5,3.3],"check":"storm 6","expected":[3.5,3.3],"passed":true},{"actual":[6.0,5.8],"check":"storm 9","expected":[6.0,5.8],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"storm 0\", \"actual\": [6.0, 5.7], \"expected\": [6.0, 5.2], \"passed\": false}, {\"check\": \"storm 1\", \"actual\": [5.2, 5.0], \"expected\": [5.2, 5.0], \"passed\": true}, {\"check\": \"storm 2\", \"actual\": [6.5, 6.1], \"expected\": [6.5, 5.7], \"passed\": false}, {\"check\": \"storm 3\", \"actual\": [13.2, 12.8], \"expected\": [13.2, 12.8], \"passed\": true}, {\"check\": \"storm 4\", \"actual\": [10.2, 9.6], \"expected\": [10.2, 9.6], \"passed\": true}, {\"check\": \"storm 5\", \"actual\": [13.0, 12.3], \"expected\": [13.0, 12.3], \"passed\": true}, {\"check\": \"storm 6\", \"actual\": [3.5, 3.3], \"expected\": [3.5, 3.3], \"passed\": true}, {\"check\": \"storm 9\", \"actual\": [6.0, 5.8], \"expected\": [6.0, 5.8], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.179,"exit_code":1,"observations":[{"actual":[6.0,5.2],"check":"storm 0","expected":[6.0,5.2],"passed":true},{"actual":[5.2,5.0],"check":"storm 1","expected":[5.2,5.0],"passed":true},{"actual":[6.5,5.7],"check":"storm 2","expected":[6.5,5.7],"passed":true},{"actual":[13.2,12.8],"check":"storm 3","expected":[13.2,12.8],"passed":true},{"actual":[10.2,9.6],"check":"storm 4","expected":[10.2,9.6],"passed":true},{"actual":[13.0,12.3],"check":"storm 5","expected":[13.0,12.3],"passed":true},{"actual":[3.5,3.3],"check":"storm 6","expected":[3.5,3.3],"passed":true},{"actual":[6.0,4.0],"check":"storm 9","expected":[6.0,5.8],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"storm 0\", \"actual\": [6.0, 5.2], \"expected\": [6.0, 5.2], \"passed\": true}, {\"check\": \"storm 1\", \"actual\": [5.2, 5.0], \"expected\": [5.2, 5.0], \"passed\": true}, {\"check\": \"storm 2\", \"actual\": [6.5, 5.7], \"expected\": [6.5, 5.7], \"passed\": true}, {\"check\": \"storm 3\", \"actual\": [13.2, 12.8], \"expected\": [13.2, 12.8], \"passed\": true}, {\"check\": \"storm 4\", \"actual\": [10.2, 9.6], \"expected\": [10.2, 9.6], \"passed\": true}, {\"check\": \"storm 5\", \"actual\": [13.0, 12.3], \"expected\": [13.0, 12.3], \"passed\": true}, {\"check\": \"storm 6\", \"actual\": [3.5, 3.3], \"expected\": [3.5, 3.3], \"passed\": true}, {\"check\": \"storm 9\", \"actual\": [6.0, 4.0], \"expected\": [6.0, 5.8], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.312,"exit_code":0,"observations":[{"actual":[6.0,5.2],"check":"storm 0","expected":[6.0,5.2],"passed":true},{"actual":[5.2,5.0],"check":"storm 1","expected":[5.2,5.0],"passed":true},{"actual":[6.5,5.7],"check":"storm 2","expected":[6.5,5.7],"passed":true},{"actual":[13.2,12.8],"check":"storm 3","expected":[13.2,12.8],"passed":true},{"actual":[10.2,9.6],"check":"storm 4","expected":[10.2,9.6],"passed":true},{"actual":[13.0,12.3],"check":"storm 5","expected":[13.0,12.3],"passed":true},{"actual":[3.5,3.3],"check":"storm 6","expected":[3.5,3.3],"passed":true},{"actual":[6.0,5.8],"check":"storm 9","expected":[6.0,5.8],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"storm 0\", \"actual\": [6.0, 5.2], \"expected\": [6.0, 5.2], \"passed\": true}, {\"check\": \"storm 1\", \"actual\": [5.2, 5.0], \"expected\": [5.2, 5.0], \"passed\": true}, {\"check\": \"storm 2\", \"actual\": [6.5, 5.7], \"expected\": [6.5, 5.7], \"passed\": true}, {\"check\": \"storm 3\", \"actual\": [13.2, 12.8], \"expected\": [13.2, 12.8], \"passed\": true}, {\"check\": \"storm 4\", \"actual\": [10.2, 9.6], \"expected\": [10.2, 9.6], \"passed\": true}, {\"check\": \"storm 5\", \"actual\": [13.0, 12.3], \"expected\": [13.0, 12.3], \"passed\": true}, {\"check\": \"storm 6\", \"actual\": [3.5, 3.3], \"expected\": [3.5, 3.3], \"passed\": true}, {\"check\": \"storm 9\", \"actual\": [6.0, 5.8], \"expected\": [6.0, 5.8], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}