{"abstract":"Overlap tests double for moving crowds.","category":"Collision detection broadphase","checks":8,"contract":"solve(proxies, moved): dynamic-tree pair update. For each distinct moved proxy q (first occurrence order) test every other proxy p; skip p when p also moved and p>q (that pair is found from p). Count every overlap test performed; closed intervals. Return [sorted unique [min,max] pairs, test count].","contract_signature":"proxies, moved","evaluation_group":"w2-collision_detection_broadphase-move-buffer-pairs","failed_approach":"Skipping after counting the test still pays for the duplicate test.","family":"w2-collision_detection_broadphase-move-buffer-pairs-duplicate-test-avoidance","id":"FA-87716","implementations":{"attempt":{"sha256":"2e7587d5b438e10486faf2fe8a1eb3d72e01caef66dc14323031b1230f2a7a35","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(proxies, moved):\n    box = {p[0]: p for p in proxies}\n    mv = set(moved)\n    seen = set()\n    raw = []\n    tests = 0\n    for q in moved:\n        if q in seen:\n            continue\n        seen.add(q)\n        a = box[q]\n        for p in proxies:\n            if p[0] == q:\n                continue\n            tests += 1\n            if p[0] in mv and p[0] > q:\n                continue\n            if a[1] <= p[3] and p[1] <= a[3] and a[2] <= p[4] and p[2] <= a[4]:\n                raw.append((min(q, p[0]), max(q, p[0])))\n    pairs = sorted(set(raw))\n    return [[list(x) for x in pairs], tests]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[[36, 4.0, 5.0, 5.0, 6.0], [35, 3.0, 4.0, 4.0, 6.0]], [36, 36]], [[[35, 36]], 1]], [[[[8, 2.0, -1.0, 5.0, 1.0], [18, 5.0, 1.0, 6.0, 3.0], [6, 0.0, -5.0, 3.0, -4.0], [22, -4.0, 2.0, -1.0, 3.0], [13, -5.0, 4.0, -3.0, 7.0], [1, 2.0, -5.0, 4.0, -3.0]], [6, 6, 22]], [[[1, 6]], 9]], [[[[18, 3.0, 5.0, 3.0, 6.0], [29, 3.0, -2.0, 5.0, -1.0], [13, 1.0, -5.0, 1.0, -5.0], [31, 0.0, -5.0, 0.0, -2.0], [22, 4.0, 4.0, 6.0, 4.0], [12, 2.0, 3.0, 2.0, 5.0], [6, -4.0, -5.0, -4.0, -4.0]], [6, 6, 31, 18, 18]], [[], 15]], [[[[10, -2.0, 4.0, -2.0, 4.0], [9, 1.0, -4.0, 3.0, -2.0]], [10, 9, 9]], [[], 1]], [[[[9, -5.0, 4.0, -2.0, 5.0], [31, -1.0, 5.0, 1.0, 7.0], [28, -3.0, 3.0, -1.0, 4.0]], [28]], [[[9, 28]], 2]], [[[[9, -5.0, -2.0, -3.0, 0.0], [7, 4.0, 5.0, 4.0, 6.0], [37, -1.0, 2.0, -1.0, 4.0], [14, -5.0, -5.0, -4.0, -2.0], [31, 1.0, -4.0, 4.0, -1.0], [24, 2.0, -2.0, 3.0, -1.0]], [9, 37, 9, 7, 14]], [[[9, 14]], 14]], [[[[38, -2.0, 3.0, -1.0, 4.0], [17, 1.0, 3.0, 1.0, 3.0], [6, -3.0, -2.0, -2.0, -2.0], [7, 0.0, 1.0, 3.0, 4.0], [37, -5.0, -1.0, -3.0, 1.0], [2, 1.0, -5.0, 3.0, -4.0]], [38, 17, 6, 7]], [[[7, 17]], 14]], [[[[30, 5.0, 4.0, 8.0, 4.0], [39, 4.0, 1.0, 7.0, 2.0], [2, 5.0, -3.0, 6.0, -1.0], [3, 0.0, -5.0, 2.0, -5.0]], [3]], [[], 3]]], [[[[[26, -4.0, 4.0, -3.0, 6.0], [2, -1.0, -4.0, 0.0, -1.0]], [26]], [[], 1]], [[[[28, 4.0, -3.0, 4.0, 0.0], [27, -4.0, -5.0, -2.0, -5.0], [11, 1.0, 1.0, 3.0, 3.0]], [11]], [[], 2]], [[[[23, -5.0, 0.0, -5.0, 1.0], [1, -3.0, 2.0, 0.0, 5.0]], [23, 1, 23, 1, 23]], [[], 1]], [[[[37, 3.0, 0.0, 3.0, 1.0], [1, 1.0, -4.0, 2.0, -2.0]], [37, 37, 1, 37]], [[], 1]], [[[[6, 0.0, -1.0, 3.0, 2.0], [2, -3.0, 4.0, -1.0, 5.0], [37, 1.0, 4.0, 2.0, 7.0], [4, -4.0, -2.0, -2.0, -1.0], [17, 4.0, -1.0, 5.0, 2.0], [34, -1.0, -3.0, -1.0, -1.0]], [4, 2]], [[], 9]], [[[[26, 4.0, -2.0, 6.0, -1.0], [12, 4.0, -1.0, 6.0, 1.0], [20, -3.0, 4.0, -1.0, 4.0], [1, 4.0, 4.0, 4.0, 5.0]], [20, 20, 26, 1, 26]], [[[12, 26]], 6]], [[[[4, -4.0, -3.0, -3.0, -3.0], [13, 1.0, -4.0, 1.0, -2.0], [37, -3.0, -4.0, -3.0, -4.0]], [37]], [[], 2]], [[[[21, -1.0, 4.0, 2.0, 4.0], [11, -4.0, 2.0, -4.0, 2.0]], [21, 11]], [[], 1]]], [[[[[10, -5.0, 4.0, -4.0, 7.0], [32, 2.0, 5.0, 4.0, 8.0], [31, 5.0, 2.0, 5.0, 4.0], [18, -4.0, 0.0, -1.0, 3.0], [30, -3.0, -1.0, -1.0, 1.0], [2, -5.0, 5.0, -4.0, 7.0]], [2, 2, 18, 2, 2]], [[[2, 10], [18, 30]], 9]], [[[[30, 3.0, 3.0, 3.0, 6.0], [29, -4.0, 0.0, -3.0, 0.0], [36, 5.0, -4.0, 8.0, -4.0], [35, 2.0, 2.0, 4.0, 3.0], [31, 2.0, 4.0, 5.0, 5.0], [9, 3.0, 2.0, 4.0, 3.0], [14, 1.0, 1.0, 2.0, 4.0], [12, -4.0, -3.0, -2.0, 0.0]], [29, 36, 31, 14]], [[[12, 29], [14, 31], [14, 35], [30, 31]], 22]], [[[[20, -5.0, 1.0, -3.0, 2.0], [7, 1.0, 0.0, 2.0, 1.0], [8, 1.0, -3.0, 2.0, -1.0], [3, -4.0, -1.0, -4.0, 2.0], [19, 2.0, -4.0, 3.0, -2.0], [32, 1.0, 0.0, 3.0, 3.0], [35, -2.0, -1.0, 1.0, 0.0], [18, -5.0, -2.0, -4.0, -1.0]], [32]], [[[7, 32], [32, 35]], 7]], [[[[2, -3.0, 5.0, -2.0, 6.0], [7, 4.0, -1.0, 7.0, -1.0]], [7, 2]], [[], 1]], [[[[5, 5.0, 5.0, 8.0, 7.0], [26, 4.0, -4.0, 6.0, -4.0], [1, 0.0, 2.0, 2.0, 4.0]], [1]], [[], 2]], [[[[4, 4.0, -5.0, 6.0, -4.0], [38, -3.0, -3.0, -3.0, 0.0], [31, 4.0, 4.0, 5.0, 7.0], [28, 4.0, 3.0, 7.0, 3.0], [30, -4.0, 0.0, -1.0, 1.0], [3, 3.0, -5.0, 3.0, -5.0], [36, -4.0, -5.0, -2.0, -3.0], [10, 2.0, 1.0, 2.0, 3.0], [6, -5.0, 1.0, -4.0, 2.0]], [31, 10, 30, 10]], [[[6, 30], [30, 38]], 21]], [[[[28, -2.0, -4.0, 1.0, -4.0], [6, 4.0, 3.0, 5.0, 3.0], [3, -1.0, 3.0, 2.0, 5.0], [26, 3.0, 0.0, 4.0, 2.0], [21, -5.0, -3.0, -2.0, -3.0], [22, -5.0, -3.0, -2.0, -2.0], [36, -3.0, -1.0, -2.0, 2.0]], [3, 28, 6, 21, 21]], [[[21, 22]], 18]], [[[[3, -2.0, -2.0, 1.0, 0.0], [8, 2.0, -3.0, 5.0, -2.0], [24, -1.0, -2.0, 0.0, 1.0], [38, -4.0, -1.0, -4.0, 2.0]], [3]], [[[3, 24]], 3]]], [[[[[13, -2.0, 3.0, 0.0, 3.0], [16, 4.0, -5.0, 4.0, -3.0]], [16, 13, 13, 13]], [[], 1]], [[[[23, 2.0, -2.0, 5.0, -2.0], [27, 2.0, 4.0, 2.0, 7.0], [5, 4.0, 2.0, 5.0, 2.0], [7, -2.0, 1.0, -2.0, 3.0], [35, 0.0, 0.0, 3.0, 3.0], [2, 5.0, -4.0, 7.0, -1.0], [26, -2.0, 4.0, -1.0, 7.0]], [26, 27, 23, 27, 7]], [[[2, 23]], 18]], [[[[20, -1.0, -2.0, 1.0, -2.0], [26, 4.0, -4.0, 6.0, -1.0], [28, 4.0, -3.0, 4.0, -3.0], [10, 4.0, -5.0, 5.0, -5.0], [13, 4.0, 3.0, 5.0, 6.0], [17, -4.0, -5.0, -4.0, -5.0], [29, 5.0, -4.0, 8.0, -4.0], [32, 3.0, -4.0, 4.0, -3.0]], [28]], [[[26, 28], [28, 32]], 7]], [[[[35, 5.0, 5.0, 8.0, 6.0], [39, -4.0, -4.0, -3.0, -4.0], [32, 1.0, 1.0, 2.0, 3.0], [26, -5.0, 0.0, -5.0, 1.0], [23, -2.0, 1.0, -2.0, 2.0], [13, -3.0, -3.0, -1.0, 0.0], [1, 5.0, 0.0, 5.0, 3.0], [34, 3.0, -2.0, 5.0, -1.0]], [39]], [[], 7]], [[[[8, 2.0, 4.0, 5.0, 4.0], [26, -1.0, 2.0, -1.0, 2.0], [5, 4.0, 3.0, 4.0, 4.0], [16, -3.0, 0.0, -1.0, 1.0], [4, 0.0, 1.0, 3.0, 4.0], [34, 3.0, -3.0, 5.0, -2.0], [17, 4.0, -1.0, 5.0, -1.0], [31, 0.0, 1.0, 0.0, 4.0], [3, -4.0, -5.0, -1.0, -4.0]], [5]], [[[5, 8]], 8]], [[[[9, 2.0, 4.0, 2.0, 5.0], [16, 3.0, -4.0, 3.0, -1.0], [37, 0.0, -5.0, 2.0, -5.0], [23, -5.0, -1.0, -5.0, 1.0], [33, 0.0, -3.0, 1.0, -3.0], [12, 1.0, 3.0, 1.0, 5.0], [17, 1.0, -3.0, 3.0, -2.0], [7, 1.0, 0.0, 1.0, 2.0]], [33, 37, 7]], [[[17, 33]], 18]], [[[[23, -2.0, -4.0, 1.0, -1.0], [16, -3.0, -4.0, -2.0, -2.0], [25, 5.0, 1.0, 8.0, 2.0], [3, 3.0, 4.0, 4.0, 5.0], [8, 0.0, 0.0, 0.0, 2.0], [13, -1.0, -3.0, 1.0, 0.0], [19, -1.0, -3.0, 2.0, -3.0], [28, -2.0, 2.0, -2.0, 4.0], [29, -5.0, 2.0, -3.0, 2.0]], [8]], [[[8, 13]], 8]], [[[[9, 1.0, -4.0, 2.0, -1.0], [14, 1.0, -5.0, 4.0, -2.0], [4, -2.0, 4.0, 0.0, 6.0], [29, 3.0, 1.0, 3.0, 2.0], [23, 1.0, 2.0, 3.0, 4.0]], [29, 29, 23, 4, 14]], [[[9, 14], [23, 29]], 10]]], [[[[[10, -3.0, -1.0, -2.0, 2.0], [9, 3.0, -3.0, 5.0, 0.0], [30, -1.0, 5.0, 1.0, 7.0], [14, -5.0, -2.0, -4.0, 1.0], [18, 5.0, 4.0, 7.0, 5.0], [7, 4.0, 5.0, 5.0, 5.0], [11, 3.0, 0.0, 5.0, 1.0], [22, -2.0, -4.0, -2.0, -1.0], [21, -1.0, 2.0, 2.0, 2.0]], [11, 7, 10, 10]], [[[7, 18], [9, 11], [10, 22]], 21]], [[[[35, -3.0, -1.0, -2.0, 0.0], [39, 3.0, -3.0, 6.0, 0.0], [20, 1.0, 0.0, 3.0, 0.0], [33, 1.0, 2.0, 2.0, 5.0], [18, 2.0, 3.0, 5.0, 3.0], [14, -1.0, 2.0, 2.0, 2.0]], [33, 14]], [[[14, 33], [18, 33]], 9]], [[[[5, -2.0, -5.0, -2.0, -2.0], [19, 0.0, 5.0, 2.0, 6.0], [13, 4.0, -5.0, 5.0, -3.0], [15, -4.0, 2.0, -4.0, 4.0], [27, 5.0, -3.0, 8.0, 0.0], [25, -3.0, -3.0, 0.0, -1.0], [4, 1.0, -5.0, 2.0, -2.0]], [5, 4]], [[[5, 25]], 11]], [[[[35, 2.0, -2.0, 3.0, 1.0], [31, -3.0, -1.0, -2.0, -1.0], [3, -1.0, 0.0, 2.0, 0.0], [6, 5.0, 0.0, 8.0, 1.0], [27, 0.0, -4.0, 0.0, -2.0], [34, 4.0, 1.0, 4.0, 1.0], [5, -1.0, 4.0, -1.0, 5.0], [8, -2.0, 5.0, -2.0, 8.0]], [3]], [[[3, 35]], 7]], [[[[6, 2.0, -3.0, 4.0, -1.0], [25, 3.0, 4.0, 3.0, 6.0], [34, 2.0, 3.0, 2.0, 6.0], [1, 0.0, -3.0, 2.0, -1.0], [7, 1.0, 5.0, 1.0, 6.0], [16, -3.0, -2.0, -1.0, 1.0]], [6]], [[[1, 6]], 5]], [[[[17, 1.0, -1.0, 4.0, 0.0], [1, -3.0, 3.0, -2.0, 5.0], [38, 0.0, 4.0, 1.0, 6.0], [20, -5.0, -5.0, -3.0, -3.0], [27, 0.0, -4.0, 3.0, -4.0], [28, -4.0, 4.0, -2.0, 5.0], [3, -2.0, -5.0, -1.0, -2.0], [35, -1.0, 3.0, 2.0, 5.0]], [28, 28, 27, 27, 35]], [[[1, 28], [35, 38]], 18]], [[[[2, 1.0, 1.0, 4.0, 3.0], [4, -3.0, -2.0, -1.0, -2.0], [15, 5.0, -3.0, 7.0, 0.0], [27, -2.0, 3.0, -1.0, 6.0]], [15]], [[], 3]], [[[[24, 5.0, 3.0, 6.0, 5.0], [36, -4.0, -5.0, -3.0, -5.0]], [36, 24, 24, 36, 24]], [[], 1]]]]\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":"ae261f012fefca84e28b2592c21c5bfb7a0592a262547992d2451cd7869f93b0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(proxies, moved):\n    box = {p[0]: p for p in proxies}\n    mv = set(moved)\n    seen = set()\n    raw = []\n    tests = 0\n    for q in moved:\n        if q in seen:\n            continue\n        seen.add(q)\n        a = box[q]\n        for p in proxies:\n            if p[0] == q:\n                continue\n            tests += 1\n            if a[1] <= p[3] and p[1] <= a[3] and a[2] <= p[4] and p[2] <= a[4]:\n                raw.append((min(q, p[0]), max(q, p[0])))\n    pairs = sorted(set(raw))\n    return [[list(x) for x in pairs], tests]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[[36, 4.0, 5.0, 5.0, 6.0], [35, 3.0, 4.0, 4.0, 6.0]], [36, 36]], [[[35, 36]], 1]], [[[[8, 2.0, -1.0, 5.0, 1.0], [18, 5.0, 1.0, 6.0, 3.0], [6, 0.0, -5.0, 3.0, -4.0], [22, -4.0, 2.0, -1.0, 3.0], [13, -5.0, 4.0, -3.0, 7.0], [1, 2.0, -5.0, 4.0, -3.0]], [6, 6, 22]], [[[1, 6]], 9]], [[[[18, 3.0, 5.0, 3.0, 6.0], [29, 3.0, -2.0, 5.0, -1.0], [13, 1.0, -5.0, 1.0, -5.0], [31, 0.0, -5.0, 0.0, -2.0], [22, 4.0, 4.0, 6.0, 4.0], [12, 2.0, 3.0, 2.0, 5.0], [6, -4.0, -5.0, -4.0, -4.0]], [6, 6, 31, 18, 18]], [[], 15]], [[[[10, -2.0, 4.0, -2.0, 4.0], [9, 1.0, -4.0, 3.0, -2.0]], [10, 9, 9]], [[], 1]], [[[[9, -5.0, 4.0, -2.0, 5.0], [31, -1.0, 5.0, 1.0, 7.0], [28, -3.0, 3.0, -1.0, 4.0]], [28]], [[[9, 28]], 2]], [[[[9, -5.0, -2.0, -3.0, 0.0], [7, 4.0, 5.0, 4.0, 6.0], [37, -1.0, 2.0, -1.0, 4.0], [14, -5.0, -5.0, -4.0, -2.0], [31, 1.0, -4.0, 4.0, -1.0], [24, 2.0, -2.0, 3.0, -1.0]], [9, 37, 9, 7, 14]], [[[9, 14]], 14]], [[[[38, -2.0, 3.0, -1.0, 4.0], [17, 1.0, 3.0, 1.0, 3.0], [6, -3.0, -2.0, -2.0, -2.0], [7, 0.0, 1.0, 3.0, 4.0], [37, -5.0, -1.0, -3.0, 1.0], [2, 1.0, -5.0, 3.0, -4.0]], [38, 17, 6, 7]], [[[7, 17]], 14]], [[[[30, 5.0, 4.0, 8.0, 4.0], [39, 4.0, 1.0, 7.0, 2.0], [2, 5.0, -3.0, 6.0, -1.0], [3, 0.0, -5.0, 2.0, -5.0]], [3]], [[], 3]]], [[[[[26, -4.0, 4.0, -3.0, 6.0], [2, -1.0, -4.0, 0.0, -1.0]], [26]], [[], 1]], [[[[28, 4.0, -3.0, 4.0, 0.0], [27, -4.0, -5.0, -2.0, -5.0], [11, 1.0, 1.0, 3.0, 3.0]], [11]], [[], 2]], [[[[23, -5.0, 0.0, -5.0, 1.0], [1, -3.0, 2.0, 0.0, 5.0]], [23, 1, 23, 1, 23]], [[], 1]], [[[[37, 3.0, 0.0, 3.0, 1.0], [1, 1.0, -4.0, 2.0, -2.0]], [37, 37, 1, 37]], [[], 1]], [[[[6, 0.0, -1.0, 3.0, 2.0], [2, -3.0, 4.0, -1.0, 5.0], [37, 1.0, 4.0, 2.0, 7.0], [4, -4.0, -2.0, -2.0, -1.0], [17, 4.0, -1.0, 5.0, 2.0], [34, -1.0, -3.0, -1.0, -1.0]], [4, 2]], [[], 9]], [[[[26, 4.0, -2.0, 6.0, -1.0], [12, 4.0, -1.0, 6.0, 1.0], [20, -3.0, 4.0, -1.0, 4.0], [1, 4.0, 4.0, 4.0, 5.0]], [20, 20, 26, 1, 26]], [[[12, 26]], 6]], [[[[4, -4.0, -3.0, -3.0, -3.0], [13, 1.0, -4.0, 1.0, -2.0], [37, -3.0, -4.0, -3.0, -4.0]], [37]], [[], 2]], [[[[21, -1.0, 4.0, 2.0, 4.0], [11, -4.0, 2.0, -4.0, 2.0]], [21, 11]], [[], 1]]], [[[[[10, -5.0, 4.0, -4.0, 7.0], [32, 2.0, 5.0, 4.0, 8.0], [31, 5.0, 2.0, 5.0, 4.0], [18, -4.0, 0.0, -1.0, 3.0], [30, -3.0, -1.0, -1.0, 1.0], [2, -5.0, 5.0, -4.0, 7.0]], [2, 2, 18, 2, 2]], [[[2, 10], [18, 30]], 9]], [[[[30, 3.0, 3.0, 3.0, 6.0], [29, -4.0, 0.0, -3.0, 0.0], [36, 5.0, -4.0, 8.0, -4.0], [35, 2.0, 2.0, 4.0, 3.0], [31, 2.0, 4.0, 5.0, 5.0], [9, 3.0, 2.0, 4.0, 3.0], [14, 1.0, 1.0, 2.0, 4.0], [12, -4.0, -3.0, -2.0, 0.0]], [29, 36, 31, 14]], [[[12, 29], [14, 31], [14, 35], [30, 31]], 22]], [[[[20, -5.0, 1.0, -3.0, 2.0], [7, 1.0, 0.0, 2.0, 1.0], [8, 1.0, -3.0, 2.0, -1.0], [3, -4.0, -1.0, -4.0, 2.0], [19, 2.0, -4.0, 3.0, -2.0], [32, 1.0, 0.0, 3.0, 3.0], [35, -2.0, -1.0, 1.0, 0.0], [18, -5.0, -2.0, -4.0, -1.0]], [32]], [[[7, 32], [32, 35]], 7]], [[[[2, -3.0, 5.0, -2.0, 6.0], [7, 4.0, -1.0, 7.0, -1.0]], [7, 2]], [[], 1]], [[[[5, 5.0, 5.0, 8.0, 7.0], [26, 4.0, -4.0, 6.0, -4.0], [1, 0.0, 2.0, 2.0, 4.0]], [1]], [[], 2]], [[[[4, 4.0, -5.0, 6.0, -4.0], [38, -3.0, -3.0, -3.0, 0.0], [31, 4.0, 4.0, 5.0, 7.0], [28, 4.0, 3.0, 7.0, 3.0], [30, -4.0, 0.0, -1.0, 1.0], [3, 3.0, -5.0, 3.0, -5.0], [36, -4.0, -5.0, -2.0, -3.0], [10, 2.0, 1.0, 2.0, 3.0], [6, -5.0, 1.0, -4.0, 2.0]], [31, 10, 30, 10]], [[[6, 30], [30, 38]], 21]], [[[[28, -2.0, -4.0, 1.0, -4.0], [6, 4.0, 3.0, 5.0, 3.0], [3, -1.0, 3.0, 2.0, 5.0], [26, 3.0, 0.0, 4.0, 2.0], [21, -5.0, -3.0, -2.0, -3.0], [22, -5.0, -3.0, -2.0, -2.0], [36, -3.0, -1.0, -2.0, 2.0]], [3, 28, 6, 21, 21]], [[[21, 22]], 18]], [[[[3, -2.0, -2.0, 1.0, 0.0], [8, 2.0, -3.0, 5.0, -2.0], [24, -1.0, -2.0, 0.0, 1.0], [38, -4.0, -1.0, -4.0, 2.0]], [3]], [[[3, 24]], 3]]], [[[[[13, -2.0, 3.0, 0.0, 3.0], [16, 4.0, -5.0, 4.0, -3.0]], [16, 13, 13, 13]], [[], 1]], [[[[23, 2.0, -2.0, 5.0, -2.0], [27, 2.0, 4.0, 2.0, 7.0], [5, 4.0, 2.0, 5.0, 2.0], [7, -2.0, 1.0, -2.0, 3.0], [35, 0.0, 0.0, 3.0, 3.0], [2, 5.0, -4.0, 7.0, -1.0], [26, -2.0, 4.0, -1.0, 7.0]], [26, 27, 23, 27, 7]], [[[2, 23]], 18]], [[[[20, -1.0, -2.0, 1.0, -2.0], [26, 4.0, -4.0, 6.0, -1.0], [28, 4.0, -3.0, 4.0, -3.0], [10, 4.0, -5.0, 5.0, -5.0], [13, 4.0, 3.0, 5.0, 6.0], [17, -4.0, -5.0, -4.0, -5.0], [29, 5.0, -4.0, 8.0, -4.0], [32, 3.0, -4.0, 4.0, -3.0]], [28]], [[[26, 28], [28, 32]], 7]], [[[[35, 5.0, 5.0, 8.0, 6.0], [39, -4.0, -4.0, -3.0, -4.0], [32, 1.0, 1.0, 2.0, 3.0], [26, -5.0, 0.0, -5.0, 1.0], [23, -2.0, 1.0, -2.0, 2.0], [13, -3.0, -3.0, -1.0, 0.0], [1, 5.0, 0.0, 5.0, 3.0], [34, 3.0, -2.0, 5.0, -1.0]], [39]], [[], 7]], [[[[8, 2.0, 4.0, 5.0, 4.0], [26, -1.0, 2.0, -1.0, 2.0], [5, 4.0, 3.0, 4.0, 4.0], [16, -3.0, 0.0, -1.0, 1.0], [4, 0.0, 1.0, 3.0, 4.0], [34, 3.0, -3.0, 5.0, -2.0], [17, 4.0, -1.0, 5.0, -1.0], [31, 0.0, 1.0, 0.0, 4.0], [3, -4.0, -5.0, -1.0, -4.0]], [5]], [[[5, 8]], 8]], [[[[9, 2.0, 4.0, 2.0, 5.0], [16, 3.0, -4.0, 3.0, -1.0], [37, 0.0, -5.0, 2.0, -5.0], [23, -5.0, -1.0, -5.0, 1.0], [33, 0.0, -3.0, 1.0, -3.0], [12, 1.0, 3.0, 1.0, 5.0], [17, 1.0, -3.0, 3.0, -2.0], [7, 1.0, 0.0, 1.0, 2.0]], [33, 37, 7]], [[[17, 33]], 18]], [[[[23, -2.0, -4.0, 1.0, -1.0], [16, -3.0, -4.0, -2.0, -2.0], [25, 5.0, 1.0, 8.0, 2.0], [3, 3.0, 4.0, 4.0, 5.0], [8, 0.0, 0.0, 0.0, 2.0], [13, -1.0, -3.0, 1.0, 0.0], [19, -1.0, -3.0, 2.0, -3.0], [28, -2.0, 2.0, -2.0, 4.0], [29, -5.0, 2.0, -3.0, 2.0]], [8]], [[[8, 13]], 8]], [[[[9, 1.0, -4.0, 2.0, -1.0], [14, 1.0, -5.0, 4.0, -2.0], [4, -2.0, 4.0, 0.0, 6.0], [29, 3.0, 1.0, 3.0, 2.0], [23, 1.0, 2.0, 3.0, 4.0]], [29, 29, 23, 4, 14]], [[[9, 14], [23, 29]], 10]]], [[[[[10, -3.0, -1.0, -2.0, 2.0], [9, 3.0, -3.0, 5.0, 0.0], [30, -1.0, 5.0, 1.0, 7.0], [14, -5.0, -2.0, -4.0, 1.0], [18, 5.0, 4.0, 7.0, 5.0], [7, 4.0, 5.0, 5.0, 5.0], [11, 3.0, 0.0, 5.0, 1.0], [22, -2.0, -4.0, -2.0, -1.0], [21, -1.0, 2.0, 2.0, 2.0]], [11, 7, 10, 10]], [[[7, 18], [9, 11], [10, 22]], 21]], [[[[35, -3.0, -1.0, -2.0, 0.0], [39, 3.0, -3.0, 6.0, 0.0], [20, 1.0, 0.0, 3.0, 0.0], [33, 1.0, 2.0, 2.0, 5.0], [18, 2.0, 3.0, 5.0, 3.0], [14, -1.0, 2.0, 2.0, 2.0]], [33, 14]], [[[14, 33], [18, 33]], 9]], [[[[5, -2.0, -5.0, -2.0, -2.0], [19, 0.0, 5.0, 2.0, 6.0], [13, 4.0, -5.0, 5.0, -3.0], [15, -4.0, 2.0, -4.0, 4.0], [27, 5.0, -3.0, 8.0, 0.0], [25, -3.0, -3.0, 0.0, -1.0], [4, 1.0, -5.0, 2.0, -2.0]], [5, 4]], [[[5, 25]], 11]], [[[[35, 2.0, -2.0, 3.0, 1.0], [31, -3.0, -1.0, -2.0, -1.0], [3, -1.0, 0.0, 2.0, 0.0], [6, 5.0, 0.0, 8.0, 1.0], [27, 0.0, -4.0, 0.0, -2.0], [34, 4.0, 1.0, 4.0, 1.0], [5, -1.0, 4.0, -1.0, 5.0], [8, -2.0, 5.0, -2.0, 8.0]], [3]], [[[3, 35]], 7]], [[[[6, 2.0, -3.0, 4.0, -1.0], [25, 3.0, 4.0, 3.0, 6.0], [34, 2.0, 3.0, 2.0, 6.0], [1, 0.0, -3.0, 2.0, -1.0], [7, 1.0, 5.0, 1.0, 6.0], [16, -3.0, -2.0, -1.0, 1.0]], [6]], [[[1, 6]], 5]], [[[[17, 1.0, -1.0, 4.0, 0.0], [1, -3.0, 3.0, -2.0, 5.0], [38, 0.0, 4.0, 1.0, 6.0], [20, -5.0, -5.0, -3.0, -3.0], [27, 0.0, -4.0, 3.0, -4.0], [28, -4.0, 4.0, -2.0, 5.0], [3, -2.0, -5.0, -1.0, -2.0], [35, -1.0, 3.0, 2.0, 5.0]], [28, 28, 27, 27, 35]], [[[1, 28], [35, 38]], 18]], [[[[2, 1.0, 1.0, 4.0, 3.0], [4, -3.0, -2.0, -1.0, -2.0], [15, 5.0, -3.0, 7.0, 0.0], [27, -2.0, 3.0, -1.0, 6.0]], [15]], [[], 3]], [[[[24, 5.0, 3.0, 6.0, 5.0], [36, -4.0, -5.0, -3.0, -5.0]], [36, 24, 24, 36, 24]], [[], 1]]]]\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-move-buffer-pairs-duplicate-test-avoidance","generated_at":"2026-09-29T14:51:01.299371+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 ownership skip is missing.","sha256":"2dd4c36622b6ec588ce1d781e449ecfa6edab604d11ec1095bd1d632096ab2ac","title":"Moved-moved pairs are tested from both sides · 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":43.585,"exit_code":1,"observations":[{"actual":[[[35,36]],1],"check":"case 0","expected":[[[35,36]],1],"passed":true},{"actual":[[[1,6]],10],"check":"case 1","expected":[[[1,6]],9],"passed":false},{"actual":[[],18],"check":"case 2","expected":[[],15],"passed":false},{"actual":[[],2],"check":"case 3","expected":[[],1],"passed":false},{"actual":[[[9,28]],2],"check":"case 4","expected":[[[9,28]],2],"passed":true},{"actual":[[[9,14]],20],"check":"case 5","expected":[[[9,14]],14],"passed":false},{"actual":[[[7,17]],20],"check":"case 6","expected":[[[7,17]],14],"passed":false},{"actual":[[],3],"check":"case 7","expected":[[],3],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [[[35, 36]], 1], \"expected\": [[[35, 36]], 1], \"passed\": true}, {\"check\": \"case 1\", \"actual\": [[[1, 6]], 10], \"expected\": [[[1, 6]], 9], \"passed\": false}, {\"check\": \"case 2\", \"actual\": [[], 18], \"expected\": [[], 15], \"passed\": false}, {\"check\": \"case 3\", \"actual\": [[], 2], \"expected\": [[], 1], \"passed\": false}, {\"check\": \"case 4\", \"actual\": [[[9, 28]], 2], \"expected\": [[[9, 28]], 2], \"passed\": true}, {\"check\": \"case 5\", \"actual\": [[[9, 14]], 20], \"expected\": [[[9, 14]], 14], \"passed\": false}, {\"check\": \"case 6\", \"actual\": [[[7, 17]], 20], \"expected\": [[[7, 17]], 14], \"passed\": false}, {\"check\": \"case 7\", \"actual\": [[], 3], \"expected\": [[], 3], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.227,"exit_code":1,"observations":[{"actual":[[[35,36]],1],"check":"case 0","expected":[[[35,36]],1],"passed":true},{"actual":[[[1,6]],10],"check":"case 1","expected":[[[1,6]],9],"passed":false},{"actual":[[],18],"check":"case 2","expected":[[],15],"passed":false},{"actual":[[],2],"check":"case 3","expected":[[],1],"passed":false},{"actual":[[[9,28]],2],"check":"case 4","expected":[[[9,28]],2],"passed":true},{"actual":[[[9,14]],20],"check":"case 5","expected":[[[9,14]],14],"passed":false},{"actual":[[[7,17]],20],"check":"case 6","expected":[[[7,17]],14],"passed":false},{"actual":[[],3],"check":"case 7","expected":[[],3],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [[[35, 36]], 1], \"expected\": [[[35, 36]], 1], \"passed\": true}, {\"check\": \"case 1\", \"actual\": [[[1, 6]], 10], \"expected\": [[[1, 6]], 9], \"passed\": false}, {\"check\": \"case 2\", \"actual\": [[], 18], \"expected\": [[], 15], \"passed\": false}, {\"check\": \"case 3\", \"actual\": [[], 2], \"expected\": [[], 1], \"passed\": false}, {\"check\": \"case 4\", \"actual\": [[[9, 28]], 2], \"expected\": [[[9, 28]], 2], \"passed\": true}, {\"check\": \"case 5\", \"actual\": [[[9, 14]], 20], \"expected\": [[[9, 14]], 14], \"passed\": false}, {\"check\": \"case 6\", \"actual\": [[[7, 17]], 20], \"expected\": [[[7, 17]], 14], \"passed\": false}, {\"check\": \"case 7\", \"actual\": [[], 3], \"expected\": [[], 3], \"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."}}