{"abstract":"Objects on the far edge sort next to the origin and the LBVH gets huge nodes.","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":"Scaling by 1023 instead avoids the wrap but shifts every other code.","family":"w2-collision_detection_broadphase-morton-lbvh-order-upper-quantization-clamp","id":"FA-87561","implementations":{"attempt":{"sha256":"72f109791cda20f13ae34bf7c1d8a5a41a613b3235673ce491a3083ba80d68c3","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) * 1023)))\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], r[0]))\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[[23, 11.15, 0.0], [29, 11.15, 0.0], [13, 45.93, 3.76], [24, 99.01, 0.0]], [0.0, 0.0, 100.0, 32.0]], [[23, 5380], [29, 5380], [13, 97172], [24, 349457]]], [[[[20, 3.4, -4.0], [23, 3.4, -4.0], [1, 0.66, -4.0], [26, 10.0, 4.55], [10, 7.68, -4.0], [14, 10.0, -4.0], [19, 0.12, -4.0]], [0.0, -4.0, 10.0, 4.0]], [[19, 80], [1, 4101], [20, 69968], [23, 69968], [10, 327940], [14, 349525], [26, 1048575]]], [[[[25, -10.0, -4.0], [21, -10.0, -4.0], [16, 82.55, 16.96], [18, -10.0, -4.0], [7, 75.11, 28.0], [1, 75.9, 27.07], [27, -10.0, -4.0]], [-10.0, -4.0, 90.0, 28.0]], [[18, 0], [21, 0], [25, 0], [27, 0], [16, 903085], [1, 1031261], [7, 1031871]]], [[[[7, 34.1, -4.0], [18, 0.0, -4.0]], [0.0, -4.0, 100.0, 4.0]], [[18, 0], [7, 69969]]], [[[[6, -10.0, 6.28], [27, -10.0, 8.0]], [-10.0, 0.0, 90.0, 8.0]], [[6, 657418], [27, 699050]]], [[[[15, -9.79, -4.0], [23, -8.97, 28.0], [4, 1.83, -4.0], [3, -10.0, 28.0]], [-10.0, -4.0, 6.0, 28.0]], [[15, 81], [4, 283921], [3, 699050], [23, 703147]]], [[[[20, 5.0, 9.07], [21, 5.0, 8.49], [28, 20.12, 26.83], [9, 59.81, 0.0]], [5.0, 0.0, 105.0, 32.0]], [[21, 131242], [20, 133128], [9, 263425], [28, 680908]]], [[[[15, -10.0, 30.56], [2, -10.0, 32.0], [1, -10.0, 32.0], [27, -10.51, 15.54]], [-10.0, 0.0, 0.0, 32.0]], [[27, 174594], [15, 696834], [1, 699050], [2, 699050]]]], [[[[[13, 4.71, 4.67], [19, 4.71, 4.67], [11, 5.0, 8.0], [21, 4.43, 0.91], [2, 4.2, 0.0], [9, 5.0, 3.28], [3, 5.0, 6.75]], [5.0, 0.0, 5.0, 8.0]], [[2, 0], [21, 10784], [9, 165898], [13, 533026], [19, 533026], [3, 665600], [11, 699050]]], [[[[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]]], [[[[26, 0.85, 18.54], [29, 0.85, 18.54], [17, -10.0, 32.0]], [-10.0, 0.0, 0.0, 32.0]], [[17, 699050], [26, 882519], [29, 882519]]], [[[[7, 2.09, 26.27], [12, 0.0, 29.03], [3, 13.02, 11.98], [10, 0.0, 21.46]], [0.0, 0.0, 16.0, 32.0]], [[3, 473771], [10, 559272], [7, 680081], [12, 690176]]], [[[[12, 5.05, 22.98], [5, 15.0, 32.0], [21, 7.47, 17.17], [26, 7.31, 3.09], [15, 13.84, 10.33], [2, 5.0, 32.0], [24, 15.0, 32.0]], [5.0, 0.0, 15.0, 32.0]], [[26, 31832], [15, 483529], [21, 548210], [12, 565947], [2, 699050], [5, 1048575], [24, 1048575]]], [[[[13, 4.02, 10.58], [22, 4.02, 10.58], [23, 5.0, 0.0]], [5.0, 0.0, 5.0, 32.0]], [[23, 0], [13, 139784], [22, 139784]]], [[[[27, 5.0, 4.0], [21, 5.0, 4.0], [22, 105.0, -3.16], [3, 42.29, 4.0], [17, 5.0, 2.25], [12, 25.35, -0.08], [8, 70.41, 2.16]], [5.0, -4.0, 105.0, 4.0]], [[12, 195362], [22, 359903], [17, 657408], [21, 699050], [27, 699050], [3, 770043], [8, 934769]]], [[[[14, 0.0, -4.0], [22, 0.0, 13.71], [15, 0.13, 7.52], [1, 0.0, -4.0], [29, 0.0, 27.3], [3, 0.0, -1.25]], [0.0, -4.0, 0.0, 28.0]], [[1, 0], [14, 0], [3, 8832], [15, 141824], [22, 526888], [29, 698498]]]], [[[[[18, 10.38, 4.0], [21, 10.38, 4.0], [9, 10.0, 4.0], [7, 6.82, 4.0], [11, 2.93, -4.0], [27, 1.97, 4.7], [3, 0.0, 1.79]], [0.0, -4.0, 10.0, 4.0]], [[11, 66640], [3, 567330], [27, 719595], [7, 978926], [9, 1048575], [18, 1048575], [21, 1048575]]], [[[[28, 8.07, -4.0], [18, 8.07, -4.0], [6, 8.12, -0.78], [23, 5.0, 4.0], [1, 5.0, -4.0], [3, 11.1, 3.03], [5, 13.26, 4.0], [12, 6.24, 4.0], [25, 5.0, -2.08]], [5.0, -4.0, 15.0, 4.0]], [[1, 0], [25, 43554], [18, 66884], [28, 66884], [6, 231413], [23, 699050], [12, 704510], [3, 955658], [5, 1030907]]], [[[[27, -10.0, 7.72], [4, -10.0, 1.55]], [-10.0, 0.0, -10.0, 8.0]], [[4, 41000], [27, 696992]]], [[[[9, 5.0, 3.16], [20, 5.0, 3.16], [4, 5.0, 0.0], [17, 5.0, 0.0], [18, 5.0, 0.0]], [5.0, 0.0, 5.0, 8.0]], [[4, 0], [17, 0], [18, 0], [9, 164384], [20, 164384]]], [[[[6, 1.61, 0.0], [20, -10.0, 8.0], [7, 6.0, 0.0], [16, 5.81, 2.39], [21, -9.33, 0.0]], [-10.0, 0.0, 6.0, 8.0]], [[21, 1092], [6, 283669], [7, 349525], [16, 483079], [20, 699050]]], [[[[28, -7.77, 4.0], [19, -9.68, 1.96], [21, 5.53, 1.02], [14, -10.0, 2.58]], [-10.0, -4.0, 6.0, 4.0]], [[19, 568216], [14, 663688], [28, 715518], [21, 906249]]], [[[[18, -5.18, 28.0], [22, -4.56, 8.95], [15, -2.07, 10.7], [2, -10.0, -4.13], [11, 0.0, -4.0]], [-10.0, -4.0, 0.0, 28.0]], [[2, 0], [11, 349525], [22, 427769], [15, 501368], [18, 786171]]], [[[[29, 5.19, -4.0], [12, 5.19, -4.0]], [5.0, -4.0, 15.0, 4.0]], [[12, 261], [29, 261]]]], [[[[[5, 3.93, -4.0], [23, 3.93, -4.0], [25, 0.0, -4.0]], [0.0, -4.0, 16.0, 4.0]], [[25, 0], [5, 21829], [23, 21829]]], [[[[20, 5.0, 15.36], [9, 5.0, 15.36], [6, 5.0, -4.0], [8, 5.0, 7.29], [2, 5.0, -4.0], [14, 5.0, 24.78], [17, 5.0, 2.43], [7, 5.69, -4.0]], [5.0, -4.0, 5.0, 28.0]], [[2, 0], [6, 0], [7, 0], [17, 41122], [8, 141442], [9, 534666], [20, 534666], [14, 688768]]], [[[[28, 5.0, -3.83], [6, 5.0, -3.83], [1, 17.93, -4.0], [21, 5.0, 26.93]], [5.0, -4.0, 105.0, 28.0]], [[6, 34], [28, 34], [1, 16400], [21, 696994]]], [[[[10, 3.1, 28.0], [9, 3.1, 28.0], [12, 6.8, -4.0], [27, 10.0, -4.0]], [0.0, -4.0, 10.0, 28.0]], [[12, 279872], [27, 349525], [9, 765947], [10, 765947]]], [[[[29, -10.0, -1.72], [19, -10.0, -1.72], [27, 4.61, 4.0], [24, 43.35, 4.0], [11, 90.0, -0.83], [21, -10.0, -4.0], [3, 90.0, -4.0], [4, 10.23, 2.21], [9, -10.0, -4.0], [7, 40.89, -4.0]], [-10.0, -4.0, 90.0, 4.0]], [[9, 0], [21, 0], [19, 133130], [29, 133130], [7, 262209], [3, 349525], [11, 513911], [4, 676573], [27, 715707], [24, 962222]]], [[[[12, 5.0, -1.65], [13, 5.0, -4.0], [10, 85.95, 0.41], [24, 5.0, -4.0]], [5.0, -4.0, 105.0, 4.0]], [[13, 0], [24, 0], [12, 133280], [10, 855920]]], [[[[12, 5.76, 2.78], [24, 4.73, 0.0], [27, 10.0, 0.78]], [0.0, 0.0, 10.0, 8.0]], [[24, 87056], [27, 359775], [12, 407643]]], [[[[7, 10.0, 3.93], [25, 0.0, 5.78], [23, 3.34, 8.0]], [0.0, 0.0, 10.0, 8.0]], [[7, 524159], [25, 567306], [23, 768958]]]], [[[[[15, 94.67, 0.0], [16, 100.0, 0.0], [12, 0.0, 10.42], [20, 59.05, 23.9], [7, 100.0, 32.0], [2, 0.91, 12.9]], [0.0, 0.0, 100.0, 32.0]], [[12, 139426], [2, 164577], [15, 348225], [16, 349525], [20, 834544], [7, 1048575]]], [[[[21, 0.12, 0.0], [19, 7.02, 32.0], [28, 8.31, 21.26], [26, 16.0, 12.31], [8, 0.0, 32.0], [3, 15.19, 32.0], [20, 16.0, 0.0], [4, 0.0, 18.69], [29, 0.0, 24.15], [24, 16.0, 28.82], [11, 2.01, 6.28]], [0.0, 0.0, 16.0, 32.0]], [[21, 21], [11, 57472], [20, 349525], [26, 513495], [4, 533032], [29, 655392], [8, 699050], [19, 785067], [28, 821637], [24, 1038301], [3, 1047290]]], [[[[19, 5.0, -3.05], [25, 5.0, -3.05], [2, 5.0, -4.0], [7, 5.0, -0.21], [4, 5.0, -0.44]], [5.0, -4.0, 5.0, 28.0]], [[2, 0], [19, 680], [25, 680], [4, 10754], [7, 10882]]], [[[[5, 8.05, -0.06], [8, 19.59, -4.0], [16, 13.1, 14.81]], [5.0, -4.0, 21.0, 28.0]], [[5, 31405], [8, 345105], [16, 795286]]], [[[[14, 0.0, 6.96], [19, 0.0, 7.92], [23, 0.0, 3.51], [27, 100.0, 0.82], [20, 100.0, 0.0], [2, 63.48, 8.0]], [0.0, 0.0, 100.0, 8.0]], [[23, 172034], [20, 349525], [27, 359893], [14, 666248], [19, 698914], [2, 977646]]], [[[[6, -10.0, 1.87], [22, -10.0, 1.87], [18, -10.0, 19.83], [27, -7.05, 6.24], [13, -7.53, 27.93], [8, -8.41, -0.77], [23, -10.0, 0.56]], [-10.0, 0.0, 6.0, 32.0]], [[23, 514], [6, 2698], [22, 2698], [8, 5137], [27, 58746], [18, 535176], [13, 682998]]], [[[[23, 0.0, 0.0], [10, 0.0, 0.0], [2, 0.0, 23.84], [29, -0.27, 20.79], [15, 0.0, 0.0], [27, 0.0, 30.52], [21, -0.47, 17.6], [4, 0.0, 32.0], [18, 0.0, 0.0]], [0.0, 0.0, 0.0, 32.0]], [[10, 0], [15, 0], [18, 0], [23, 0], [21, 526858], [29, 557698], [2, 567944], [27, 696832], [4, 699050]]], [[[[2, 50.41, -4.0], [8, 61.32, -4.0], [11, 0.0, 1.98], [24, 11.47, -4.0], [22, 24.0, -4.71], [19, 100.0, -4.0]], [0.0, -4.0, 100.0, 4.0]], [[24, 5393], [22, 21777], [2, 262160], [8, 267525], [19, 349525], [11, 567970]]]]]\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":"8dc0bbf9bffc96082589a8f455bec53a8f632e339b27169e1b7da6a072d922a2","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 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], r[0]))\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[[23, 11.15, 0.0], [29, 11.15, 0.0], [13, 45.93, 3.76], [24, 99.01, 0.0]], [0.0, 0.0, 100.0, 32.0]], [[23, 5380], [29, 5380], [13, 97172], [24, 349457]]], [[[[20, 3.4, -4.0], [23, 3.4, -4.0], [1, 0.66, -4.0], [26, 10.0, 4.55], [10, 7.68, -4.0], [14, 10.0, -4.0], [19, 0.12, -4.0]], [0.0, -4.0, 10.0, 4.0]], [[19, 80], [1, 4101], [20, 69968], [23, 69968], [10, 327940], [14, 349525], [26, 1048575]]], [[[[25, -10.0, -4.0], [21, -10.0, -4.0], [16, 82.55, 16.96], [18, -10.0, -4.0], [7, 75.11, 28.0], [1, 75.9, 27.07], [27, -10.0, -4.0]], [-10.0, -4.0, 90.0, 28.0]], [[18, 0], [21, 0], [25, 0], [27, 0], [16, 903085], [1, 1031261], [7, 1031871]]], [[[[7, 34.1, -4.0], [18, 0.0, -4.0]], [0.0, -4.0, 100.0, 4.0]], [[18, 0], [7, 69969]]], [[[[6, -10.0, 6.28], [27, -10.0, 8.0]], [-10.0, 0.0, 90.0, 8.0]], [[6, 657418], [27, 699050]]], [[[[15, -9.79, -4.0], [23, -8.97, 28.0], [4, 1.83, -4.0], [3, -10.0, 28.0]], [-10.0, -4.0, 6.0, 28.0]], [[15, 81], [4, 283921], [3, 699050], [23, 703147]]], [[[[20, 5.0, 9.07], [21, 5.0, 8.49], [28, 20.12, 26.83], [9, 59.81, 0.0]], [5.0, 0.0, 105.0, 32.0]], [[21, 131242], [20, 133128], [9, 263425], [28, 680908]]], [[[[15, -10.0, 30.56], [2, -10.0, 32.0], [1, -10.0, 32.0], [27, -10.51, 15.54]], [-10.0, 0.0, 0.0, 32.0]], [[27, 174594], [15, 696834], [1, 699050], [2, 699050]]]], [[[[[13, 4.71, 4.67], [19, 4.71, 4.67], [11, 5.0, 8.0], [21, 4.43, 0.91], [2, 4.2, 0.0], [9, 5.0, 3.28], [3, 5.0, 6.75]], [5.0, 0.0, 5.0, 8.0]], [[2, 0], [21, 10784], [9, 165898], [13, 533026], [19, 533026], [3, 665600], [11, 699050]]], [[[[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]]], [[[[26, 0.85, 18.54], [29, 0.85, 18.54], [17, -10.0, 32.0]], [-10.0, 0.0, 0.0, 32.0]], [[17, 699050], [26, 882519], [29, 882519]]], [[[[7, 2.09, 26.27], [12, 0.0, 29.03], [3, 13.02, 11.98], [10, 0.0, 21.46]], [0.0, 0.0, 16.0, 32.0]], [[3, 473771], [10, 559272], [7, 680081], [12, 690176]]], [[[[12, 5.05, 22.98], [5, 15.0, 32.0], [21, 7.47, 17.17], [26, 7.31, 3.09], [15, 13.84, 10.33], [2, 5.0, 32.0], [24, 15.0, 32.0]], [5.0, 0.0, 15.0, 32.0]], [[26, 31832], [15, 483529], [21, 548210], [12, 565947], [2, 699050], [5, 1048575], [24, 1048575]]], [[[[13, 4.02, 10.58], [22, 4.02, 10.58], [23, 5.0, 0.0]], [5.0, 0.0, 5.0, 32.0]], [[23, 0], [13, 139784], [22, 139784]]], [[[[27, 5.0, 4.0], [21, 5.0, 4.0], [22, 105.0, -3.16], [3, 42.29, 4.0], [17, 5.0, 2.25], [12, 25.35, -0.08], [8, 70.41, 2.16]], [5.0, -4.0, 105.0, 4.0]], [[12, 195362], [22, 359903], [17, 657408], [21, 699050], [27, 699050], [3, 770043], [8, 934769]]], [[[[14, 0.0, -4.0], [22, 0.0, 13.71], [15, 0.13, 7.52], [1, 0.0, -4.0], [29, 0.0, 27.3], [3, 0.0, -1.25]], [0.0, -4.0, 0.0, 28.0]], [[1, 0], [14, 0], [3, 8832], [15, 141824], [22, 526888], [29, 698498]]]], [[[[[18, 10.38, 4.0], [21, 10.38, 4.0], [9, 10.0, 4.0], [7, 6.82, 4.0], [11, 2.93, -4.0], [27, 1.97, 4.7], [3, 0.0, 1.79]], [0.0, -4.0, 10.0, 4.0]], [[11, 66640], [3, 567330], [27, 719595], [7, 978926], [9, 1048575], [18, 1048575], [21, 1048575]]], [[[[28, 8.07, -4.0], [18, 8.07, -4.0], [6, 8.12, -0.78], [23, 5.0, 4.0], [1, 5.0, -4.0], [3, 11.1, 3.03], [5, 13.26, 4.0], [12, 6.24, 4.0], [25, 5.0, -2.08]], [5.0, -4.0, 15.0, 4.0]], [[1, 0], [25, 43554], [18, 66884], [28, 66884], [6, 231413], [23, 699050], [12, 704510], [3, 955658], [5, 1030907]]], [[[[27, -10.0, 7.72], [4, -10.0, 1.55]], [-10.0, 0.0, -10.0, 8.0]], [[4, 41000], [27, 696992]]], [[[[9, 5.0, 3.16], [20, 5.0, 3.16], [4, 5.0, 0.0], [17, 5.0, 0.0], [18, 5.0, 0.0]], [5.0, 0.0, 5.0, 8.0]], [[4, 0], [17, 0], [18, 0], [9, 164384], [20, 164384]]], [[[[6, 1.61, 0.0], [20, -10.0, 8.0], [7, 6.0, 0.0], [16, 5.81, 2.39], [21, -9.33, 0.0]], [-10.0, 0.0, 6.0, 8.0]], [[21, 1092], [6, 283669], [7, 349525], [16, 483079], [20, 699050]]], [[[[28, -7.77, 4.0], [19, -9.68, 1.96], [21, 5.53, 1.02], [14, -10.0, 2.58]], [-10.0, -4.0, 6.0, 4.0]], [[19, 568216], [14, 663688], [28, 715518], [21, 906249]]], [[[[18, -5.18, 28.0], [22, -4.56, 8.95], [15, -2.07, 10.7], [2, -10.0, -4.13], [11, 0.0, -4.0]], [-10.0, -4.0, 0.0, 28.0]], [[2, 0], [11, 349525], [22, 427769], [15, 501368], [18, 786171]]], [[[[29, 5.19, -4.0], [12, 5.19, -4.0]], [5.0, -4.0, 15.0, 4.0]], [[12, 261], [29, 261]]]], [[[[[5, 3.93, -4.0], [23, 3.93, -4.0], [25, 0.0, -4.0]], [0.0, -4.0, 16.0, 4.0]], [[25, 0], [5, 21829], [23, 21829]]], [[[[20, 5.0, 15.36], [9, 5.0, 15.36], [6, 5.0, -4.0], [8, 5.0, 7.29], [2, 5.0, -4.0], [14, 5.0, 24.78], [17, 5.0, 2.43], [7, 5.69, -4.0]], [5.0, -4.0, 5.0, 28.0]], [[2, 0], [6, 0], [7, 0], [17, 41122], [8, 141442], [9, 534666], [20, 534666], [14, 688768]]], [[[[28, 5.0, -3.83], [6, 5.0, -3.83], [1, 17.93, -4.0], [21, 5.0, 26.93]], [5.0, -4.0, 105.0, 28.0]], [[6, 34], [28, 34], [1, 16400], [21, 696994]]], [[[[10, 3.1, 28.0], [9, 3.1, 28.0], [12, 6.8, -4.0], [27, 10.0, -4.0]], [0.0, -4.0, 10.0, 28.0]], [[12, 279872], [27, 349525], [9, 765947], [10, 765947]]], [[[[29, -10.0, -1.72], [19, -10.0, -1.72], [27, 4.61, 4.0], [24, 43.35, 4.0], [11, 90.0, -0.83], [21, -10.0, -4.0], [3, 90.0, -4.0], [4, 10.23, 2.21], [9, -10.0, -4.0], [7, 40.89, -4.0]], [-10.0, -4.0, 90.0, 4.0]], [[9, 0], [21, 0], [19, 133130], [29, 133130], [7, 262209], [3, 349525], [11, 513911], [4, 676573], [27, 715707], [24, 962222]]], [[[[12, 5.0, -1.65], [13, 5.0, -4.0], [10, 85.95, 0.41], [24, 5.0, -4.0]], [5.0, -4.0, 105.0, 4.0]], [[13, 0], [24, 0], [12, 133280], [10, 855920]]], [[[[12, 5.76, 2.78], [24, 4.73, 0.0], [27, 10.0, 0.78]], [0.0, 0.0, 10.0, 8.0]], [[24, 87056], [27, 359775], [12, 407643]]], [[[[7, 10.0, 3.93], [25, 0.0, 5.78], [23, 3.34, 8.0]], [0.0, 0.0, 10.0, 8.0]], [[7, 524159], [25, 567306], [23, 768958]]]], [[[[[15, 94.67, 0.0], [16, 100.0, 0.0], [12, 0.0, 10.42], [20, 59.05, 23.9], [7, 100.0, 32.0], [2, 0.91, 12.9]], [0.0, 0.0, 100.0, 32.0]], [[12, 139426], [2, 164577], [15, 348225], [16, 349525], [20, 834544], [7, 1048575]]], [[[[21, 0.12, 0.0], [19, 7.02, 32.0], [28, 8.31, 21.26], [26, 16.0, 12.31], [8, 0.0, 32.0], [3, 15.19, 32.0], [20, 16.0, 0.0], [4, 0.0, 18.69], [29, 0.0, 24.15], [24, 16.0, 28.82], [11, 2.01, 6.28]], [0.0, 0.0, 16.0, 32.0]], [[21, 21], [11, 57472], [20, 349525], [26, 513495], [4, 533032], [29, 655392], [8, 699050], [19, 785067], [28, 821637], [24, 1038301], [3, 1047290]]], [[[[19, 5.0, -3.05], [25, 5.0, -3.05], [2, 5.0, -4.0], [7, 5.0, -0.21], [4, 5.0, -0.44]], [5.0, -4.0, 5.0, 28.0]], [[2, 0], [19, 680], [25, 680], [4, 10754], [7, 10882]]], [[[[5, 8.05, -0.06], [8, 19.59, -4.0], [16, 13.1, 14.81]], [5.0, -4.0, 21.0, 28.0]], [[5, 31405], [8, 345105], [16, 795286]]], [[[[14, 0.0, 6.96], [19, 0.0, 7.92], [23, 0.0, 3.51], [27, 100.0, 0.82], [20, 100.0, 0.0], [2, 63.48, 8.0]], [0.0, 0.0, 100.0, 8.0]], [[23, 172034], [20, 349525], [27, 359893], [14, 666248], [19, 698914], [2, 977646]]], [[[[6, -10.0, 1.87], [22, -10.0, 1.87], [18, -10.0, 19.83], [27, -7.05, 6.24], [13, -7.53, 27.93], [8, -8.41, -0.77], [23, -10.0, 0.56]], [-10.0, 0.0, 6.0, 32.0]], [[23, 514], [6, 2698], [22, 2698], [8, 5137], [27, 58746], [18, 535176], [13, 682998]]], [[[[23, 0.0, 0.0], [10, 0.0, 0.0], [2, 0.0, 23.84], [29, -0.27, 20.79], [15, 0.0, 0.0], [27, 0.0, 30.52], [21, -0.47, 17.6], [4, 0.0, 32.0], [18, 0.0, 0.0]], [0.0, 0.0, 0.0, 32.0]], [[10, 0], [15, 0], [18, 0], [23, 0], [21, 526858], [29, 557698], [2, 567944], [27, 696832], [4, 699050]]], [[[[2, 50.41, -4.0], [8, 61.32, -4.0], [11, 0.0, 1.98], [24, 11.47, -4.0], [22, 24.0, -4.71], [19, 100.0, -4.0]], [0.0, -4.0, 100.0, 4.0]], [[24, 5393], [22, 21777], [2, 262160], [8, 267525], [19, 349525], [11, 567970]]]]]\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-upper-quantization-clamp","generated_at":"2026-09-29T14:50:59.923836+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 quantized value is not clamped to 1023, so 1024 masks to 0.","sha256":"6cc898d1edc00c08b8c9d629acdcc054dffaf7ddb4cc4d82523edcb6e550cad8","title":"Centroids on the upper scene bound wrap to cell zero · 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.121,"exit_code":1,"observations":[{"actual":[[23,5380],[29,5380],[13,97169],[24,349456]],"check":"case 0","expected":[[23,5380],[29,5380],[13,97172],[24,349457]],"passed":false},{"actual":[[19,80],[1,4101],[20,69957],[23,69957],[10,327937],[14,349525],[26,1048575]],"check":"case 1","expected":[[19,80],[1,4101],[20,69968],[23,69968],[10,327940],[14,349525],[26,1048575]],"passed":false},{"actual":[[18,0],[21,0],[25,0],[27,0],[16,903084],[1,1031254],[7,1031870]],"check":"case 2","expected":[[18,0],[21,0],[25,0],[27,0],[16,903085],[1,1031261],[7,1031871]],"passed":false},{"actual":[[18,0],[7,69968]],"check":"case 3","expected":[[18,0],[7,69969]],"passed":false},{"actual":[[6,657418],[27,699050]],"check":"case 4","expected":[[6,657418],[27,699050]],"passed":true},{"actual":[[15,81],[4,283920],[3,699050],[23,703147]],"check":"case 5","expected":[[15,81],[4,283921],[3,699050],[23,703147]],"passed":false},{"actual":[[21,131242],[20,133122],[9,263424],[28,680902]],"check":"case 6","expected":[[21,131242],[20,133128],[9,263425],[28,680908]],"passed":false},{"actual":[[27,174592],[15,696832],[1,699050],[2,699050]],"check":"case 7","expected":[[27,174594],[15,696834],[1,699050],[2,699050]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [[23, 5380], [29, 5380], [13, 97169], [24, 349456]], \"expected\": [[23, 5380], [29, 5380], [13, 97172], [24, 349457]], \"passed\": false}, {\"check\": \"case 1\", \"actual\": [[19, 80], [1, 4101], [20, 69957], [23, 69957], [10, 327937], [14, 349525], [26, 1048575]], \"expected\": [[19, 80], [1, 4101], [20, 69968], [23, 69968], [10, 327940], [14, 349525], [26, 1048575]], \"passed\": false}, {\"check\": \"case 2\", \"actual\": [[18, 0], [21, 0], [25, 0], [27, 0], [16, 903084], [1, 1031254], [7, 1031870]], \"expected\": [[18, 0], [21, 0], [25, 0], [27, 0], [16, 903085], [1, 1031261], [7, 1031871]], \"passed\": false}, {\"check\": \"case 3\", \"actual\": [[18, 0], [7, 69968]], \"expected\": [[18, 0], [7, 69969]], \"passed\": false}, {\"check\": \"case 4\", \"actual\": [[6, 657418], [27, 699050]], \"expected\": [[6, 657418], [27, 699050]], \"passed\": true}, {\"check\": \"case 5\", \"actual\": [[15, 81], [4, 283920], [3, 699050], [23, 703147]], \"expected\": [[15, 81], [4, 283921], [3, 699050], [23, 703147]], \"passed\": false}, {\"check\": \"case 6\", \"actual\": [[21, 131242], [20, 133122], [9, 263424], [28, 680902]], \"expected\": [[21, 131242], [20, 133128], [9, 263425], [28, 680908]], \"passed\": false}, {\"check\": \"case 7\", \"actual\": [[27, 174592], [15, 696832], [1, 699050], [2, 699050]], \"expected\": [[27, 174594], [15, 696834], [1, 699050], [2, 699050]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.277,"exit_code":1,"observations":[{"actual":[[23,5380],[29,5380],[13,97172],[24,349457]],"check":"case 0","expected":[[23,5380],[29,5380],[13,97172],[24,349457]],"passed":true},{"actual":[[14,0],[19,80],[1,4101],[26,8232],[20,69968],[23,69968],[10,327940]],"check":"case 1","expected":[[19,80],[1,4101],[20,69968],[23,69968],[10,327940],[14,349525],[26,1048575]],"passed":false},{"actual":[[18,0],[21,0],[25,0],[27,0],[7,332821],[16,903085],[1,1031261]],"check":"case 2","expected":[[18,0],[21,0],[25,0],[27,0],[16,903085],[1,1031261],[7,1031871]],"passed":false},{"actual":[[18,0],[7,69969]],"check":"case 3","expected":[[18,0],[7,69969]],"passed":true},{"actual":[[27,0],[6,657418]],"check":"case 4","expected":[[6,657418],[27,699050]],"passed":false},{"actual":[[3,0],[15,81],[23,4097],[4,283921]],"check":"case 5","expected":[[15,81],[4,283921],[3,699050],[23,703147]],"passed":false},{"actual":[[21,131242],[20,133128],[9,263425],[28,680908]],"check":"case 6","expected":[[21,131242],[20,133128],[9,263425],[28,680908]],"passed":true},{"actual":[[1,0],[2,0],[27,174594],[15,696834]],"check":"case 7","expected":[[27,174594],[15,696834],[1,699050],[2,699050]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [[23, 5380], [29, 5380], [13, 97172], [24, 349457]], \"expected\": [[23, 5380], [29, 5380], [13, 97172], [24, 349457]], \"passed\": true}, {\"check\": \"case 1\", \"actual\": [[14, 0], [19, 80], [1, 4101], [26, 8232], [20, 69968], [23, 69968], [10, 327940]], \"expected\": [[19, 80], [1, 4101], [20, 69968], [23, 69968], [10, 327940], [14, 349525], [26, 1048575]], \"passed\": false}, {\"check\": \"case 2\", \"actual\": [[18, 0], [21, 0], [25, 0], [27, 0], [7, 332821], [16, 903085], [1, 1031261]], \"expected\": [[18, 0], [21, 0], [25, 0], [27, 0], [16, 903085], [1, 1031261], [7, 1031871]], \"passed\": false}, {\"check\": \"case 3\", \"actual\": [[18, 0], [7, 69969]], \"expected\": [[18, 0], [7, 69969]], \"passed\": true}, {\"check\": \"case 4\", \"actual\": [[27, 0], [6, 657418]], \"expected\": [[6, 657418], [27, 699050]], \"passed\": false}, {\"check\": \"case 5\", \"actual\": [[3, 0], [15, 81], [23, 4097], [4, 283921]], \"expected\": [[15, 81], [4, 283921], [3, 699050], [23, 703147]], \"passed\": false}, {\"check\": \"case 6\", \"actual\": [[21, 131242], [20, 133128], [9, 263425], [28, 680908]], \"expected\": [[21, 131242], [20, 133128], [9, 263425], [28, 680908]], \"passed\": true}, {\"check\": \"case 7\", \"actual\": [[1, 0], [2, 0], [27, 174594], [15, 696834]], \"expected\": [[27, 174594], [15, 696834], [1, 699050], [2, 699050]], \"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."}}