{"abstract":"Axis choice flips for distributions with outliers.","category":"Collision detection broadphase","checks":8,"contract":"solve(boxes): 3D sweep-and-prune axis selection. Boxes [id,minx,miny,minz,maxx,maxy,maxz]. Pick the axis with the largest population variance of box centres (first axis on ties), then order ids by (min on that axis, id). Return [axis, variance rounded to 6, ordered ids].","contract_signature":"boxes","evaluation_group":"w2-collision_detection_broadphase-sap-axis-variance","failed_approach":"Summing signed deviations always yields zero.","family":"w2-collision_detection_broadphase-sap-axis-variance-squared-deviation","id":"FA-87661","implementations":{"attempt":{"sha256":"1e95164442d705cc21e43387ca4bb2b844e3fd1d0dc12e8c476ff4089fa231e8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(boxes):\n    n = len(boxes)\n    best_axis, best_var = 0, -1.0\n    for ax in (0, 1, 2):\n        cs_ = [(b[1 + ax] + b[4 + ax]) / 2 for b in boxes]\n        mean = sum(cs_) / n\n        var = sum((c - mean) for c in cs_) / n\n        if var > best_var:\n            best_axis, best_var = ax, var\n    order = [b[0] for b in sorted(boxes, key=lambda b: (b[1 + best_axis], b[0]))]\n    return [best_axis, round(best_var, 6), order]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[[3, 0, 20, 0, 4, 30, 3], [32, 3, 28, 14, 8, 34, 24], [6, 3, 8, 2, 14, 9, 12], [34, 10, 9, 20, 19, 20, 20]]], [1, 77.0625, [6, 34, 3, 32]]], [[[[3, 2, 1, 9, 4, 2, 16], [22, 0, 0, 10, 2, 2, 20], [31, 1, 0, 1, 12, 6, 8], [16, 1, 0, 9, 9, 10, 16]]], [2, 15.671875, [31, 3, 16, 22]]], [[[[8, 0, 22, 17, 8, 31, 23], [14, 1, 2, 25, 1, 9, 25], [38, 0, 25, 6, 7, 35, 17], [36, 1, 11, 9, 11, 19, 12]]], [1, 93.8125, [14, 36, 8, 38]]], [[[[28, 12, 13, 1, 14, 25, 5], [36, 10, 28, 0, 10, 32, 6], [17, 4, 16, 0, 7, 28, 9], [26, 2, 16, 0, 14, 27, 3], [20, 6, 12, 2, 14, 19, 13], [38, 17, 9, 0, 22, 18, 3]]], [1, 28.229167, [38, 20, 28, 17, 26, 36]]], [[[[5, 0, 17, 9, 2, 25, 9], [7, 2, 24, 1, 2, 35, 9], [17, 1, 19, 13, 4, 27, 25]]], [2, 34.666667, [7, 5, 17]]], [[[[25, 10, 4, 26, 11, 15, 37], [12, 10, 6, 1, 12, 15, 10], [39, 7, 10, 8, 14, 11, 16], [36, 7, 10, 29, 15, 14, 30], [14, 1, 8, 24, 7, 18, 28]]], [2, 105.74, [12, 39, 14, 25, 36]]], [[[[6, 4, 13, 9, 14, 22, 21], [7, 0, 28, 11, 5, 33, 18], [22, 7, 2, 27, 19, 9, 28], [12, 2, 9, 17, 13, 16, 25], [29, 3, 10, 19, 4, 19, 25]]], [1, 67.44, [22, 12, 29, 6, 7]]], [[[[38, 0, 1, 1, 2, 3, 6], [11, 0, 5, 2, 12, 14, 3]]], [1, 14.0625, [38, 11]]]], [[[[[3, 0, 1, 16, 2, 10, 22], [39, 9, 2, 0, 13, 8, 4], [6, 6, 1, 22, 15, 9, 29], [27, 2, 0, 3, 14, 7, 3]]], [2, 102.921875, [39, 27, 3, 6]]], [[[[12, 5, 8, 7, 9, 9, 12], [28, 27, 5, 5, 37, 17, 5], [27, 17, 9, 21, 25, 10, 22], [26, 17, 4, 26, 24, 10, 32], [15, 25, 3, 16, 25, 11, 23], [19, 18, 1, 8, 19, 7, 8], [7, 0, 2, 28, 8, 11, 40]]], [2, 104.673469, [28, 12, 19, 15, 27, 26, 7]]], [[[[22, 2, 5, 2, 5, 17, 10], [8, 0, 7, 2, 5, 8, 7], [36, 2, 3, 2, 9, 14, 13], [15, 1, 10, 0, 9, 10, 2], [29, 0, 10, 2, 7, 10, 9], [26, 0, 4, 2, 12, 10, 4], [10, 0, 10, 0, 2, 19, 0]]], [2, 6.387755, [10, 15, 8, 22, 26, 29, 36]]], [[[[9, 10, 2, 1, 18, 9, 3], [39, 1, 1, 2, 8, 9, 8]]], [0, 22.5625, [39, 9]]], [[[[3, 27, 2, 2, 37, 6, 5], [35, 0, 10, 1, 10, 13, 13]]], [0, 182.25, [35, 3]]], [[[[15, 1, 2, 1, 13, 9, 2], [20, 9, 0, 2, 19, 12, 7], [24, 5, 2, 0, 15, 8, 8], [9, 7, 2, 2, 9, 7, 8]]], [0, 7.1875, [15, 24, 9, 20]]], [[[[3, 1, 3, 1, 13, 6, 10], [24, 1, 5, 5, 9, 14, 14], [36, 2, 1, 2, 5, 5, 2], [33, 0, 8, 17, 9, 10, 17], [1, 0, 10, 7, 5, 12, 14]]], [2, 25.54, [3, 36, 24, 1, 33]]], [[[[30, 0, 0, 7, 1, 4, 12], [7, 1, 0, 8, 8, 0, 11], [2, 2, 2, 4, 8, 11, 7], [35, 0, 0, 9, 3, 7, 19], [22, 0, 1, 8, 2, 6, 8], [3, 1, 1, 2, 9, 13, 14], [29, 1, 2, 4, 5, 3, 14]]], [2, 5.673469, [3, 2, 29, 30, 7, 22, 35]]]], [[[[[10, 22, 0, 4, 31, 9, 7], [8, 15, 2, 2, 24, 4, 12], [22, 19, 1, 1, 20, 3, 6], [27, 22, 1, 0, 31, 2, 9], [14, 6, 2, 7, 8, 4, 15], [21, 10, 1, 2, 17, 13, 5], [2, 18, 0, 8, 28, 6, 19], [18, 4, 2, 0, 9, 8, 2]]], [0, 55.875, [18, 14, 21, 8, 2, 22, 10, 27]]], [[[[37, 8, 1, 6, 16, 5, 10], [10, 5, 3, 10, 17, 15, 12], [29, 5, 5, 8, 9, 17, 8], [23, 3, 10, 6, 15, 19, 11], [7, 9, 5, 10, 17, 10, 10], [18, 7, 6, 5, 12, 12, 7]]], [1, 12.083333, [37, 10, 7, 29, 18, 23]]], [[[[20, 10, 2, 25, 12, 7, 27], [1, 10, 26, 11, 12, 27, 18], [28, 2, 12, 8, 3, 19, 9], [3, 10, 29, 9, 15, 33, 14], [24, 4, 20, 8, 12, 23, 20], [15, 1, 27, 22, 6, 32, 22]]], [1, 84.034722, [20, 28, 24, 1, 15, 3]]], [[[[32, 27, 8, 0, 27, 18, 0], [4, 26, 1, 0, 38, 13, 3]]], [1, 9.0, [4, 32]]], [[[[37, 8, 1, 0, 14, 5, 1], [38, 0, 2, 22, 7, 5, 25], [10, 3, 5, 29, 7, 12, 38], [35, 6, 7, 7, 6, 19, 16]]], [2, 154.1875, [37, 35, 38, 10]]], [[[[1, 27, 25, 1, 39, 34, 10], [35, 21, 20, 2, 32, 29, 5], [22, 6, 14, 1, 10, 16, 12], [13, 3, 27, 2, 4, 34, 7], [8, 19, 15, 1, 26, 25, 12], [39, 0, 16, 0, 6, 22, 12]]], [0, 138.451389, [39, 13, 22, 8, 35, 1]]], [[[[21, 2, 22, 9, 4, 29, 14], [16, 0, 26, 9, 4, 29, 13]]], [1, 1.0, [21, 16]]], [[[[39, 25, 25, 27, 33, 27, 38], [11, 22, 16, 6, 30, 19, 18]]], [2, 105.0625, [11, 39]]]], [[[[[29, 0, 18, 0, 1, 26, 10], [2, 1, 16, 2, 8, 21, 13], [21, 2, 25, 0, 5, 30, 12], [35, 1, 4, 1, 9, 10, 4], [19, 2, 1, 1, 8, 13, 3], [15, 0, 6, 0, 9, 18, 0]]], [1, 58.638889, [19, 35, 15, 2, 29, 21]]], [[[[10, 5, 2, 1, 7, 6, 10], [32, 9, 1, 11, 17, 12, 13], [13, 4, 0, 29, 11, 4, 32], [28, 3, 1, 18, 6, 9, 21], [3, 8, 2, 1, 9, 11, 1], [6, 2, 0, 16, 10, 3, 24]]], [2, 96.729167, [3, 10, 32, 6, 28, 13]]], [[[[3, 4, 1, 1, 9, 9, 12], [13, 10, 1, 0, 22, 10, 1], [25, 2, 7, 1, 11, 17, 6], [23, 2, 8, 0, 10, 17, 5], [24, 2, 6, 2, 5, 10, 11]]], [0, 18.46, [23, 24, 25, 3, 13]]], [[[[33, 3, 26, 4, 5, 37, 7], [18, 9, 13, 12, 13, 13, 13], [24, 9, 17, 24, 21, 25, 31], [20, 8, 27, 23, 15, 27, 34], [35, 4, 9, 9, 5, 16, 20], [31, 5, 4, 6, 13, 7, 18]]], [1, 80.451389, [31, 35, 18, 24, 33, 20]]], [[[[36, 2, 10, 0, 12, 13, 9], [34, 1, 0, 0, 4, 11, 9], [37, 2, 4, 1, 9, 16, 5], [14, 0, 3, 2, 12, 8, 10], [22, 1, 4, 2, 6, 13, 9]]], [1, 5.76, [34, 14, 22, 37, 36]]], [[[[22, 2, 2, 2, 7, 13, 8], [23, 0, 1, 0, 4, 8, 12], [1, 0, 1, 2, 3, 13, 4], [34, 2, 1, 2, 14, 6, 5]]], [0, 6.625, [1, 23, 22, 34]]], [[[[15, 2, 6, 0, 6, 13, 7], [32, 0, 10, 10, 12, 10, 14], [16, 1, 9, 10, 1, 9, 19], [31, 2, 24, 7, 13, 31, 10], [20, 1, 5, 9, 5, 6, 9], [8, 0, 10, 8, 0, 17, 15]]], [1, 50.416667, [20, 15, 16, 8, 32, 31]]], [[[[39, 9, 10, 0, 20, 17, 8], [9, 5, 9, 16, 10, 20, 24], [4, 3, 10, 6, 12, 18, 14]]], [2, 43.555556, [39, 4, 9]]]], [[[[[22, 0, 0, 3, 4, 0, 11], [17, 2, 9, 5, 9, 19, 6], [3, 0, 6, 7, 5, 14, 17], [24, 1, 3, 0, 12, 3, 10]]], [1, 30.6875, [22, 24, 3, 17]]], [[[[7, 6, 2, 1, 7, 7, 11], [25, 21, 2, 1, 23, 6, 8], [15, 9, 0, 1, 16, 5, 5], [37, 8, 0, 2, 20, 6, 10], [16, 25, 0, 2, 28, 6, 10]]], [0, 50.46, [7, 37, 15, 25, 16]]], [[[[13, 5, 25, 23, 5, 26, 29], [19, 24, 6, 27, 32, 14, 33], [17, 1, 2, 17, 11, 9, 22], [4, 21, 25, 22, 27, 30, 24], [27, 29, 26, 1, 38, 30, 9], [30, 11, 22, 2, 13, 32, 7]]], [0, 120.868056, [17, 13, 30, 4, 19, 27]]], [[[[10, 3, 0, 22, 3, 6, 32], [2, 4, 1, 28, 10, 9, 40], [17, 8, 0, 1, 13, 12, 12], [32, 9, 2, 4, 19, 3, 5], [29, 6, 2, 13, 8, 8, 16], [9, 4, 1, 2, 13, 3, 2], [27, 9, 0, 26, 13, 7, 36], [1, 1, 1, 21, 7, 9, 30], [16, 8, 2, 23, 8, 12, 28], [6, 6, 1, 9, 7, 4, 15]]], [2, 123.6625, [17, 9, 32, 6, 29, 1, 10, 16, 27, 2]]], [[[[23, 23, 14, 0, 35, 18, 11], [31, 23, 5, 16, 26, 8, 19], [2, 0, 10, 28, 10, 21, 29], [18, 7, 19, 0, 17, 20, 5], [12, 7, 19, 14, 7, 25, 26], [36, 17, 1, 23, 18, 13, 29]]], [2, 94.055556, [18, 23, 12, 31, 36, 2]]], [[[[12, 1, 8, 2, 5, 16, 14], [10, 2, 2, 2, 7, 8, 3], [31, 1, 7, 2, 3, 7, 10], [36, 0, 3, 0, 10, 15, 0], [39, 1, 4, 0, 12, 15, 4], [25, 2, 0, 2, 2, 4, 5]]], [1, 10.534722, [25, 10, 36, 39, 31, 12]]], [[[[18, 0, 3, 1, 7, 4, 6], [3, 0, 7, 1, 11, 11, 5], [17, 0, 9, 0, 6, 18, 9], [4, 0, 7, 0, 0, 10, 10], [11, 2, 5, 0, 9, 11, 1], [31, 2, 3, 0, 8, 5, 11], [16, 1, 6, 2, 1, 17, 9], [26, 0, 3, 0, 0, 9, 10]]], [1, 10.5, [18, 26, 31, 11, 16, 3, 4, 17]]], [[[[18, 10, 21, 1, 14, 27, 2], [16, 20, 5, 1, 26, 8, 11], [1, 6, 4, 2, 9, 7, 11]]], [1, 72.166667, [1, 16, 18]]]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"case %d\" % i, 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":"6f1274c34edfe3909b86e17cd3c9e914d0dc05f87f530b1203d2782866d52ed0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(boxes):\n    n = len(boxes)\n    best_axis, best_var = 0, -1.0\n    for ax in (0, 1, 2):\n        cs_ = [(b[1 + ax] + b[4 + ax]) / 2 for b in boxes]\n        mean = sum(cs_) / n\n        var = sum(abs(c - mean) for c in cs_) / n\n        if var > best_var:\n            best_axis, best_var = ax, var\n    order = [b[0] for b in sorted(boxes, key=lambda b: (b[1 + best_axis], b[0]))]\n    return [best_axis, round(best_var, 6), order]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[[3, 0, 20, 0, 4, 30, 3], [32, 3, 28, 14, 8, 34, 24], [6, 3, 8, 2, 14, 9, 12], [34, 10, 9, 20, 19, 20, 20]]], [1, 77.0625, [6, 34, 3, 32]]], [[[[3, 2, 1, 9, 4, 2, 16], [22, 0, 0, 10, 2, 2, 20], [31, 1, 0, 1, 12, 6, 8], [16, 1, 0, 9, 9, 10, 16]]], [2, 15.671875, [31, 3, 16, 22]]], [[[[8, 0, 22, 17, 8, 31, 23], [14, 1, 2, 25, 1, 9, 25], [38, 0, 25, 6, 7, 35, 17], [36, 1, 11, 9, 11, 19, 12]]], [1, 93.8125, [14, 36, 8, 38]]], [[[[28, 12, 13, 1, 14, 25, 5], [36, 10, 28, 0, 10, 32, 6], [17, 4, 16, 0, 7, 28, 9], [26, 2, 16, 0, 14, 27, 3], [20, 6, 12, 2, 14, 19, 13], [38, 17, 9, 0, 22, 18, 3]]], [1, 28.229167, [38, 20, 28, 17, 26, 36]]], [[[[5, 0, 17, 9, 2, 25, 9], [7, 2, 24, 1, 2, 35, 9], [17, 1, 19, 13, 4, 27, 25]]], [2, 34.666667, [7, 5, 17]]], [[[[25, 10, 4, 26, 11, 15, 37], [12, 10, 6, 1, 12, 15, 10], [39, 7, 10, 8, 14, 11, 16], [36, 7, 10, 29, 15, 14, 30], [14, 1, 8, 24, 7, 18, 28]]], [2, 105.74, [12, 39, 14, 25, 36]]], [[[[6, 4, 13, 9, 14, 22, 21], [7, 0, 28, 11, 5, 33, 18], [22, 7, 2, 27, 19, 9, 28], [12, 2, 9, 17, 13, 16, 25], [29, 3, 10, 19, 4, 19, 25]]], [1, 67.44, [22, 12, 29, 6, 7]]], [[[[38, 0, 1, 1, 2, 3, 6], [11, 0, 5, 2, 12, 14, 3]]], [1, 14.0625, [38, 11]]]], [[[[[3, 0, 1, 16, 2, 10, 22], [39, 9, 2, 0, 13, 8, 4], [6, 6, 1, 22, 15, 9, 29], [27, 2, 0, 3, 14, 7, 3]]], [2, 102.921875, [39, 27, 3, 6]]], [[[[12, 5, 8, 7, 9, 9, 12], [28, 27, 5, 5, 37, 17, 5], [27, 17, 9, 21, 25, 10, 22], [26, 17, 4, 26, 24, 10, 32], [15, 25, 3, 16, 25, 11, 23], [19, 18, 1, 8, 19, 7, 8], [7, 0, 2, 28, 8, 11, 40]]], [2, 104.673469, [28, 12, 19, 15, 27, 26, 7]]], [[[[22, 2, 5, 2, 5, 17, 10], [8, 0, 7, 2, 5, 8, 7], [36, 2, 3, 2, 9, 14, 13], [15, 1, 10, 0, 9, 10, 2], [29, 0, 10, 2, 7, 10, 9], [26, 0, 4, 2, 12, 10, 4], [10, 0, 10, 0, 2, 19, 0]]], [2, 6.387755, [10, 15, 8, 22, 26, 29, 36]]], [[[[9, 10, 2, 1, 18, 9, 3], [39, 1, 1, 2, 8, 9, 8]]], [0, 22.5625, [39, 9]]], [[[[3, 27, 2, 2, 37, 6, 5], [35, 0, 10, 1, 10, 13, 13]]], [0, 182.25, [35, 3]]], [[[[15, 1, 2, 1, 13, 9, 2], [20, 9, 0, 2, 19, 12, 7], [24, 5, 2, 0, 15, 8, 8], [9, 7, 2, 2, 9, 7, 8]]], [0, 7.1875, [15, 24, 9, 20]]], [[[[3, 1, 3, 1, 13, 6, 10], [24, 1, 5, 5, 9, 14, 14], [36, 2, 1, 2, 5, 5, 2], [33, 0, 8, 17, 9, 10, 17], [1, 0, 10, 7, 5, 12, 14]]], [2, 25.54, [3, 36, 24, 1, 33]]], [[[[30, 0, 0, 7, 1, 4, 12], [7, 1, 0, 8, 8, 0, 11], [2, 2, 2, 4, 8, 11, 7], [35, 0, 0, 9, 3, 7, 19], [22, 0, 1, 8, 2, 6, 8], [3, 1, 1, 2, 9, 13, 14], [29, 1, 2, 4, 5, 3, 14]]], [2, 5.673469, [3, 2, 29, 30, 7, 22, 35]]]], [[[[[10, 22, 0, 4, 31, 9, 7], [8, 15, 2, 2, 24, 4, 12], [22, 19, 1, 1, 20, 3, 6], [27, 22, 1, 0, 31, 2, 9], [14, 6, 2, 7, 8, 4, 15], [21, 10, 1, 2, 17, 13, 5], [2, 18, 0, 8, 28, 6, 19], [18, 4, 2, 0, 9, 8, 2]]], [0, 55.875, [18, 14, 21, 8, 2, 22, 10, 27]]], [[[[37, 8, 1, 6, 16, 5, 10], [10, 5, 3, 10, 17, 15, 12], [29, 5, 5, 8, 9, 17, 8], [23, 3, 10, 6, 15, 19, 11], [7, 9, 5, 10, 17, 10, 10], [18, 7, 6, 5, 12, 12, 7]]], [1, 12.083333, [37, 10, 7, 29, 18, 23]]], [[[[20, 10, 2, 25, 12, 7, 27], [1, 10, 26, 11, 12, 27, 18], [28, 2, 12, 8, 3, 19, 9], [3, 10, 29, 9, 15, 33, 14], [24, 4, 20, 8, 12, 23, 20], [15, 1, 27, 22, 6, 32, 22]]], [1, 84.034722, [20, 28, 24, 1, 15, 3]]], [[[[32, 27, 8, 0, 27, 18, 0], [4, 26, 1, 0, 38, 13, 3]]], [1, 9.0, [4, 32]]], [[[[37, 8, 1, 0, 14, 5, 1], [38, 0, 2, 22, 7, 5, 25], [10, 3, 5, 29, 7, 12, 38], [35, 6, 7, 7, 6, 19, 16]]], [2, 154.1875, [37, 35, 38, 10]]], [[[[1, 27, 25, 1, 39, 34, 10], [35, 21, 20, 2, 32, 29, 5], [22, 6, 14, 1, 10, 16, 12], [13, 3, 27, 2, 4, 34, 7], [8, 19, 15, 1, 26, 25, 12], [39, 0, 16, 0, 6, 22, 12]]], [0, 138.451389, [39, 13, 22, 8, 35, 1]]], [[[[21, 2, 22, 9, 4, 29, 14], [16, 0, 26, 9, 4, 29, 13]]], [1, 1.0, [21, 16]]], [[[[39, 25, 25, 27, 33, 27, 38], [11, 22, 16, 6, 30, 19, 18]]], [2, 105.0625, [11, 39]]]], [[[[[29, 0, 18, 0, 1, 26, 10], [2, 1, 16, 2, 8, 21, 13], [21, 2, 25, 0, 5, 30, 12], [35, 1, 4, 1, 9, 10, 4], [19, 2, 1, 1, 8, 13, 3], [15, 0, 6, 0, 9, 18, 0]]], [1, 58.638889, [19, 35, 15, 2, 29, 21]]], [[[[10, 5, 2, 1, 7, 6, 10], [32, 9, 1, 11, 17, 12, 13], [13, 4, 0, 29, 11, 4, 32], [28, 3, 1, 18, 6, 9, 21], [3, 8, 2, 1, 9, 11, 1], [6, 2, 0, 16, 10, 3, 24]]], [2, 96.729167, [3, 10, 32, 6, 28, 13]]], [[[[3, 4, 1, 1, 9, 9, 12], [13, 10, 1, 0, 22, 10, 1], [25, 2, 7, 1, 11, 17, 6], [23, 2, 8, 0, 10, 17, 5], [24, 2, 6, 2, 5, 10, 11]]], [0, 18.46, [23, 24, 25, 3, 13]]], [[[[33, 3, 26, 4, 5, 37, 7], [18, 9, 13, 12, 13, 13, 13], [24, 9, 17, 24, 21, 25, 31], [20, 8, 27, 23, 15, 27, 34], [35, 4, 9, 9, 5, 16, 20], [31, 5, 4, 6, 13, 7, 18]]], [1, 80.451389, [31, 35, 18, 24, 33, 20]]], [[[[36, 2, 10, 0, 12, 13, 9], [34, 1, 0, 0, 4, 11, 9], [37, 2, 4, 1, 9, 16, 5], [14, 0, 3, 2, 12, 8, 10], [22, 1, 4, 2, 6, 13, 9]]], [1, 5.76, [34, 14, 22, 37, 36]]], [[[[22, 2, 2, 2, 7, 13, 8], [23, 0, 1, 0, 4, 8, 12], [1, 0, 1, 2, 3, 13, 4], [34, 2, 1, 2, 14, 6, 5]]], [0, 6.625, [1, 23, 22, 34]]], [[[[15, 2, 6, 0, 6, 13, 7], [32, 0, 10, 10, 12, 10, 14], [16, 1, 9, 10, 1, 9, 19], [31, 2, 24, 7, 13, 31, 10], [20, 1, 5, 9, 5, 6, 9], [8, 0, 10, 8, 0, 17, 15]]], [1, 50.416667, [20, 15, 16, 8, 32, 31]]], [[[[39, 9, 10, 0, 20, 17, 8], [9, 5, 9, 16, 10, 20, 24], [4, 3, 10, 6, 12, 18, 14]]], [2, 43.555556, [39, 4, 9]]]], [[[[[22, 0, 0, 3, 4, 0, 11], [17, 2, 9, 5, 9, 19, 6], [3, 0, 6, 7, 5, 14, 17], [24, 1, 3, 0, 12, 3, 10]]], [1, 30.6875, [22, 24, 3, 17]]], [[[[7, 6, 2, 1, 7, 7, 11], [25, 21, 2, 1, 23, 6, 8], [15, 9, 0, 1, 16, 5, 5], [37, 8, 0, 2, 20, 6, 10], [16, 25, 0, 2, 28, 6, 10]]], [0, 50.46, [7, 37, 15, 25, 16]]], [[[[13, 5, 25, 23, 5, 26, 29], [19, 24, 6, 27, 32, 14, 33], [17, 1, 2, 17, 11, 9, 22], [4, 21, 25, 22, 27, 30, 24], [27, 29, 26, 1, 38, 30, 9], [30, 11, 22, 2, 13, 32, 7]]], [0, 120.868056, [17, 13, 30, 4, 19, 27]]], [[[[10, 3, 0, 22, 3, 6, 32], [2, 4, 1, 28, 10, 9, 40], [17, 8, 0, 1, 13, 12, 12], [32, 9, 2, 4, 19, 3, 5], [29, 6, 2, 13, 8, 8, 16], [9, 4, 1, 2, 13, 3, 2], [27, 9, 0, 26, 13, 7, 36], [1, 1, 1, 21, 7, 9, 30], [16, 8, 2, 23, 8, 12, 28], [6, 6, 1, 9, 7, 4, 15]]], [2, 123.6625, [17, 9, 32, 6, 29, 1, 10, 16, 27, 2]]], [[[[23, 23, 14, 0, 35, 18, 11], [31, 23, 5, 16, 26, 8, 19], [2, 0, 10, 28, 10, 21, 29], [18, 7, 19, 0, 17, 20, 5], [12, 7, 19, 14, 7, 25, 26], [36, 17, 1, 23, 18, 13, 29]]], [2, 94.055556, [18, 23, 12, 31, 36, 2]]], [[[[12, 1, 8, 2, 5, 16, 14], [10, 2, 2, 2, 7, 8, 3], [31, 1, 7, 2, 3, 7, 10], [36, 0, 3, 0, 10, 15, 0], [39, 1, 4, 0, 12, 15, 4], [25, 2, 0, 2, 2, 4, 5]]], [1, 10.534722, [25, 10, 36, 39, 31, 12]]], [[[[18, 0, 3, 1, 7, 4, 6], [3, 0, 7, 1, 11, 11, 5], [17, 0, 9, 0, 6, 18, 9], [4, 0, 7, 0, 0, 10, 10], [11, 2, 5, 0, 9, 11, 1], [31, 2, 3, 0, 8, 5, 11], [16, 1, 6, 2, 1, 17, 9], [26, 0, 3, 0, 0, 9, 10]]], [1, 10.5, [18, 26, 31, 11, 16, 3, 4, 17]]], [[[[18, 10, 21, 1, 14, 27, 2], [16, 20, 5, 1, 26, 8, 11], [1, 6, 4, 2, 9, 7, 11]]], [1, 72.166667, [1, 16, 18]]]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"case %d\" % i, 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 bounded teaching model with stipulated toy conventions; not a production physics engine or spatial index. 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-collision_detection_broadphase-sap-axis-variance-squared-deviation","generated_at":"2026-09-29T14:51:00.964310+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Broadphase stages decide which object pairs ever reach narrowphase; a wrong boundary, ordering or bookkeeping rule silently drops real contacts or floods the solver with false candidates.","root_cause":"Deviations are abs(c-mean).","sha256":"1a50fe2bebf6ac5ffacdb50ab360ff637b3ef6d5451a74e530803b5c6758dd08","title":"Axis spread uses absolute deviation · 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":44.241,"exit_code":1,"observations":[{"actual":[0,0.0,[3,6,32,34]],"check":"case 0","expected":[1,77.0625,[6,34,3,32]],"passed":false},{"actual":[0,0.0,[22,16,31,3]],"check":"case 1","expected":[2,15.671875,[31,3,16,22]],"passed":false},{"actual":[0,0.0,[8,38,14,36]],"check":"case 2","expected":[1,93.8125,[14,36,8,38]],"passed":false},{"actual":[0,0.0,[26,17,20,36,28,38]],"check":"case 3","expected":[1,28.229167,[38,20,28,17,26,36]],"passed":false},{"actual":[0,0.0,[5,17,7]],"check":"case 4","expected":[2,34.666667,[7,5,17]],"passed":false},{"actual":[2,0.0,[12,39,14,25,36]],"check":"case 5","expected":[2,105.74,[12,39,14,25,36]],"passed":false},{"actual":[0,0.0,[7,12,29,6,22]],"check":"case 6","expected":[1,67.44,[22,12,29,6,7]],"passed":false},{"actual":[0,0.0,[11,38]],"check":"case 7","expected":[1,14.0625,[38,11]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [0, 0.0, [3, 6, 32, 34]], \"expected\": [1, 77.0625, [6, 34, 3, 32]], \"passed\": false}, {\"check\": \"case 1\", \"actual\": [0, 0.0, [22, 16, 31, 3]], \"expected\": [2, 15.671875, [31, 3, 16, 22]], \"passed\": false}, {\"check\": \"case 2\", \"actual\": [0, 0.0, [8, 38, 14, 36]], \"expected\": [1, 93.8125, [14, 36, 8, 38]], \"passed\": false}, {\"check\": \"case 3\", \"actual\": [0, 0.0, [26, 17, 20, 36, 28, 38]], \"expected\": [1, 28.229167, [38, 20, 28, 17, 26, 36]], \"passed\": false}, {\"check\": \"case 4\", \"actual\": [0, 0.0, [5, 17, 7]], \"expected\": [2, 34.666667, [7, 5, 17]], \"passed\": false}, {\"check\": \"case 5\", \"actual\": [2, 0.0, [12, 39, 14, 25, 36]], \"expected\": [2, 105.74, [12, 39, 14, 25, 36]], \"passed\": false}, {\"check\": \"case 6\", \"actual\": [0, 0.0, [7, 12, 29, 6, 22]], \"expected\": [1, 67.44, [22, 12, 29, 6, 7]], \"passed\": false}, {\"check\": \"case 7\", \"actual\": [0, 0.0, [11, 38]], \"expected\": [1, 14.0625, [38, 11]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.94,"exit_code":1,"observations":[{"actual":[1,8.25,[6,34,3,32]],"check":"case 0","expected":[1,77.0625,[6,34,3,32]],"passed":false},{"actual":[2,3.3125,[31,3,16,22]],"check":"case 1","expected":[2,15.671875,[31,3,16,22]],"passed":false},{"actual":[1,9.0,[14,36,8,38]],"check":"case 2","expected":[1,93.8125,[14,36,8,38]],"passed":false},{"actual":[1,4.25,[38,20,28,17,26,36]],"check":"case 3","expected":[1,28.229167,[38,20,28,17,26,36]],"passed":false},{"actual":[2,5.333333,[7,5,17]],"check":"case 4","expected":[2,34.666667,[7,5,17]],"passed":false},{"actual":[2,9.72,[12,39,14,25,36]],"check":"case 5","expected":[2,105.74,[12,39,14,25,36]],"passed":false},{"actual":[1,6.32,[22,12,29,6,7]],"check":"case 6","expected":[1,67.44,[22,12,29,6,7]],"passed":false},{"actual":[1,3.75,[38,11]],"check":"case 7","expected":[1,14.0625,[38,11]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [1, 8.25, [6, 34, 3, 32]], \"expected\": [1, 77.0625, [6, 34, 3, 32]], \"passed\": false}, {\"check\": \"case 1\", \"actual\": [2, 3.3125, [31, 3, 16, 22]], \"expected\": [2, 15.671875, [31, 3, 16, 22]], \"passed\": false}, {\"check\": \"case 2\", \"actual\": [1, 9.0, [14, 36, 8, 38]], \"expected\": [1, 93.8125, [14, 36, 8, 38]], \"passed\": false}, {\"check\": \"case 3\", \"actual\": [1, 4.25, [38, 20, 28, 17, 26, 36]], \"expected\": [1, 28.229167, [38, 20, 28, 17, 26, 36]], \"passed\": false}, {\"check\": \"case 4\", \"actual\": [2, 5.333333, [7, 5, 17]], \"expected\": [2, 34.666667, [7, 5, 17]], \"passed\": false}, {\"check\": \"case 5\", \"actual\": [2, 9.72, [12, 39, 14, 25, 36]], \"expected\": [2, 105.74, [12, 39, 14, 25, 36]], \"passed\": false}, {\"check\": \"case 6\", \"actual\": [1, 6.32, [22, 12, 29, 6, 7]], \"expected\": [1, 67.44, [22, 12, 29, 6, 7]], \"passed\": false}, {\"check\": \"case 7\", \"actual\": [1, 3.75, [38, 11]], \"expected\": [1, 14.0625, [38, 11]], \"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."}}