{"abstract":"Stations with exactly the minimum number of residuals get no correction.","category":"Seismic magnitude estimation","checks":8,"contract":"events are [station, station magnitude, network magnitude]. Residual = station - network; residuals with |r| > 1.0 are discarded (exactly 1.0 kept). A station with at least min_n kept residuals gets correction = -mean(kept) rounded 0.01, otherwise 0.0. Return [[station, correction, kept count]] sorted by station.","contract_signature":"events, min_n","evaluation_group":"w2-seismic_magnitude_estimation-station-correction","failed_approach":"Hard-coding a two-residual minimum ignores the configured min_n.","family":"w2-seismic_magnitude_estimation-station-correction-minimum-residual-count","id":"FA-71766","implementations":{"attempt":{"sha256":"f11b3bc95a6fdd5a13ec1c0ddb985e1b97043412409d0a33aebfdea548146c59","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events, min_n):\n    res = {}\n    for st, sm, nm in events:\n        r = round(sm - nm, 2)\n        res.setdefault(st, [])\n        if abs(r) <= 1.0:\n            res[st].append(r)\n    out = []\n    for st in sorted(res):\n        kept = res[st]\n        corr = round(-sum(kept) / len(kept), 2) if len(kept) >= 2 else 0.0\n        out.append([st, corr + 0.0, len(kept)])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['update 0', [[['ABC', 4.08, 2.88], ['JKL', 4.17, 4.57], ['GHI', 2.75, 1.55], ['ABC', 1.69, 2.09], ['GHI', 4.14, 4.54], ['DEF', 1.62, 1.42], ['ABC', 4.95, 3.75]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', 0.0, 1], ['JKL', 0.0, 1]]], ['update 1', [[['JKL', 3.77, 3.87], ['JKL', 1.13, 1.53], ['GHI', 4.95, 4.95], ['JKL', 2.75, 2.55]], 2], [['GHI', 0.0, 1], ['JKL', 0.1, 3]]], ['update 2', [[['ABC', 4.36, 5.76], ['DEF', 1.34, 1.74]], 2], [['ABC', 0.0, 0], ['DEF', 0.0, 1]]], ['update 3', [[['GHI', 3.9, 4.3], ['ABC', 3.21, 3.61], ['JKL', 3.44, 2.24], ['GHI', 1.49, 0.99], ['ABC', 2.92, 2.92], ['ABC', 1.35, 0.85], ['JKL', 3.83, 3.33], ['JKL', 4.34, 5.74], ['GHI', 2.74, 2.54], ['JKL', 4.01, 3.81]], 2], [['ABC', -0.03, 3], ['GHI', -0.1, 3], ['JKL', -0.35, 2]]], ['update 4', [[['ABC', 4.03, 5.43], ['GHI', 1.35, 1.15]], 2], [['ABC', 0.0, 0], ['GHI', 0.0, 1]]], ['update 5', [[['ABC', 3.0, 2.8], ['DEF', 3.69, 3.79], ['GHI', 2.6, 2.1], ['ABC', 3.35, 2.85], ['GHI', 1.85, 2.25], ['DEF', 3.27, 3.27], ['GHI', 4.54, 4.54], ['GHI', 4.14, 3.64], ['ABC', 2.9, 4.3], ['DEF', 4.18, 4.18], ['ABC', 2.74, 2.84]], 3], [['ABC', -0.2, 3], ['DEF', 0.03, 3], ['GHI', -0.15, 4]]], ['update 6', [[['JKL', 4.59, 4.09], ['DEF', 4.81, 6.21], ['JKL', 4.33, 4.33], ['DEF', 2.75, 2.85], ['DEF', 3.37, 4.77], ['DEF', 4.94, 5.04], ['ABC', 2.58, 2.38], ['DEF', 4.52, 5.92], ['JKL', 1.3, 1.3]], 2], [['ABC', 0.0, 1], ['DEF', 0.1, 2], ['JKL', -0.17, 3]]], ['update 11', [[['ABC', 3.64, 2.44], ['DEF', 3.65, 2.45], ['GHI', 2.3, 2.7], ['JKL', 1.52, 1.62], ['JKL', 2.79, 2.59], ['JKL', 3.93, 4.33], ['DEF', 4.75, 4.75], ['ABC', 1.64, 1.14], ['DEF', 4.17, 4.57], ['GHI', 2.86, 1.66]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 2], ['GHI', 0.0, 1], ['JKL', 0.1, 3]]]], [['update 7', [[['GHI', 3.12, 4.52], ['DEF', 4.64, 4.64], ['JKL', 3.82, 4.22], ['ABC', 1.25, 1.35], ['ABC', 2.71, 2.51], ['DEF', 3.36, 3.76]], 3], [['ABC', 0.0, 2], ['DEF', 0.0, 2], ['GHI', 0.0, 0], ['JKL', 0.0, 1]]], ['update 8', [[['DEF', 1.07, -0.13], ['ABC', 1.63, 3.03], ['ABC', 1.47, 1.27]], 2], [['ABC', 0.0, 1], ['DEF', 0.0, 0]]], ['update 9', [[['JKL', 2.72, 2.72], ['GHI', 1.89, 1.89], ['GHI', 4.29, 4.29]], 3], [['GHI', 0.0, 2], ['JKL', 0.0, 1]]], ['update 10', [[['GHI', 2.55, 3.95], ['GHI', 4.57, 4.67], ['DEF', 2.95, 4.35]], 2], [['DEF', 0.0, 0], ['GHI', 0.0, 1]]], ['update 11', [[['ABC', 3.64, 2.44], ['DEF', 3.65, 2.45], ['GHI', 2.3, 2.7], ['JKL', 1.52, 1.62], ['JKL', 2.79, 2.59], ['JKL', 3.93, 4.33], ['DEF', 4.75, 4.75], ['ABC', 1.64, 1.14], ['DEF', 4.17, 4.57], ['GHI', 2.86, 1.66]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 2], ['GHI', 0.0, 1], ['JKL', 0.1, 3]]], ['update 12', [[['DEF', 4.64, 4.14], ['ABC', 3.51, 3.91], ['GHI', 2.69, 1.49], ['ABC', 3.3, 3.7], ['DEF', 3.3, 3.3], ['JKL', 3.68, 5.08], ['GHI', 2.34, 2.74], ['ABC', 4.82, 6.22], ['ABC', 4.34, 4.34], ['JKL', 3.8, 2.6]], 3], [['ABC', 0.27, 3], ['DEF', 0.0, 2], ['GHI', 0.0, 1], ['JKL', 0.0, 0]]], ['update 13', [[['JKL', 1.73, 3.13], ['DEF', 4.48, 4.48], ['GHI', 2.01, 0.81], ['ABC', 1.82, 1.62], ['DEF', 1.44, 0.24], ['JKL', 2.06, 2.16]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', 0.0, 0], ['JKL', 0.0, 1]]], ['update 27', [[['GHI', 2.42, 2.42], ['DEF', 3.85, 5.25], ['GHI', 1.72, 0.52], ['DEF', 4.97, 5.07], ['DEF', 2.31, 2.11], ['ABC', 1.12, -0.08]], 3], [['ABC', 0.0, 0], ['DEF', 0.0, 2], ['GHI', 0.0, 1]]]], [['update 14', [[['JKL', 4.27, 4.37], ['DEF', 4.2, 4.2], ['ABC', 3.88, 4.28], ['DEF', 3.23, 3.03], ['ABC', 4.72, 5.12], ['DEF', 2.22, 1.72]], 2], [['ABC', 0.4, 2], ['DEF', -0.23, 3], ['JKL', 0.0, 1]]], ['update 15', [[['DEF', 4.66, 4.46], ['JKL', 1.26, 0.76], ['GHI', 2.61, 3.01], ['GHI', 3.72, 4.12], ['ABC', 1.11, 1.21]], 2], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', 0.4, 2], ['JKL', 0.0, 1]]], ['update 16', [[['GHI', 4.77, 4.77], ['DEF', 3.19, 4.59], ['GHI', 2.0, 2.4], ['GHI', 1.56, 1.66], ['JKL', 3.74, 2.54], ['GHI', 3.83, 4.23], ['JKL', 4.29, 3.79], ['JKL', 4.44, 4.54], ['GHI', 3.59, 3.39], ['JKL', 3.34, 4.74], ['GHI', 2.05, 1.85]], 3], [['DEF', 0.0, 0], ['GHI', 0.08, 6], ['JKL', 0.0, 2]]], ['update 17', [[['GHI', 1.47, 1.57], ['ABC', 3.36, 3.16], ['DEF', 4.06, 5.46], ['DEF', 2.41, 2.21]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', 0.0, 1]]], ['update 18', [[['GHI', 3.8, 3.6], ['GHI', 4.49, 5.89], ['DEF', 3.04, 1.84]], 2], [['DEF', 0.0, 0], ['GHI', 0.0, 1]]], ['update 19', [[['ABC', 4.48, 4.48], ['ABC', 4.46, 4.46], ['ABC', 2.5, 2.0], ['GHI', 3.14, 2.94], ['GHI', 3.25, 4.65], ['GHI', 4.42, 4.82], ['JKL', 4.58, 5.98], ['ABC', 2.72, 1.52], ['DEF', 4.99, 4.79], ['ABC', 3.34, 3.14], ['ABC', 3.13, 3.53], ['ABC', 2.09, 2.09]], 2], [['ABC', -0.05, 6], ['DEF', 0.0, 1], ['GHI', 0.1, 2], ['JKL', 0.0, 0]]], ['update 20', [[['JKL', 1.82, 0.62], ['GHI', 1.65, 1.45], ['ABC', 4.02, 3.82], ['JKL', 2.38, 2.78], ['JKL', 2.81, 2.81], ['ABC', 1.07, -0.13], ['JKL', 3.47, 3.87], ['GHI', 3.31, 3.11], ['DEF', 1.29, 1.29], ['JKL', 2.27, 3.67], ['ABC', 4.64, 3.44]], 2], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', -0.2, 2], ['JKL', 0.27, 3]]], ['update 23', [[['GHI', 4.6, 4.4], ['DEF', 2.07, 3.47], ['JKL', 4.75, 4.55], ['JKL', 1.31, 2.71], ['ABC', 4.84, 6.24], ['GHI', 1.4, 1.8], ['DEF', 3.5, 3.9], ['DEF', 2.03, 1.53], ['GHI', 3.07, 3.17], ['JKL', 2.49, 1.29], ['GHI', 4.66, 3.46], ['ABC', 1.36, 1.46]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 2], ['GHI', 0.1, 3], ['JKL', 0.0, 1]]]], [['update 12', [[['DEF', 4.64, 4.14], ['ABC', 3.51, 3.91], ['GHI', 2.69, 1.49], ['ABC', 3.3, 3.7], ['DEF', 3.3, 3.3], ['JKL', 3.68, 5.08], ['GHI', 2.34, 2.74], ['ABC', 4.82, 6.22], ['ABC', 4.34, 4.34], ['JKL', 3.8, 2.6]], 3], [['ABC', 0.27, 3], ['DEF', 0.0, 2], ['GHI', 0.0, 1], ['JKL', 0.0, 0]]], ['update 21', [[['JKL', 3.79, 3.59], ['ABC', 2.38, 2.38], ['GHI', 1.36, 2.76], ['JKL', 3.9, 2.7], ['GHI', 4.16, 3.66], ['JKL', 1.89, 0.69], ['GHI', 3.82, 3.82], ['DEF', 1.18, 1.58], ['ABC', 3.3, 3.1], ['ABC', 2.96, 2.96], ['JKL', 3.86, 3.66]], 2], [['ABC', -0.07, 3], ['DEF', 0.0, 1], ['GHI', -0.25, 2], ['JKL', -0.2, 2]]], ['update 22', [[['GHI', 4.5, 4.9], ['GHI', 1.1, 0.9], ['ABC', 2.26, 2.26], ['DEF', 4.3, 4.1], ['ABC', 2.38, 1.88]], 2], [['ABC', -0.25, 2], ['DEF', 0.0, 1], ['GHI', 0.1, 2]]], ['update 23', [[['GHI', 4.6, 4.4], ['DEF', 2.07, 3.47], ['JKL', 4.75, 4.55], ['JKL', 1.31, 2.71], ['ABC', 4.84, 6.24], ['GHI', 1.4, 1.8], ['DEF', 3.5, 3.9], ['DEF', 2.03, 1.53], ['GHI', 3.07, 3.17], ['JKL', 2.49, 1.29], ['GHI', 4.66, 3.46], ['ABC', 1.36, 1.46]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 2], ['GHI', 0.1, 3], ['JKL', 0.0, 1]]], ['update 24', [[['ABC', 3.1, 2.6], ['ABC', 4.76, 4.86], ['ABC', 4.5, 3.3], ['DEF', 4.19, 2.99]], 3], [['ABC', 0.0, 2], ['DEF', 0.0, 0]]], ['update 25', [[['GHI', 1.14, 1.14], ['JKL', 1.52, 2.92], ['JKL', 4.34, 4.74], ['GHI', 4.19, 5.59]], 3], [['GHI', 0.0, 1], ['JKL', 0.0, 1]]], ['update 26', [[['ABC', 2.41, 2.41], ['GHI', 1.97, 3.37], ['DEF', 1.7, 1.8]], 2], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', 0.0, 0]]], ['update 27', [[['GHI', 2.42, 2.42], ['DEF', 3.85, 5.25], ['GHI', 1.72, 0.52], ['DEF', 4.97, 5.07], ['DEF', 2.31, 2.11], ['ABC', 1.12, -0.08]], 3], [['ABC', 0.0, 0], ['DEF', 0.0, 2], ['GHI', 0.0, 1]]]], [['update 0', [[['ABC', 4.08, 2.88], ['JKL', 4.17, 4.57], ['GHI', 2.75, 1.55], ['ABC', 1.69, 2.09], ['GHI', 4.14, 4.54], ['DEF', 1.62, 1.42], ['ABC', 4.95, 3.75]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', 0.0, 1], ['JKL', 0.0, 1]]], ['update 1', [[['JKL', 3.77, 3.87], ['JKL', 1.13, 1.53], ['GHI', 4.95, 4.95], ['JKL', 2.75, 2.55]], 2], [['GHI', 0.0, 1], ['JKL', 0.1, 3]]], ['update 2', [[['ABC', 4.36, 5.76], ['DEF', 1.34, 1.74]], 2], [['ABC', 0.0, 0], ['DEF', 0.0, 1]]], ['update 7', [[['GHI', 3.12, 4.52], ['DEF', 4.64, 4.64], ['JKL', 3.82, 4.22], ['ABC', 1.25, 1.35], ['ABC', 2.71, 2.51], ['DEF', 3.36, 3.76]], 3], [['ABC', 0.0, 2], ['DEF', 0.0, 2], ['GHI', 0.0, 0], ['JKL', 0.0, 1]]], ['update 28', [[['GHI', 2.19, 1.69], ['GHI', 3.1, 2.9], ['DEF', 1.51, 2.91], ['ABC', 3.68, 3.78], ['DEF', 1.85, 3.25], ['DEF', 4.85, 6.25]], 2], [['ABC', 0.0, 1], ['DEF', 0.0, 0], ['GHI', -0.35, 2]]], ['update 29', [[['DEF', 1.13, 2.53], ['DEF', 4.46, 4.46], ['DEF', 1.47, 1.47], ['ABC', 2.52, 3.92], ['ABC', 4.28, 4.08], ['DEF', 2.6, 2.7], ['ABC', 3.62, 3.42], ['GHI', 1.48, 1.48], ['GHI', 2.07, 1.87]], 2], [['ABC', -0.2, 2], ['DEF', 0.03, 3], ['GHI', -0.1, 2]]], ['exactly one-unit residual', [[['ABC', 4.0, 3.0], ['ABC', 3.5, 3.4], ['ABC', 3.0, 3.1]], 2], [['ABC', -0.33, 3]]], ['minimum count', [[['XYZ', 2.0, 2.3], ['XYZ', 2.2, 2.4], ['QRS', 1.0, 1.5]], 2], [['QRS', 0.0, 1], ['XYZ', 0.25, 2]]]]]\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":"018bdbeceaa0d2fadcfce71bf290c4b81d2301c52152593c740d071d7b0e2119","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events, min_n):\n    res = {}\n    for st, sm, nm in events:\n        r = round(sm - nm, 2)\n        res.setdefault(st, [])\n        if abs(r) <= 1.0:\n            res[st].append(r)\n    out = []\n    for st in sorted(res):\n        kept = res[st]\n        corr = round(-sum(kept) / len(kept), 2) if len(kept) > min_n else 0.0\n        out.append([st, corr + 0.0, len(kept)])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['update 0', [[['ABC', 4.08, 2.88], ['JKL', 4.17, 4.57], ['GHI', 2.75, 1.55], ['ABC', 1.69, 2.09], ['GHI', 4.14, 4.54], ['DEF', 1.62, 1.42], ['ABC', 4.95, 3.75]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', 0.0, 1], ['JKL', 0.0, 1]]], ['update 1', [[['JKL', 3.77, 3.87], ['JKL', 1.13, 1.53], ['GHI', 4.95, 4.95], ['JKL', 2.75, 2.55]], 2], [['GHI', 0.0, 1], ['JKL', 0.1, 3]]], ['update 2', [[['ABC', 4.36, 5.76], ['DEF', 1.34, 1.74]], 2], [['ABC', 0.0, 0], ['DEF', 0.0, 1]]], ['update 3', [[['GHI', 3.9, 4.3], ['ABC', 3.21, 3.61], ['JKL', 3.44, 2.24], ['GHI', 1.49, 0.99], ['ABC', 2.92, 2.92], ['ABC', 1.35, 0.85], ['JKL', 3.83, 3.33], ['JKL', 4.34, 5.74], ['GHI', 2.74, 2.54], ['JKL', 4.01, 3.81]], 2], [['ABC', -0.03, 3], ['GHI', -0.1, 3], ['JKL', -0.35, 2]]], ['update 4', [[['ABC', 4.03, 5.43], ['GHI', 1.35, 1.15]], 2], [['ABC', 0.0, 0], ['GHI', 0.0, 1]]], ['update 5', [[['ABC', 3.0, 2.8], ['DEF', 3.69, 3.79], ['GHI', 2.6, 2.1], ['ABC', 3.35, 2.85], ['GHI', 1.85, 2.25], ['DEF', 3.27, 3.27], ['GHI', 4.54, 4.54], ['GHI', 4.14, 3.64], ['ABC', 2.9, 4.3], ['DEF', 4.18, 4.18], ['ABC', 2.74, 2.84]], 3], [['ABC', -0.2, 3], ['DEF', 0.03, 3], ['GHI', -0.15, 4]]], ['update 6', [[['JKL', 4.59, 4.09], ['DEF', 4.81, 6.21], ['JKL', 4.33, 4.33], ['DEF', 2.75, 2.85], ['DEF', 3.37, 4.77], ['DEF', 4.94, 5.04], ['ABC', 2.58, 2.38], ['DEF', 4.52, 5.92], ['JKL', 1.3, 1.3]], 2], [['ABC', 0.0, 1], ['DEF', 0.1, 2], ['JKL', -0.17, 3]]], ['update 11', [[['ABC', 3.64, 2.44], ['DEF', 3.65, 2.45], ['GHI', 2.3, 2.7], ['JKL', 1.52, 1.62], ['JKL', 2.79, 2.59], ['JKL', 3.93, 4.33], ['DEF', 4.75, 4.75], ['ABC', 1.64, 1.14], ['DEF', 4.17, 4.57], ['GHI', 2.86, 1.66]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 2], ['GHI', 0.0, 1], ['JKL', 0.1, 3]]]], [['update 7', [[['GHI', 3.12, 4.52], ['DEF', 4.64, 4.64], ['JKL', 3.82, 4.22], ['ABC', 1.25, 1.35], ['ABC', 2.71, 2.51], ['DEF', 3.36, 3.76]], 3], [['ABC', 0.0, 2], ['DEF', 0.0, 2], ['GHI', 0.0, 0], ['JKL', 0.0, 1]]], ['update 8', [[['DEF', 1.07, -0.13], ['ABC', 1.63, 3.03], ['ABC', 1.47, 1.27]], 2], [['ABC', 0.0, 1], ['DEF', 0.0, 0]]], ['update 9', [[['JKL', 2.72, 2.72], ['GHI', 1.89, 1.89], ['GHI', 4.29, 4.29]], 3], [['GHI', 0.0, 2], ['JKL', 0.0, 1]]], ['update 10', [[['GHI', 2.55, 3.95], ['GHI', 4.57, 4.67], ['DEF', 2.95, 4.35]], 2], [['DEF', 0.0, 0], ['GHI', 0.0, 1]]], ['update 11', [[['ABC', 3.64, 2.44], ['DEF', 3.65, 2.45], ['GHI', 2.3, 2.7], ['JKL', 1.52, 1.62], ['JKL', 2.79, 2.59], ['JKL', 3.93, 4.33], ['DEF', 4.75, 4.75], ['ABC', 1.64, 1.14], ['DEF', 4.17, 4.57], ['GHI', 2.86, 1.66]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 2], ['GHI', 0.0, 1], ['JKL', 0.1, 3]]], ['update 12', [[['DEF', 4.64, 4.14], ['ABC', 3.51, 3.91], ['GHI', 2.69, 1.49], ['ABC', 3.3, 3.7], ['DEF', 3.3, 3.3], ['JKL', 3.68, 5.08], ['GHI', 2.34, 2.74], ['ABC', 4.82, 6.22], ['ABC', 4.34, 4.34], ['JKL', 3.8, 2.6]], 3], [['ABC', 0.27, 3], ['DEF', 0.0, 2], ['GHI', 0.0, 1], ['JKL', 0.0, 0]]], ['update 13', [[['JKL', 1.73, 3.13], ['DEF', 4.48, 4.48], ['GHI', 2.01, 0.81], ['ABC', 1.82, 1.62], ['DEF', 1.44, 0.24], ['JKL', 2.06, 2.16]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', 0.0, 0], ['JKL', 0.0, 1]]], ['update 27', [[['GHI', 2.42, 2.42], ['DEF', 3.85, 5.25], ['GHI', 1.72, 0.52], ['DEF', 4.97, 5.07], ['DEF', 2.31, 2.11], ['ABC', 1.12, -0.08]], 3], [['ABC', 0.0, 0], ['DEF', 0.0, 2], ['GHI', 0.0, 1]]]], [['update 14', [[['JKL', 4.27, 4.37], ['DEF', 4.2, 4.2], ['ABC', 3.88, 4.28], ['DEF', 3.23, 3.03], ['ABC', 4.72, 5.12], ['DEF', 2.22, 1.72]], 2], [['ABC', 0.4, 2], ['DEF', -0.23, 3], ['JKL', 0.0, 1]]], ['update 15', [[['DEF', 4.66, 4.46], ['JKL', 1.26, 0.76], ['GHI', 2.61, 3.01], ['GHI', 3.72, 4.12], ['ABC', 1.11, 1.21]], 2], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', 0.4, 2], ['JKL', 0.0, 1]]], ['update 16', [[['GHI', 4.77, 4.77], ['DEF', 3.19, 4.59], ['GHI', 2.0, 2.4], ['GHI', 1.56, 1.66], ['JKL', 3.74, 2.54], ['GHI', 3.83, 4.23], ['JKL', 4.29, 3.79], ['JKL', 4.44, 4.54], ['GHI', 3.59, 3.39], ['JKL', 3.34, 4.74], ['GHI', 2.05, 1.85]], 3], [['DEF', 0.0, 0], ['GHI', 0.08, 6], ['JKL', 0.0, 2]]], ['update 17', [[['GHI', 1.47, 1.57], ['ABC', 3.36, 3.16], ['DEF', 4.06, 5.46], ['DEF', 2.41, 2.21]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', 0.0, 1]]], ['update 18', [[['GHI', 3.8, 3.6], ['GHI', 4.49, 5.89], ['DEF', 3.04, 1.84]], 2], [['DEF', 0.0, 0], ['GHI', 0.0, 1]]], ['update 19', [[['ABC', 4.48, 4.48], ['ABC', 4.46, 4.46], ['ABC', 2.5, 2.0], ['GHI', 3.14, 2.94], ['GHI', 3.25, 4.65], ['GHI', 4.42, 4.82], ['JKL', 4.58, 5.98], ['ABC', 2.72, 1.52], ['DEF', 4.99, 4.79], ['ABC', 3.34, 3.14], ['ABC', 3.13, 3.53], ['ABC', 2.09, 2.09]], 2], [['ABC', -0.05, 6], ['DEF', 0.0, 1], ['GHI', 0.1, 2], ['JKL', 0.0, 0]]], ['update 20', [[['JKL', 1.82, 0.62], ['GHI', 1.65, 1.45], ['ABC', 4.02, 3.82], ['JKL', 2.38, 2.78], ['JKL', 2.81, 2.81], ['ABC', 1.07, -0.13], ['JKL', 3.47, 3.87], ['GHI', 3.31, 3.11], ['DEF', 1.29, 1.29], ['JKL', 2.27, 3.67], ['ABC', 4.64, 3.44]], 2], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', -0.2, 2], ['JKL', 0.27, 3]]], ['update 23', [[['GHI', 4.6, 4.4], ['DEF', 2.07, 3.47], ['JKL', 4.75, 4.55], ['JKL', 1.31, 2.71], ['ABC', 4.84, 6.24], ['GHI', 1.4, 1.8], ['DEF', 3.5, 3.9], ['DEF', 2.03, 1.53], ['GHI', 3.07, 3.17], ['JKL', 2.49, 1.29], ['GHI', 4.66, 3.46], ['ABC', 1.36, 1.46]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 2], ['GHI', 0.1, 3], ['JKL', 0.0, 1]]]], [['update 12', [[['DEF', 4.64, 4.14], ['ABC', 3.51, 3.91], ['GHI', 2.69, 1.49], ['ABC', 3.3, 3.7], ['DEF', 3.3, 3.3], ['JKL', 3.68, 5.08], ['GHI', 2.34, 2.74], ['ABC', 4.82, 6.22], ['ABC', 4.34, 4.34], ['JKL', 3.8, 2.6]], 3], [['ABC', 0.27, 3], ['DEF', 0.0, 2], ['GHI', 0.0, 1], ['JKL', 0.0, 0]]], ['update 21', [[['JKL', 3.79, 3.59], ['ABC', 2.38, 2.38], ['GHI', 1.36, 2.76], ['JKL', 3.9, 2.7], ['GHI', 4.16, 3.66], ['JKL', 1.89, 0.69], ['GHI', 3.82, 3.82], ['DEF', 1.18, 1.58], ['ABC', 3.3, 3.1], ['ABC', 2.96, 2.96], ['JKL', 3.86, 3.66]], 2], [['ABC', -0.07, 3], ['DEF', 0.0, 1], ['GHI', -0.25, 2], ['JKL', -0.2, 2]]], ['update 22', [[['GHI', 4.5, 4.9], ['GHI', 1.1, 0.9], ['ABC', 2.26, 2.26], ['DEF', 4.3, 4.1], ['ABC', 2.38, 1.88]], 2], [['ABC', -0.25, 2], ['DEF', 0.0, 1], ['GHI', 0.1, 2]]], ['update 23', [[['GHI', 4.6, 4.4], ['DEF', 2.07, 3.47], ['JKL', 4.75, 4.55], ['JKL', 1.31, 2.71], ['ABC', 4.84, 6.24], ['GHI', 1.4, 1.8], ['DEF', 3.5, 3.9], ['DEF', 2.03, 1.53], ['GHI', 3.07, 3.17], ['JKL', 2.49, 1.29], ['GHI', 4.66, 3.46], ['ABC', 1.36, 1.46]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 2], ['GHI', 0.1, 3], ['JKL', 0.0, 1]]], ['update 24', [[['ABC', 3.1, 2.6], ['ABC', 4.76, 4.86], ['ABC', 4.5, 3.3], ['DEF', 4.19, 2.99]], 3], [['ABC', 0.0, 2], ['DEF', 0.0, 0]]], ['update 25', [[['GHI', 1.14, 1.14], ['JKL', 1.52, 2.92], ['JKL', 4.34, 4.74], ['GHI', 4.19, 5.59]], 3], [['GHI', 0.0, 1], ['JKL', 0.0, 1]]], ['update 26', [[['ABC', 2.41, 2.41], ['GHI', 1.97, 3.37], ['DEF', 1.7, 1.8]], 2], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', 0.0, 0]]], ['update 27', [[['GHI', 2.42, 2.42], ['DEF', 3.85, 5.25], ['GHI', 1.72, 0.52], ['DEF', 4.97, 5.07], ['DEF', 2.31, 2.11], ['ABC', 1.12, -0.08]], 3], [['ABC', 0.0, 0], ['DEF', 0.0, 2], ['GHI', 0.0, 1]]]], [['update 0', [[['ABC', 4.08, 2.88], ['JKL', 4.17, 4.57], ['GHI', 2.75, 1.55], ['ABC', 1.69, 2.09], ['GHI', 4.14, 4.54], ['DEF', 1.62, 1.42], ['ABC', 4.95, 3.75]], 3], [['ABC', 0.0, 1], ['DEF', 0.0, 1], ['GHI', 0.0, 1], ['JKL', 0.0, 1]]], ['update 1', [[['JKL', 3.77, 3.87], ['JKL', 1.13, 1.53], ['GHI', 4.95, 4.95], ['JKL', 2.75, 2.55]], 2], [['GHI', 0.0, 1], ['JKL', 0.1, 3]]], ['update 2', [[['ABC', 4.36, 5.76], ['DEF', 1.34, 1.74]], 2], [['ABC', 0.0, 0], ['DEF', 0.0, 1]]], ['update 7', [[['GHI', 3.12, 4.52], ['DEF', 4.64, 4.64], ['JKL', 3.82, 4.22], ['ABC', 1.25, 1.35], ['ABC', 2.71, 2.51], ['DEF', 3.36, 3.76]], 3], [['ABC', 0.0, 2], ['DEF', 0.0, 2], ['GHI', 0.0, 0], ['JKL', 0.0, 1]]], ['update 28', [[['GHI', 2.19, 1.69], ['GHI', 3.1, 2.9], ['DEF', 1.51, 2.91], ['ABC', 3.68, 3.78], ['DEF', 1.85, 3.25], ['DEF', 4.85, 6.25]], 2], [['ABC', 0.0, 1], ['DEF', 0.0, 0], ['GHI', -0.35, 2]]], ['update 29', [[['DEF', 1.13, 2.53], ['DEF', 4.46, 4.46], ['DEF', 1.47, 1.47], ['ABC', 2.52, 3.92], ['ABC', 4.28, 4.08], ['DEF', 2.6, 2.7], ['ABC', 3.62, 3.42], ['GHI', 1.48, 1.48], ['GHI', 2.07, 1.87]], 2], [['ABC', -0.2, 2], ['DEF', 0.03, 3], ['GHI', -0.1, 2]]], ['exactly one-unit residual', [[['ABC', 4.0, 3.0], ['ABC', 3.5, 3.4], ['ABC', 3.0, 3.1]], 2], [['ABC', -0.33, 3]]], ['minimum count', [[['XYZ', 2.0, 2.3], ['XYZ', 2.2, 2.4], ['QRS', 1.0, 1.5]], 2], [['QRS', 0.0, 1], ['XYZ', 0.25, 2]]]]]\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 a seismological magnitude procedure; constants and tables are fixed by the contract and no claim of agency or 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-seismic_magnitude_estimation-station-correction-minimum-residual-count","generated_at":"2026-09-29T14:48:32.528848+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Station corrections remove site amplification bias from future station magnitudes.","root_cause":"The count requirement is exclusive.","sha256":"d8120db8693292da8f29ae1d9b9b9e2ad50dc02c8b2d62c172f1f80afe093e61","title":"Station magnitude correction update: minimum residual count · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":38.272,"exit_code":1,"observations":[{"actual":[["ABC",0.0,1],["DEF",0.0,1],["GHI",0.0,1],["JKL",0.0,1]],"check":"update 0","expected":[["ABC",0.0,1],["DEF",0.0,1],["GHI",0.0,1],["JKL",0.0,1]],"passed":true},{"actual":[["GHI",0.0,1],["JKL",0.1,3]],"check":"update 1","expected":[["GHI",0.0,1],["JKL",0.1,3]],"passed":true},{"actual":[["ABC",0.0,0],["DEF",0.0,1]],"check":"update 2","expected":[["ABC",0.0,0],["DEF",0.0,1]],"passed":true},{"actual":[["ABC",-0.03,3],["GHI",-0.1,3],["JKL",-0.35,2]],"check":"update 3","expected":[["ABC",-0.03,3],["GHI",-0.1,3],["JKL",-0.35,2]],"passed":true},{"actual":[["ABC",0.0,0],["GHI",0.0,1]],"check":"update 4","expected":[["ABC",0.0,0],["GHI",0.0,1]],"passed":true},{"actual":[["ABC",-0.2,3],["DEF",0.03,3],["GHI",-0.15,4]],"check":"update 5","expected":[["ABC",-0.2,3],["DEF",0.03,3],["GHI",-0.15,4]],"passed":true},{"actual":[["ABC",0.0,1],["DEF",0.1,2],["JKL",-0.17,3]],"check":"update 6","expected":[["ABC",0.0,1],["DEF",0.1,2],["JKL",-0.17,3]],"passed":true},{"actual":[["ABC",0.0,1],["DEF",0.2,2],["GHI",0.0,1],["JKL",0.1,3]],"check":"update 11","expected":[["ABC",0.0,1],["DEF",0.0,2],["GHI",0.0,1],["JKL",0.1,3]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"update 0\", \"actual\": [[\"ABC\", 0.0, 1], [\"DEF\", 0.0, 1], [\"GHI\", 0.0, 1], [\"JKL\", 0.0, 1]], \"expected\": [[\"ABC\", 0.0, 1], [\"DEF\", 0.0, 1], [\"GHI\", 0.0, 1], [\"JKL\", 0.0, 1]], \"passed\": true}, {\"check\": \"update 1\", \"actual\": [[\"GHI\", 0.0, 1], [\"JKL\", 0.1, 3]], \"expected\": [[\"GHI\", 0.0, 1], [\"JKL\", 0.1, 3]], \"passed\": true}, {\"check\": \"update 2\", \"actual\": [[\"ABC\", 0.0, 0], [\"DEF\", 0.0, 1]], \"expected\": [[\"ABC\", 0.0, 0], [\"DEF\", 0.0, 1]], \"passed\": true}, {\"check\": \"update 3\", \"actual\": [[\"ABC\", -0.03, 3], [\"GHI\", -0.1, 3], [\"JKL\", -0.35, 2]], \"expected\": [[\"ABC\", -0.03, 3], [\"GHI\", -0.1, 3], [\"JKL\", -0.35, 2]], \"passed\": true}, {\"check\": \"update 4\", \"actual\": [[\"ABC\", 0.0, 0], [\"GHI\", 0.0, 1]], \"expected\": [[\"ABC\", 0.0, 0], [\"GHI\", 0.0, 1]], \"passed\": true}, {\"check\": \"update 5\", \"actual\": [[\"ABC\", -0.2, 3], [\"DEF\", 0.03, 3], [\"GHI\", -0.15, 4]], \"expected\": [[\"ABC\", -0.2, 3], [\"DEF\", 0.03, 3], [\"GHI\", -0.15, 4]], \"passed\": true}, {\"check\": \"update 6\", \"actual\": [[\"ABC\", 0.0, 1], [\"DEF\", 0.1, 2], [\"JKL\", -0.17, 3]], \"expected\": [[\"ABC\", 0.0, 1], [\"DEF\", 0.1, 2], [\"JKL\", -0.17, 3]], \"passed\": true}, {\"check\": \"update 11\", \"actual\": [[\"ABC\", 0.0, 1], [\"DEF\", 0.2, 2], [\"GHI\", 0.0, 1], [\"JKL\", 0.1, 3]], \"expected\": [[\"ABC\", 0.0, 1], [\"DEF\", 0.0, 2], [\"GHI\", 0.0, 1], [\"JKL\", 0.1, 3]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.149,"exit_code":1,"observations":[{"actual":[["ABC",0.0,1],["DEF",0.0,1],["GHI",0.0,1],["JKL",0.0,1]],"check":"update 0","expected":[["ABC",0.0,1],["DEF",0.0,1],["GHI",0.0,1],["JKL",0.0,1]],"passed":true},{"actual":[["GHI",0.0,1],["JKL",0.1,3]],"check":"update 1","expected":[["GHI",0.0,1],["JKL",0.1,3]],"passed":true},{"actual":[["ABC",0.0,0],["DEF",0.0,1]],"check":"update 2","expected":[["ABC",0.0,0],["DEF",0.0,1]],"passed":true},{"actual":[["ABC",-0.03,3],["GHI",-0.1,3],["JKL",0.0,2]],"check":"update 3","expected":[["ABC",-0.03,3],["GHI",-0.1,3],["JKL",-0.35,2]],"passed":false},{"actual":[["ABC",0.0,0],["GHI",0.0,1]],"check":"update 4","expected":[["ABC",0.0,0],["GHI",0.0,1]],"passed":true},{"actual":[["ABC",0.0,3],["DEF",0.0,3],["GHI",-0.15,4]],"check":"update 5","expected":[["ABC",-0.2,3],["DEF",0.03,3],["GHI",-0.15,4]],"passed":false},{"actual":[["ABC",0.0,1],["DEF",0.0,2],["JKL",-0.17,3]],"check":"update 6","expected":[["ABC",0.0,1],["DEF",0.1,2],["JKL",-0.17,3]],"passed":false},{"actual":[["ABC",0.0,1],["DEF",0.0,2],["GHI",0.0,1],["JKL",0.0,3]],"check":"update 11","expected":[["ABC",0.0,1],["DEF",0.0,2],["GHI",0.0,1],["JKL",0.1,3]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"update 0\", \"actual\": [[\"ABC\", 0.0, 1], [\"DEF\", 0.0, 1], [\"GHI\", 0.0, 1], [\"JKL\", 0.0, 1]], \"expected\": [[\"ABC\", 0.0, 1], [\"DEF\", 0.0, 1], [\"GHI\", 0.0, 1], [\"JKL\", 0.0, 1]], \"passed\": true}, {\"check\": \"update 1\", \"actual\": [[\"GHI\", 0.0, 1], [\"JKL\", 0.1, 3]], \"expected\": [[\"GHI\", 0.0, 1], [\"JKL\", 0.1, 3]], \"passed\": true}, {\"check\": \"update 2\", \"actual\": [[\"ABC\", 0.0, 0], [\"DEF\", 0.0, 1]], \"expected\": [[\"ABC\", 0.0, 0], [\"DEF\", 0.0, 1]], \"passed\": true}, {\"check\": \"update 3\", \"actual\": [[\"ABC\", -0.03, 3], [\"GHI\", -0.1, 3], [\"JKL\", 0.0, 2]], \"expected\": [[\"ABC\", -0.03, 3], [\"GHI\", -0.1, 3], [\"JKL\", -0.35, 2]], \"passed\": false}, {\"check\": \"update 4\", \"actual\": [[\"ABC\", 0.0, 0], [\"GHI\", 0.0, 1]], \"expected\": [[\"ABC\", 0.0, 0], [\"GHI\", 0.0, 1]], \"passed\": true}, {\"check\": \"update 5\", \"actual\": [[\"ABC\", 0.0, 3], [\"DEF\", 0.0, 3], [\"GHI\", -0.15, 4]], \"expected\": [[\"ABC\", -0.2, 3], [\"DEF\", 0.03, 3], [\"GHI\", -0.15, 4]], \"passed\": false}, {\"check\": \"update 6\", \"actual\": [[\"ABC\", 0.0, 1], [\"DEF\", 0.0, 2], [\"JKL\", -0.17, 3]], \"expected\": [[\"ABC\", 0.0, 1], [\"DEF\", 0.1, 2], [\"JKL\", -0.17, 3]], \"passed\": false}, {\"check\": \"update 11\", \"actual\": [[\"ABC\", 0.0, 1], [\"DEF\", 0.0, 2], [\"GHI\", 0.0, 1], [\"JKL\", 0.0, 3]], \"expected\": [[\"ABC\", 0.0, 1], [\"DEF\", 0.0, 2], [\"GHI\", 0.0, 1], [\"JKL\", 0.1, 3]], \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}