{"abstract":"Build output is nondeterministic across id widths (10 sorts before 9).","category":"Collision detection broadphase","checks":8,"contract":"solve(pts, bounds): LBVH ordering. Each centroid [id,x,y] is quantized per axis to min(1023, max(0, floor((c-lo)/(hi-lo)*1024))) (0 for a flat axis), and the 10-bit values are interleaved with x in even bits and y in odd bits. Return [[id, code]] sorted by (code, numeric id).","contract_signature":"pts, bounds","evaluation_group":"w2-collision_detection_broadphase-morton-lbvh-order","failed_approach":"Relying on stable input order ignores the id tiebreak.","family":"w2-collision_detection_broadphase-morton-lbvh-order-code-tie-break","id":"FA-87586","implementations":{"attempt":{"sha256":"a62a2d3c784e1434b1718cf99456366e1bb32167d54c158979ea538655319cb6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(pts, bounds):\n    def part(v):\n        v &= 0x3FF\n        v = (v | (v << 8)) & 0x00FF00FF\n        v = (v | (v << 4)) & 0x0F0F0F0F\n        v = (v | (v << 2)) & 0x33333333\n        v = (v | (v << 1)) & 0x55555555\n        return v\n    def quant(c, lo, hi):\n        if hi <= lo:\n            return 0\n        return min(1023, max(0, math.floor((c - lo) / (hi - lo) * 1024)))\n    out = []\n    for i, x, y in pts:\n        code = part(quant(x, bounds[0], bounds[2])) | (part(quant(y, bounds[1], bounds[3])) << 1)\n        out.append([i, code])\n    out.sort(key=lambda r: r[1])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[[2, 15.68, 3.56], [3, 5.0, 2.99], [23, 15.0, -1.89], [7, 15.0, -4.0], [11, 15.0, -4.0], [4, 9.04, -4.22]], [5.0, -4.0, 15.0, 4.0]], [[4, 82257], [7, 349525], [11, 349525], [23, 480765], [3, 666280], [2, 1045887]]], [[[[29, 15.14, -4.07], [13, 0.0, 4.0]], [0.0, -4.0, 100.0, 4.0]], [[29, 16709], [13, 699050]]], [[[[6, -10.0, 6.42], [28, -7.78, 3.03]], [-10.0, 0.0, 6.0, 8.0]], [[28, 180318], [6, 657954]]], [[[[8, 97.82, 0.0], [29, 97.82, 0.0]], [0.0, 0.0, 100.0, 8.0]], [[8, 349249], [29, 349249]]], [[[[26, -0.45, 2.25], [9, -0.45, 2.25], [5, 0.0, 5.4]], [0.0, 0.0, 10.0, 32.0]], [[9, 8320], [26, 8320], [5, 34976]]], [[[[18, 6.85, 5.88], [15, 6.85, 5.88], [22, 8.67, -4.37], [23, 5.0, 10.22], [29, 15.0, -4.0], [19, 11.79, -4.0]], [5.0, -4.0, 15.0, 28.0]], [[22, 70933], [15, 151537], [18, 151537], [23, 172074], [19, 279829], [29, 349525]]], [[[[29, -1.85, 30.67], [2, -10.0, 7.32], [22, 6.0, 0.0], [11, -2.97, 20.92], [4, 6.0, 32.0]], [-10.0, 0.0, 6.0, 32.0]], [[2, 43144], [22, 349525], [11, 643747], [29, 959075], [4, 1048575]]], [[[[6, -1.4, -4.0], [18, -8.16, 15.21], [8, -5.93, 22.33]], [-10.0, -4.0, 0.0, 28.0]], [[6, 333056], [18, 552312], [8, 746632]]]], [[[[[26, 15.0, 8.65], [14, 15.0, 8.65], [10, 9.54, -1.05], [28, 15.0, 28.0], [18, 15.0, 4.92], [4, 10.73, 28.0]], [5.0, -4.0, 15.0, 28.0]], [[10, 95144], [18, 481271], [14, 513909], [26, 513909], [4, 965358], [28, 1048575]]], [[[[14, 47.68, 0.0], [5, 100.0, 32.0], [2, 34.97, 0.0], [23, 100.0, 32.0], [6, 24.83, 13.56], [7, 26.2, 22.2], [9, 16.61, 32.0], [1, 100.0, 0.61]], [0.0, 0.0, 100.0, 32.0]], [[2, 70676], [14, 87104], [6, 188246], [1, 350047], [7, 630904], [9, 716526], [5, 1048575], [23, 1048575]]], [[[[28, 4.08, 8.0], [3, 4.08, 8.0], [11, 100.0, 0.0], [19, 86.81, 0.0], [29, 0.0, 0.0], [26, 60.01, 5.58], [10, 53.02, 8.0]], [0.0, 0.0, 100.0, 8.0]], [[29, 0], [19, 333120], [11, 349525], [3, 700139], [28, 700139], [26, 832668], [10, 961534]]], [[[[29, -10.0, -0.25], [3, -10.57, 28.0], [19, -10.0, -4.0], [9, -10.0, -4.0], [20, -10.0, -4.0]], [-10.0, -4.0, -10.0, 28.0]], [[9, 0], [19, 0], [20, 0], [29, 10880], [3, 699050]]], [[[[3, 5.0, -4.0], [2, 4.61, 3.19], [20, 5.0, 16.57], [23, 5.24, 1.38], [4, 5.0, 28.0]], [5.0, -4.0, 5.0, 28.0]], [[3, 0], [23, 34976], [2, 43048], [20, 557576], [4, 699050]]], [[[[12, 16.0, 2.12], [8, 16.0, 2.12], [20, 9.38, 4.0], [23, 0.0, 0.12], [25, 11.84, 4.0], [3, 7.58, -2.68], [2, 9.7, 2.72], [22, 8.35, -2.83]], [0.0, -4.0, 16.0, 4.0]], [[3, 122001], [22, 295734], [23, 524458], [2, 931568], [20, 965610], [25, 982971], [8, 1005055], [12, 1005055]]], [[[[24, 50.31, 6.58], [27, 90.0, 0.0], [25, 65.58, 0.0]], [-10.0, 0.0, 90.0, 32.0]], [[24, 308809], [25, 327697], [27, 349525]]], [[[[18, 6.0, -4.0], [8, 6.0, -4.0]], [-10.0, -4.0, 6.0, 28.0]], [[8, 349525], [18, 349525]]]], [[[[[13, -10.0, 27.92], [18, -9.16, 5.81]], [-10.0, 0.0, -10.0, 32.0]], [[18, 35458], [13, 666274]]], [[[[24, -10.0, 32.0], [10, -10.0, 32.0], [8, -10.0, 29.8], [29, -10.0, 6.27], [21, -10.0, 13.14], [14, -10.0, 17.37]], [-10.0, 0.0, -10.0, 32.0]], [[29, 41088], [21, 165920], [14, 526474], [8, 690818], [10, 699050], [24, 699050]]], [[[[8, 7.79, 32.0], [14, 7.79, 32.0], [4, 20.76, 28.84], [24, 5.0, 12.55], [16, 11.25, 15.97], [3, 5.0, 8.32], [19, 5.0, 9.9], [15, 4.07, 0.0], [20, 5.0, 28.49]], [5.0, 0.0, 21.0, 32.0]], [[15, 0], [3, 131208], [19, 133792], [24, 164354], [16, 256938], [20, 688298], [8, 716718], [14, 716718], [4, 1038216]]], [[[[1, -10.0, -4.0], [17, -10.0, -4.0], [18, 6.0, 0.25], [10, 1.71, 0.39], [23, -0.65, -4.0]], [-10.0, -4.0, 6.0, 4.0]], [[1, 0], [17, 0], [23, 266516], [10, 810579], [18, 875861]]], [[[[2, 5.42, -3.91], [24, 5.0, -4.0], [8, 5.0, 4.0], [7, 5.0, 4.0], [12, 5.0, 4.0]], [5.0, -4.0, 5.0, 4.0]], [[24, 0], [2, 138], [7, 699050], [8, 699050], [12, 699050]]], [[[[27, -10.0, 7.72], [4, -10.0, 1.55]], [-10.0, 0.0, -10.0, 8.0]], [[4, 41000], [27, 696992]]], [[[[3, 105.0, 3.0], [2, 105.0, 3.0], [20, 33.46, 28.0], [7, 79.71, 28.0]], [5.0, -4.0, 105.0, 28.0]], [[2, 392533], [3, 392533], [20, 765615], [7, 983035]]], [[[[25, 10.0, 5.64], [8, 10.0, 5.64], [6, 10.0, 6.72], [5, 0.0, 8.0]], [0.0, 0.0, 10.0, 8.0]], [[5, 699050], [8, 915287], [25, 915287], [6, 1013749]]]], [[[[[27, 5.0, 7.71], [11, 5.0, 8.0], [17, 5.0, 6.94], [21, 5.0, 2.6], [9, 5.0, 2.12], [10, 5.69, 0.0], [23, 5.0, 8.0], [29, 5.36, 8.0], [19, 5.0, 8.0], [7, 5.0, 8.0]], [5.0, 0.0, 5.0, 8.0]], [[10, 0], [9, 131242], [21, 139424], [17, 666240], [27, 696968], [7, 699050], [11, 699050], [19, 699050], [23, 699050], [29, 699050]]], [[[[18, 0.0, 32.0], [8, 16.0, 18.69]], [0.0, 0.0, 16.0, 32.0]], [[18, 699050], [8, 882557]]], [[[[26, 1.65, 0.0], [12, 0.0, 7.0], [2, 0.0, 6.65], [29, 10.0, 6.7], [6, 1.83, 8.48], [27, 6.69, 8.0], [14, 10.0, 8.0], [9, 10.0, 1.99]], [0.0, 0.0, 10.0, 8.0]], [[26, 17472], [9, 393213], [2, 664074], [12, 688128], [6, 716783], [27, 978683], [29, 1013719], [14, 1048575]]], [[[[19, 0.0, 0.0], [20, 0.0, 8.62], [17, -0.27, 0.0]], [0.0, 0.0, 0.0, 8.0]], [[17, 0], [19, 0], [20, 699050]]], [[[[26, 0.0, -4.0], [4, -0.48, -0.87], [9, 0.0, -2.79], [28, 0.0, -4.0], [10, 0.0, 28.0], [18, 0.0, -2.0], [5, 0.0, -4.0], [21, 0.0, 7.41]], [0.0, -4.0, 0.0, 28.0]], [[5, 0], [26, 0], [28, 0], [9, 2088], [18, 8192], [4, 10272], [21, 141474], [10, 699050]]], [[[[25, 5.0, 15.89], [11, 14.68, 32.0], [1, 13.39, 26.2], [21, 15.0, 8.56], [15, 15.0, 32.0]], [5.0, 0.0, 15.0, 32.0]], [[25, 174752], [21, 481111], [1, 995693], [11, 1047551], [15, 1048575]]], [[[[18, 15.0, 0.0], [6, 15.0, 0.0], [20, 5.0, 0.0]], [5.0, 0.0, 15.0, 8.0]], [[20, 0], [6, 349525], [18, 349525]]], [[[[28, 6.64, 32.0], [24, 1.44, 32.0], [12, 10.0, 21.67], [17, 0.0, 18.06], [6, 0.0, 17.6], [29, 4.94, 21.87], [9, 9.22, 7.36], [16, 0.08, 32.0], [13, 8.58, 1.11], [22, 0.0, 0.0]], [0.0, 0.0, 10.0, 32.0]], [[22, 0], [13, 334942], [9, 388490], [6, 526858], [17, 532482], [29, 647115], [16, 699114], [24, 715695], [12, 909175], [28, 978623]]]], [[[[[12, 0.0, 3.63], [24, 0.0, 3.63], [14, 0.0, 6.97]], [0.0, 0.0, 0.0, 8.0]], [[12, 172544], [24, 172544], [14, 666272]]], [[[[9, 21.0, -4.0], [7, 21.0, -4.0], [15, 19.51, 4.95], [10, 5.0, -4.0], [25, 21.0, -4.0], [12, 17.72, 4.0], [26, 21.0, -4.0], [8, 6.03, -4.0]], [5.0, -4.0, 21.0, 4.0]], [[10, 0], [8, 4097], [7, 349525], [9, 349525], [25, 349525], [26, 349525], [12, 1027838], [15, 1044138]]], [[[[27, 5.0, 0.0], [19, 4.22, 0.0], [10, 5.0, 8.05], [25, 5.0, 1.04], [12, 5.01, 8.0], [28, 5.0, 0.0], [23, 5.0, 0.0]], [5.0, 0.0, 5.0, 8.0]], [[19, 0], [23, 0], [27, 0], [28, 0], [25, 32802], [10, 699050], [12, 699050]]], [[[[8, -2.58, 0.0], [27, -10.0, 31.04], [19, -2.08, 28.72], [7, -10.0, 5.9], [14, 3.12, 0.0], [29, 6.0, 13.1], [11, -10.0, 3.02]], [-10.0, 0.0, 6.0, 32.0]], [[11, 10240], [7, 35488], [8, 86340], [14, 331797], [29, 515423], [27, 698370], [19, 776046]]], [[[[2, 0.0, 28.0], [1, 0.0, 28.0], [27, 0.0, -4.3], [22, 0.0, 10.81], [12, 0.0, 17.36], [9, 0.0, 28.0], [6, 0.0, 20.38], [28, 0.0, 27.4], [16, -0.31, 28.0], [18, 0.0, 9.16], [13, -0.36, 9.17]], [0.0, -4.0, 0.0, 28.0]], [[27, 0], [13, 165922], [18, 165922], [22, 172674], [12, 559242], [6, 655520], [28, 698528], [1, 699050], [2, 699050], [9, 699050], [16, 699050]]], [[[[26, 1.35, 0.0], [27, 1.35, 0.0], [28, 0.0, 0.0]], [0.0, 0.0, 10.0, 32.0]], [[28, 0], [26, 16452], [27, 16452]]], [[[[20, 40.86, 27.56], [16, 40.86, 27.56], [24, 76.52, 0.0], [29, 105.0, 32.0], [3, 105.0, 32.0], [22, 93.26, 32.0], [13, 5.0, 20.19], [4, 44.54, 32.0], [11, 76.3, 28.2]], [5.0, 0.0, 105.0, 32.0]], [[24, 282960], [13, 557096], [16, 736855], [20, 736855], [4, 781242], [11, 971116], [22, 1043135], [3, 1048575], [29, 1048575]]], [[[[23, 5.01, 28.0], [14, 5.01, 28.0], [2, 9.12, 21.41], [5, 15.0, -4.0], [10, 9.98, 5.44], [28, 15.0, -4.0], [6, 8.26, 8.74], [16, 13.41, 18.61], [3, 5.0, 1.35]], [5.0, -4.0, 15.0, 28.0]], [[3, 34954], [10, 220665], [6, 234107], [5, 349525], [28, 349525], [14, 699051], [23, 699051], [2, 740531], [16, 897883]]]]]\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":"e6f88cd2be033bc7e1738cc56f459e8826d4973d8ee483a29ff670d1b86cf6d0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(pts, bounds):\n    def part(v):\n        v &= 0x3FF\n        v = (v | (v << 8)) & 0x00FF00FF\n        v = (v | (v << 4)) & 0x0F0F0F0F\n        v = (v | (v << 2)) & 0x33333333\n        v = (v | (v << 1)) & 0x55555555\n        return v\n    def quant(c, lo, hi):\n        if hi <= lo:\n            return 0\n        return min(1023, max(0, math.floor((c - lo) / (hi - lo) * 1024)))\n    out = []\n    for i, x, y in pts:\n        code = part(quant(x, bounds[0], bounds[2])) | (part(quant(y, bounds[1], bounds[3])) << 1)\n        out.append([i, code])\n    out.sort(key=lambda r: (r[1], str(r[0])))\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[[2, 15.68, 3.56], [3, 5.0, 2.99], [23, 15.0, -1.89], [7, 15.0, -4.0], [11, 15.0, -4.0], [4, 9.04, -4.22]], [5.0, -4.0, 15.0, 4.0]], [[4, 82257], [7, 349525], [11, 349525], [23, 480765], [3, 666280], [2, 1045887]]], [[[[29, 15.14, -4.07], [13, 0.0, 4.0]], [0.0, -4.0, 100.0, 4.0]], [[29, 16709], [13, 699050]]], [[[[6, -10.0, 6.42], [28, -7.78, 3.03]], [-10.0, 0.0, 6.0, 8.0]], [[28, 180318], [6, 657954]]], [[[[8, 97.82, 0.0], [29, 97.82, 0.0]], [0.0, 0.0, 100.0, 8.0]], [[8, 349249], [29, 349249]]], [[[[26, -0.45, 2.25], [9, -0.45, 2.25], [5, 0.0, 5.4]], [0.0, 0.0, 10.0, 32.0]], [[9, 8320], [26, 8320], [5, 34976]]], [[[[18, 6.85, 5.88], [15, 6.85, 5.88], [22, 8.67, -4.37], [23, 5.0, 10.22], [29, 15.0, -4.0], [19, 11.79, -4.0]], [5.0, -4.0, 15.0, 28.0]], [[22, 70933], [15, 151537], [18, 151537], [23, 172074], [19, 279829], [29, 349525]]], [[[[29, -1.85, 30.67], [2, -10.0, 7.32], [22, 6.0, 0.0], [11, -2.97, 20.92], [4, 6.0, 32.0]], [-10.0, 0.0, 6.0, 32.0]], [[2, 43144], [22, 349525], [11, 643747], [29, 959075], [4, 1048575]]], [[[[6, -1.4, -4.0], [18, -8.16, 15.21], [8, -5.93, 22.33]], [-10.0, -4.0, 0.0, 28.0]], [[6, 333056], [18, 552312], [8, 746632]]]], [[[[[26, 15.0, 8.65], [14, 15.0, 8.65], [10, 9.54, -1.05], [28, 15.0, 28.0], [18, 15.0, 4.92], [4, 10.73, 28.0]], [5.0, -4.0, 15.0, 28.0]], [[10, 95144], [18, 481271], [14, 513909], [26, 513909], [4, 965358], [28, 1048575]]], [[[[14, 47.68, 0.0], [5, 100.0, 32.0], [2, 34.97, 0.0], [23, 100.0, 32.0], [6, 24.83, 13.56], [7, 26.2, 22.2], [9, 16.61, 32.0], [1, 100.0, 0.61]], [0.0, 0.0, 100.0, 32.0]], [[2, 70676], [14, 87104], [6, 188246], [1, 350047], [7, 630904], [9, 716526], [5, 1048575], [23, 1048575]]], [[[[28, 4.08, 8.0], [3, 4.08, 8.0], [11, 100.0, 0.0], [19, 86.81, 0.0], [29, 0.0, 0.0], [26, 60.01, 5.58], [10, 53.02, 8.0]], [0.0, 0.0, 100.0, 8.0]], [[29, 0], [19, 333120], [11, 349525], [3, 700139], [28, 700139], [26, 832668], [10, 961534]]], [[[[29, -10.0, -0.25], [3, -10.57, 28.0], [19, -10.0, -4.0], [9, -10.0, -4.0], [20, -10.0, -4.0]], [-10.0, -4.0, -10.0, 28.0]], [[9, 0], [19, 0], [20, 0], [29, 10880], [3, 699050]]], [[[[3, 5.0, -4.0], [2, 4.61, 3.19], [20, 5.0, 16.57], [23, 5.24, 1.38], [4, 5.0, 28.0]], [5.0, -4.0, 5.0, 28.0]], [[3, 0], [23, 34976], [2, 43048], [20, 557576], [4, 699050]]], [[[[12, 16.0, 2.12], [8, 16.0, 2.12], [20, 9.38, 4.0], [23, 0.0, 0.12], [25, 11.84, 4.0], [3, 7.58, -2.68], [2, 9.7, 2.72], [22, 8.35, -2.83]], [0.0, -4.0, 16.0, 4.0]], [[3, 122001], [22, 295734], [23, 524458], [2, 931568], [20, 965610], [25, 982971], [8, 1005055], [12, 1005055]]], [[[[24, 50.31, 6.58], [27, 90.0, 0.0], [25, 65.58, 0.0]], [-10.0, 0.0, 90.0, 32.0]], [[24, 308809], [25, 327697], [27, 349525]]], [[[[18, 6.0, -4.0], [8, 6.0, -4.0]], [-10.0, -4.0, 6.0, 28.0]], [[8, 349525], [18, 349525]]]], [[[[[13, -10.0, 27.92], [18, -9.16, 5.81]], [-10.0, 0.0, -10.0, 32.0]], [[18, 35458], [13, 666274]]], [[[[24, -10.0, 32.0], [10, -10.0, 32.0], [8, -10.0, 29.8], [29, -10.0, 6.27], [21, -10.0, 13.14], [14, -10.0, 17.37]], [-10.0, 0.0, -10.0, 32.0]], [[29, 41088], [21, 165920], [14, 526474], [8, 690818], [10, 699050], [24, 699050]]], [[[[8, 7.79, 32.0], [14, 7.79, 32.0], [4, 20.76, 28.84], [24, 5.0, 12.55], [16, 11.25, 15.97], [3, 5.0, 8.32], [19, 5.0, 9.9], [15, 4.07, 0.0], [20, 5.0, 28.49]], [5.0, 0.0, 21.0, 32.0]], [[15, 0], [3, 131208], [19, 133792], [24, 164354], [16, 256938], [20, 688298], [8, 716718], [14, 716718], [4, 1038216]]], [[[[1, -10.0, -4.0], [17, -10.0, -4.0], [18, 6.0, 0.25], [10, 1.71, 0.39], [23, -0.65, -4.0]], [-10.0, -4.0, 6.0, 4.0]], [[1, 0], [17, 0], [23, 266516], [10, 810579], [18, 875861]]], [[[[2, 5.42, -3.91], [24, 5.0, -4.0], [8, 5.0, 4.0], [7, 5.0, 4.0], [12, 5.0, 4.0]], [5.0, -4.0, 5.0, 4.0]], [[24, 0], [2, 138], [7, 699050], [8, 699050], [12, 699050]]], [[[[27, -10.0, 7.72], [4, -10.0, 1.55]], [-10.0, 0.0, -10.0, 8.0]], [[4, 41000], [27, 696992]]], [[[[3, 105.0, 3.0], [2, 105.0, 3.0], [20, 33.46, 28.0], [7, 79.71, 28.0]], [5.0, -4.0, 105.0, 28.0]], [[2, 392533], [3, 392533], [20, 765615], [7, 983035]]], [[[[25, 10.0, 5.64], [8, 10.0, 5.64], [6, 10.0, 6.72], [5, 0.0, 8.0]], [0.0, 0.0, 10.0, 8.0]], [[5, 699050], [8, 915287], [25, 915287], [6, 1013749]]]], [[[[[27, 5.0, 7.71], [11, 5.0, 8.0], [17, 5.0, 6.94], [21, 5.0, 2.6], [9, 5.0, 2.12], [10, 5.69, 0.0], [23, 5.0, 8.0], [29, 5.36, 8.0], [19, 5.0, 8.0], [7, 5.0, 8.0]], [5.0, 0.0, 5.0, 8.0]], [[10, 0], [9, 131242], [21, 139424], [17, 666240], [27, 696968], [7, 699050], [11, 699050], [19, 699050], [23, 699050], [29, 699050]]], [[[[18, 0.0, 32.0], [8, 16.0, 18.69]], [0.0, 0.0, 16.0, 32.0]], [[18, 699050], [8, 882557]]], [[[[26, 1.65, 0.0], [12, 0.0, 7.0], [2, 0.0, 6.65], [29, 10.0, 6.7], [6, 1.83, 8.48], [27, 6.69, 8.0], [14, 10.0, 8.0], [9, 10.0, 1.99]], [0.0, 0.0, 10.0, 8.0]], [[26, 17472], [9, 393213], [2, 664074], [12, 688128], [6, 716783], [27, 978683], [29, 1013719], [14, 1048575]]], [[[[19, 0.0, 0.0], [20, 0.0, 8.62], [17, -0.27, 0.0]], [0.0, 0.0, 0.0, 8.0]], [[17, 0], [19, 0], [20, 699050]]], [[[[26, 0.0, -4.0], [4, -0.48, -0.87], [9, 0.0, -2.79], [28, 0.0, -4.0], [10, 0.0, 28.0], [18, 0.0, -2.0], [5, 0.0, -4.0], [21, 0.0, 7.41]], [0.0, -4.0, 0.0, 28.0]], [[5, 0], [26, 0], [28, 0], [9, 2088], [18, 8192], [4, 10272], [21, 141474], [10, 699050]]], [[[[25, 5.0, 15.89], [11, 14.68, 32.0], [1, 13.39, 26.2], [21, 15.0, 8.56], [15, 15.0, 32.0]], [5.0, 0.0, 15.0, 32.0]], [[25, 174752], [21, 481111], [1, 995693], [11, 1047551], [15, 1048575]]], [[[[18, 15.0, 0.0], [6, 15.0, 0.0], [20, 5.0, 0.0]], [5.0, 0.0, 15.0, 8.0]], [[20, 0], [6, 349525], [18, 349525]]], [[[[28, 6.64, 32.0], [24, 1.44, 32.0], [12, 10.0, 21.67], [17, 0.0, 18.06], [6, 0.0, 17.6], [29, 4.94, 21.87], [9, 9.22, 7.36], [16, 0.08, 32.0], [13, 8.58, 1.11], [22, 0.0, 0.0]], [0.0, 0.0, 10.0, 32.0]], [[22, 0], [13, 334942], [9, 388490], [6, 526858], [17, 532482], [29, 647115], [16, 699114], [24, 715695], [12, 909175], [28, 978623]]]], [[[[[12, 0.0, 3.63], [24, 0.0, 3.63], [14, 0.0, 6.97]], [0.0, 0.0, 0.0, 8.0]], [[12, 172544], [24, 172544], [14, 666272]]], [[[[9, 21.0, -4.0], [7, 21.0, -4.0], [15, 19.51, 4.95], [10, 5.0, -4.0], [25, 21.0, -4.0], [12, 17.72, 4.0], [26, 21.0, -4.0], [8, 6.03, -4.0]], [5.0, -4.0, 21.0, 4.0]], [[10, 0], [8, 4097], [7, 349525], [9, 349525], [25, 349525], [26, 349525], [12, 1027838], [15, 1044138]]], [[[[27, 5.0, 0.0], [19, 4.22, 0.0], [10, 5.0, 8.05], [25, 5.0, 1.04], [12, 5.01, 8.0], [28, 5.0, 0.0], [23, 5.0, 0.0]], [5.0, 0.0, 5.0, 8.0]], [[19, 0], [23, 0], [27, 0], [28, 0], [25, 32802], [10, 699050], [12, 699050]]], [[[[8, -2.58, 0.0], [27, -10.0, 31.04], [19, -2.08, 28.72], [7, -10.0, 5.9], [14, 3.12, 0.0], [29, 6.0, 13.1], [11, -10.0, 3.02]], [-10.0, 0.0, 6.0, 32.0]], [[11, 10240], [7, 35488], [8, 86340], [14, 331797], [29, 515423], [27, 698370], [19, 776046]]], [[[[2, 0.0, 28.0], [1, 0.0, 28.0], [27, 0.0, -4.3], [22, 0.0, 10.81], [12, 0.0, 17.36], [9, 0.0, 28.0], [6, 0.0, 20.38], [28, 0.0, 27.4], [16, -0.31, 28.0], [18, 0.0, 9.16], [13, -0.36, 9.17]], [0.0, -4.0, 0.0, 28.0]], [[27, 0], [13, 165922], [18, 165922], [22, 172674], [12, 559242], [6, 655520], [28, 698528], [1, 699050], [2, 699050], [9, 699050], [16, 699050]]], [[[[26, 1.35, 0.0], [27, 1.35, 0.0], [28, 0.0, 0.0]], [0.0, 0.0, 10.0, 32.0]], [[28, 0], [26, 16452], [27, 16452]]], [[[[20, 40.86, 27.56], [16, 40.86, 27.56], [24, 76.52, 0.0], [29, 105.0, 32.0], [3, 105.0, 32.0], [22, 93.26, 32.0], [13, 5.0, 20.19], [4, 44.54, 32.0], [11, 76.3, 28.2]], [5.0, 0.0, 105.0, 32.0]], [[24, 282960], [13, 557096], [16, 736855], [20, 736855], [4, 781242], [11, 971116], [22, 1043135], [3, 1048575], [29, 1048575]]], [[[[23, 5.01, 28.0], [14, 5.01, 28.0], [2, 9.12, 21.41], [5, 15.0, -4.0], [10, 9.98, 5.44], [28, 15.0, -4.0], [6, 8.26, 8.74], [16, 13.41, 18.61], [3, 5.0, 1.35]], [5.0, -4.0, 15.0, 28.0]], [[3, 34954], [10, 220665], [6, 234107], [5, 349525], [28, 349525], [14, 699051], [23, 699051], [2, 740531], [16, 897883]]]]]\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-morton-lbvh-order-code-tie-break","generated_at":"2026-09-29T14:51:00.281216+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":"The tiebreak compares str(id).","sha256":"99d02b36c89b4b500fe1a27a355352b9561cfc04b6382fd9135ebb6e7bb17993","title":"Equal Morton codes are ordered by string id · 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":46.12,"exit_code":1,"observations":[{"actual":[[4,82257],[7,349525],[11,349525],[23,480765],[3,666280],[2,1045887]],"check":"case 0","expected":[[4,82257],[7,349525],[11,349525],[23,480765],[3,666280],[2,1045887]],"passed":true},{"actual":[[29,16709],[13,699050]],"check":"case 1","expected":[[29,16709],[13,699050]],"passed":true},{"actual":[[28,180318],[6,657954]],"check":"case 2","expected":[[28,180318],[6,657954]],"passed":true},{"actual":[[8,349249],[29,349249]],"check":"case 3","expected":[[8,349249],[29,349249]],"passed":true},{"actual":[[26,8320],[9,8320],[5,34976]],"check":"case 4","expected":[[9,8320],[26,8320],[5,34976]],"passed":false},{"actual":[[22,70933],[18,151537],[15,151537],[23,172074],[19,279829],[29,349525]],"check":"case 5","expected":[[22,70933],[15,151537],[18,151537],[23,172074],[19,279829],[29,349525]],"passed":false},{"actual":[[2,43144],[22,349525],[11,643747],[29,959075],[4,1048575]],"check":"case 6","expected":[[2,43144],[22,349525],[11,643747],[29,959075],[4,1048575]],"passed":true},{"actual":[[6,333056],[18,552312],[8,746632]],"check":"case 7","expected":[[6,333056],[18,552312],[8,746632]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [[4, 82257], [7, 349525], [11, 349525], [23, 480765], [3, 666280], [2, 1045887]], \"expected\": [[4, 82257], [7, 349525], [11, 349525], [23, 480765], [3, 666280], [2, 1045887]], \"passed\": true}, {\"check\": \"case 1\", \"actual\": [[29, 16709], [13, 699050]], \"expected\": [[29, 16709], [13, 699050]], \"passed\": true}, {\"check\": \"case 2\", \"actual\": [[28, 180318], [6, 657954]], \"expected\": [[28, 180318], [6, 657954]], \"passed\": true}, {\"check\": \"case 3\", \"actual\": [[8, 349249], [29, 349249]], \"expected\": [[8, 349249], [29, 349249]], \"passed\": true}, {\"check\": \"case 4\", \"actual\": [[26, 8320], [9, 8320], [5, 34976]], \"expected\": [[9, 8320], [26, 8320], [5, 34976]], \"passed\": false}, {\"check\": \"case 5\", \"actual\": [[22, 70933], [18, 151537], [15, 151537], [23, 172074], [19, 279829], [29, 349525]], \"expected\": [[22, 70933], [15, 151537], [18, 151537], [23, 172074], [19, 279829], [29, 349525]], \"passed\": false}, {\"check\": \"case 6\", \"actual\": [[2, 43144], [22, 349525], [11, 643747], [29, 959075], [4, 1048575]], \"expected\": [[2, 43144], [22, 349525], [11, 643747], [29, 959075], [4, 1048575]], \"passed\": true}, {\"check\": \"case 7\", \"actual\": [[6, 333056], [18, 552312], [8, 746632]], \"expected\": [[6, 333056], [18, 552312], [8, 746632]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.872,"exit_code":1,"observations":[{"actual":[[4,82257],[11,349525],[7,349525],[23,480765],[3,666280],[2,1045887]],"check":"case 0","expected":[[4,82257],[7,349525],[11,349525],[23,480765],[3,666280],[2,1045887]],"passed":false},{"actual":[[29,16709],[13,699050]],"check":"case 1","expected":[[29,16709],[13,699050]],"passed":true},{"actual":[[28,180318],[6,657954]],"check":"case 2","expected":[[28,180318],[6,657954]],"passed":true},{"actual":[[29,349249],[8,349249]],"check":"case 3","expected":[[8,349249],[29,349249]],"passed":false},{"actual":[[26,8320],[9,8320],[5,34976]],"check":"case 4","expected":[[9,8320],[26,8320],[5,34976]],"passed":false},{"actual":[[22,70933],[15,151537],[18,151537],[23,172074],[19,279829],[29,349525]],"check":"case 5","expected":[[22,70933],[15,151537],[18,151537],[23,172074],[19,279829],[29,349525]],"passed":true},{"actual":[[2,43144],[22,349525],[11,643747],[29,959075],[4,1048575]],"check":"case 6","expected":[[2,43144],[22,349525],[11,643747],[29,959075],[4,1048575]],"passed":true},{"actual":[[6,333056],[18,552312],[8,746632]],"check":"case 7","expected":[[6,333056],[18,552312],[8,746632]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [[4, 82257], [11, 349525], [7, 349525], [23, 480765], [3, 666280], [2, 1045887]], \"expected\": [[4, 82257], [7, 349525], [11, 349525], [23, 480765], [3, 666280], [2, 1045887]], \"passed\": false}, {\"check\": \"case 1\", \"actual\": [[29, 16709], [13, 699050]], \"expected\": [[29, 16709], [13, 699050]], \"passed\": true}, {\"check\": \"case 2\", \"actual\": [[28, 180318], [6, 657954]], \"expected\": [[28, 180318], [6, 657954]], \"passed\": true}, {\"check\": \"case 3\", \"actual\": [[29, 349249], [8, 349249]], \"expected\": [[8, 349249], [29, 349249]], \"passed\": false}, {\"check\": \"case 4\", \"actual\": [[26, 8320], [9, 8320], [5, 34976]], \"expected\": [[9, 8320], [26, 8320], [5, 34976]], \"passed\": false}, {\"check\": \"case 5\", \"actual\": [[22, 70933], [15, 151537], [18, 151537], [23, 172074], [19, 279829], [29, 349525]], \"expected\": [[22, 70933], [15, 151537], [18, 151537], [23, 172074], [19, 279829], [29, 349525]], \"passed\": true}, {\"check\": \"case 6\", \"actual\": [[2, 43144], [22, 349525], [11, 643747], [29, 959075], [4, 1048575]], \"expected\": [[2, 43144], [22, 349525], [11, 643747], [29, 959075], [4, 1048575]], \"passed\": true}, {\"check\": \"case 7\", \"actual\": [[6, 333056], [18, 552312], [8, 746632]], \"expected\": [[6, 333056], [18, 552312], [8, 746632]], \"passed\": true}], \"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."}}