{"abstract":"Two bodies moving into each other never collide.","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].","evaluation_group":"w2-collision_detection_broadphase-move-buffer-pairs","failed_approach":"Skipping every larger id drops pairs with static proxies too.","family":"w2-collision_detection_broadphase-move-buffer-pairs-moved-pair-ownership","id":"FA-87711","implementations":{"attempt":{"sha256":"106b81b0814b607fbcac7fab39879d3b6208e5fc2438ab5ba358154cf2efb163","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            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 = [[[[[[39, 5.0, -4.0, 5.0, -1.0], [9, 1.0, -1.0, 2.0, 1.0], [34, -4.0, -3.0, -2.0, -2.0], [20, 2.0, 4.0, 3.0, 5.0], [31, 2.0, 5.0, 5.0, 5.0], [23, 4.0, 5.0, 6.0, 6.0], [4, -5.0, 4.0, -5.0, 6.0]], [39]], [[], 6]], [[[[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]], [[[[30, 3.0, -3.0, 6.0, -2.0], [19, -1.0, 1.0, 2.0, 2.0], [12, -1.0, 1.0, 2.0, 4.0]], [19, 19, 19, 30, 30]], [[[12, 19]], 3]], [[[[32, 3.0, -4.0, 5.0, -3.0], [4, 0.0, 2.0, 1.0, 4.0], [26, 1.0, -2.0, 2.0, 1.0], [27, 4.0, 4.0, 5.0, 6.0], [36, 2.0, 4.0, 5.0, 7.0], [9, -4.0, 2.0, -1.0, 5.0], [38, -3.0, 0.0, -3.0, 3.0]], [9, 32]], [[[9, 38]], 11]], [[[[30, 1.0, 1.0, 2.0, 3.0], [36, -4.0, -2.0, -3.0, 1.0]], [36, 30, 30, 30]], [[], 1]], [[[[7, 1.0, -5.0, 2.0, -5.0], [35, -2.0, -5.0, -2.0, -3.0]], [7, 7, 7, 7]], [[], 1]], [[[[20, 1.0, 1.0, 4.0, 3.0], [6, -4.0, -1.0, -3.0, -1.0], [23, -1.0, -4.0, 1.0, -1.0]], [20, 6, 6]], [[], 3]], [[[[35, 2.0, -2.0, 3.0, 0.0], [37, 0.0, 2.0, 2.0, 4.0], [26, 5.0, 2.0, 7.0, 3.0], [5, 2.0, 2.0, 4.0, 3.0]], [26]], [[], 3]]], [[[[[37, -4.0, -1.0, -3.0, 1.0], [8, 4.0, 5.0, 5.0, 7.0], [24, 3.0, -2.0, 4.0, 0.0], [3, -4.0, 0.0, -1.0, 0.0], [7, 2.0, -1.0, 4.0, 1.0]], [7, 3]], [[[3, 37], [7, 24]], 7]], [[[[23, -5.0, -4.0, -3.0, -4.0], [7, 1.0, 4.0, 3.0, 4.0], [20, 2.0, -1.0, 3.0, 2.0], [6, -4.0, 5.0, -2.0, 5.0], [26, 0.0, -1.0, 3.0, 2.0]], [23, 7]], [[], 7]], [[[[23, -2.0, 5.0, 0.0, 5.0], [39, -1.0, -3.0, -1.0, -2.0], [30, -2.0, 2.0, 1.0, 3.0], [31, 0.0, 1.0, 2.0, 3.0], [4, 5.0, 2.0, 5.0, 4.0], [8, 1.0, 2.0, 1.0, 2.0]], [4]], [[], 5]], [[[[24, -1.0, 5.0, 1.0, 5.0], [19, -4.0, 2.0, -2.0, 5.0], [7, -3.0, 4.0, 0.0, 7.0], [16, -5.0, 2.0, -4.0, 5.0], [28, 3.0, 0.0, 5.0, 0.0]], [28]], [[], 4]], [[[[6, -5.0, 3.0, -3.0, 6.0], [31, 2.0, -1.0, 3.0, 2.0], [26, 1.0, 3.0, 4.0, 4.0]], [31, 6, 26]], [[], 3]], [[[[9, -3.0, 2.0, 0.0, 5.0], [28, -1.0, -4.0, 2.0, -3.0], [1, 0.0, 0.0, 2.0, 2.0], [12, 0.0, 2.0, 3.0, 2.0], [32, -3.0, -4.0, -3.0, -2.0]], [1, 28, 12, 32]], [[[1, 9], [1, 12], [9, 12]], 10]], [[[[23, 1.0, -1.0, 1.0, 0.0], [33, 3.0, -4.0, 4.0, -2.0], [28, 4.0, 0.0, 5.0, 0.0], [34, 0.0, 0.0, 1.0, 2.0], [8, -5.0, 1.0, -3.0, 3.0]], [28, 8, 34]], [[[23, 34]], 9]], [[[[3, 2.0, -2.0, 4.0, 1.0], [14, 0.0, 0.0, 3.0, 1.0], [15, 0.0, 2.0, 3.0, 4.0], [30, 5.0, -5.0, 5.0, -2.0], [26, 4.0, -4.0, 6.0, -3.0], [10, -2.0, 5.0, -1.0, 6.0], [13, -3.0, -1.0, 0.0, 2.0]], [26]], [[[26, 30]], 6]]], [[[[[31, -1.0, -4.0, 2.0, -1.0], [7, 5.0, 2.0, 7.0, 2.0], [36, 5.0, -1.0, 8.0, 2.0], [12, 5.0, 2.0, 8.0, 2.0], [29, 3.0, 3.0, 6.0, 4.0], [18, -4.0, 5.0, -2.0, 7.0], [14, -3.0, 3.0, 0.0, 5.0]], [7, 18, 14, 14, 29]], [[[7, 12], [7, 36], [14, 18]], 18]], [[[[29, 3.0, -1.0, 4.0, 2.0], [15, -4.0, -2.0, -3.0, -1.0]], [15]], [[], 1]], [[[[19, -5.0, 1.0, -4.0, 2.0], [31, -2.0, 0.0, -1.0, 3.0], [36, 3.0, 3.0, 4.0, 6.0], [24, -5.0, 5.0, -2.0, 5.0], [22, 1.0, -4.0, 1.0, -2.0], [13, 3.0, -3.0, 4.0, -2.0], [28, -2.0, 0.0, -1.0, 1.0]], [22, 22]], [[], 6]], [[[[30, 5.0, -1.0, 8.0, 2.0], [35, -4.0, 0.0, -1.0, 3.0], [17, -2.0, -3.0, -2.0, -3.0], [6, 3.0, 4.0, 5.0, 5.0], [23, -4.0, -3.0, -2.0, -1.0]], [17, 35, 35, 6, 30]], [[[17, 23]], 10]], [[[[33, 5.0, 0.0, 7.0, 2.0], [1, -3.0, 5.0, -2.0, 7.0], [18, 0.0, 3.0, 0.0, 3.0], [14, -1.0, -4.0, -1.0, -3.0], [12, -1.0, 1.0, 1.0, 4.0]], [33, 14]], [[], 7]], [[[[26, -4.0, 0.0, -4.0, 1.0], [11, -4.0, 1.0, -4.0, 2.0], [15, -2.0, 1.0, 1.0, 1.0], [39, -5.0, -1.0, -4.0, -1.0], [34, -5.0, 2.0, -4.0, 4.0]], [26, 39, 26, 15]], [[[11, 26]], 9]], [[[[20, 1.0, 5.0, 1.0, 8.0], [34, 3.0, 2.0, 3.0, 5.0], [9, 4.0, -1.0, 5.0, 1.0], [13, 1.0, -2.0, 4.0, -2.0], [14, 4.0, 0.0, 4.0, 3.0], [3, 3.0, -3.0, 5.0, -2.0], [23, 3.0, 4.0, 4.0, 4.0]], [14]], [[[9, 14]], 6]], [[[[22, 0.0, 4.0, 0.0, 5.0], [16, 3.0, -2.0, 6.0, -1.0], [25, -4.0, -1.0, -1.0, 1.0], [36, -3.0, 5.0, -2.0, 5.0], [29, -5.0, 0.0, -5.0, 0.0], [12, -4.0, 5.0, -2.0, 5.0], [11, 4.0, 2.0, 6.0, 3.0], [13, -2.0, -5.0, 0.0, -3.0], [6, -5.0, 1.0, -2.0, 3.0]], [11, 13, 25]], [[[6, 25]], 21]]], [[[[[36, -3.0, 1.0, -2.0, 2.0], [9, 3.0, 2.0, 4.0, 4.0], [3, -2.0, -2.0, -1.0, 1.0], [39, 4.0, -3.0, 4.0, -2.0], [6, -1.0, -1.0, 2.0, 0.0], [28, -3.0, -3.0, -2.0, -2.0], [38, 2.0, 4.0, 3.0, 5.0]], [38]], [[[9, 38]], 6]], [[[[32, -5.0, -1.0, -3.0, 2.0], [26, 1.0, 5.0, 2.0, 7.0], [18, -4.0, 2.0, -3.0, 4.0], [5, 1.0, 1.0, 2.0, 1.0], [11, -2.0, 4.0, 1.0, 5.0], [4, 3.0, -4.0, 4.0, -4.0], [37, -4.0, 5.0, -1.0, 7.0]], [18]], [[[18, 32]], 6]], [[[[4, 3.0, -3.0, 3.0, -1.0], [19, -1.0, -2.0, 2.0, 0.0], [38, -2.0, 1.0, 1.0, 1.0], [32, -4.0, 1.0, -3.0, 2.0]], [4, 19, 4, 32]], [[], 6]], [[[[4, 4.0, -4.0, 5.0, -4.0], [28, 0.0, -1.0, 3.0, 0.0], [2, 2.0, -5.0, 3.0, -5.0], [1, -4.0, 3.0, -3.0, 5.0], [34, -2.0, 1.0, -2.0, 2.0], [24, -3.0, 0.0, -3.0, 1.0], [16, -4.0, -4.0, -1.0, -2.0], [5, -3.0, 0.0, -1.0, 1.0], [20, -3.0, 0.0, -2.0, 0.0], [13, 5.0, -5.0, 6.0, -4.0]], [2, 2, 13]], [[[4, 13]], 17]], [[[[27, 3.0, 4.0, 4.0, 7.0], [32, 2.0, -3.0, 4.0, -3.0], [20, -5.0, -5.0, -3.0, -2.0], [19, -4.0, -3.0, -2.0, -2.0], [10, 1.0, 0.0, 3.0, 3.0]], [20, 10, 32, 19, 10]], [[[19, 20]], 10]], [[[[18, -4.0, 2.0, -4.0, 4.0], [30, 5.0, 5.0, 5.0, 6.0], [7, -5.0, 5.0, -3.0, 7.0], [32, -4.0, 2.0, -2.0, 4.0], [12, -2.0, 3.0, -2.0, 3.0]], [30, 18, 12, 32, 18]], [[[12, 32], [18, 32]], 10]], [[[[27, 0.0, 2.0, 0.0, 2.0], [36, 5.0, -1.0, 6.0, 0.0], [20, 0.0, -2.0, 3.0, -2.0], [21, 2.0, 1.0, 2.0, 4.0], [25, -3.0, -4.0, -3.0, -3.0], [32, -5.0, -5.0, -3.0, -2.0]], [27]], [[], 5]], [[[[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]]], [[[[[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]], [[[[19, -2.0, 0.0, -1.0, 0.0], [27, -3.0, 1.0, -2.0, 4.0], [10, -4.0, -3.0, -4.0, -3.0], [29, -5.0, -4.0, -3.0, -4.0], [9, -5.0, 3.0, -2.0, 6.0]], [27, 19, 9, 10]], [[[9, 27]], 10]], [[[[8, 3.0, 1.0, 5.0, 4.0], [17, 1.0, 4.0, 4.0, 4.0], [31, 0.0, 5.0, 0.0, 7.0], [27, -3.0, 3.0, -3.0, 4.0], [26, 5.0, 1.0, 8.0, 2.0], [22, 4.0, -3.0, 5.0, 0.0], [38, 4.0, 2.0, 4.0, 5.0], [29, -2.0, 0.0, 0.0, 3.0]], [8]], [[[8, 17], [8, 26], [8, 38]], 7]], [[[[18, -3.0, -1.0, -2.0, -1.0], [23, 2.0, -3.0, 2.0, -1.0], [3, -2.0, -2.0, -2.0, 0.0], [21, 5.0, -5.0, 7.0, -5.0], [15, -3.0, -4.0, -2.0, -1.0], [12, -3.0, 3.0, -3.0, 4.0], [29, -4.0, -2.0, -1.0, 1.0], [11, -4.0, 5.0, -4.0, 8.0], [16, 0.0, -3.0, 2.0, 0.0]], [12]], [[], 8]], [[[[12, 4.0, -2.0, 4.0, 1.0], [23, 5.0, 3.0, 8.0, 6.0], [21, 3.0, 3.0, 6.0, 3.0], [16, -2.0, -3.0, -1.0, -2.0], [19, -1.0, 5.0, 0.0, 6.0]], [19, 16]], [[], 7]], [[[[24, 4.0, -1.0, 7.0, 0.0], [22, 2.0, -2.0, 4.0, -2.0], [15, 5.0, -1.0, 5.0, 1.0], [38, 2.0, 1.0, 4.0, 4.0], [19, 0.0, -3.0, 1.0, -3.0], [17, 1.0, -3.0, 3.0, -3.0], [27, 3.0, 2.0, 3.0, 2.0]], [22]], [[], 6]], [[[[14, 3.0, 3.0, 4.0, 3.0], [12, 4.0, -1.0, 7.0, -1.0], [16, -4.0, 3.0, -2.0, 5.0], [19, 3.0, -5.0, 3.0, -5.0], [9, 1.0, -1.0, 3.0, 0.0]], [16, 12, 16, 19, 12]], [[], 9]], [[[[11, -3.0, -3.0, 0.0, -1.0], [1, 3.0, -3.0, 5.0, 0.0], [27, 1.0, -5.0, 4.0, -5.0], [23, -3.0, 2.0, -3.0, 4.0], [9, -1.0, -4.0, 1.0, -3.0], [13, 4.0, 1.0, 5.0, 2.0], [18, 0.0, 5.0, 1.0, 6.0]], [1, 13, 9]], [[[9, 11]], 15]]]]\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":"7a889bb9fdb48ff0271cba2d209d5aaff511ca777fb713cf9e8990cc98023d5f","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            if p[0] in mv:\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 = [[[[[[39, 5.0, -4.0, 5.0, -1.0], [9, 1.0, -1.0, 2.0, 1.0], [34, -4.0, -3.0, -2.0, -2.0], [20, 2.0, 4.0, 3.0, 5.0], [31, 2.0, 5.0, 5.0, 5.0], [23, 4.0, 5.0, 6.0, 6.0], [4, -5.0, 4.0, -5.0, 6.0]], [39]], [[], 6]], [[[[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]], [[[[30, 3.0, -3.0, 6.0, -2.0], [19, -1.0, 1.0, 2.0, 2.0], [12, -1.0, 1.0, 2.0, 4.0]], [19, 19, 19, 30, 30]], [[[12, 19]], 3]], [[[[32, 3.0, -4.0, 5.0, -3.0], [4, 0.0, 2.0, 1.0, 4.0], [26, 1.0, -2.0, 2.0, 1.0], [27, 4.0, 4.0, 5.0, 6.0], [36, 2.0, 4.0, 5.0, 7.0], [9, -4.0, 2.0, -1.0, 5.0], [38, -3.0, 0.0, -3.0, 3.0]], [9, 32]], [[[9, 38]], 11]], [[[[30, 1.0, 1.0, 2.0, 3.0], [36, -4.0, -2.0, -3.0, 1.0]], [36, 30, 30, 30]], [[], 1]], [[[[7, 1.0, -5.0, 2.0, -5.0], [35, -2.0, -5.0, -2.0, -3.0]], [7, 7, 7, 7]], [[], 1]], [[[[20, 1.0, 1.0, 4.0, 3.0], [6, -4.0, -1.0, -3.0, -1.0], [23, -1.0, -4.0, 1.0, -1.0]], [20, 6, 6]], [[], 3]], [[[[35, 2.0, -2.0, 3.0, 0.0], [37, 0.0, 2.0, 2.0, 4.0], [26, 5.0, 2.0, 7.0, 3.0], [5, 2.0, 2.0, 4.0, 3.0]], [26]], [[], 3]]], [[[[[37, -4.0, -1.0, -3.0, 1.0], [8, 4.0, 5.0, 5.0, 7.0], [24, 3.0, -2.0, 4.0, 0.0], [3, -4.0, 0.0, -1.0, 0.0], [7, 2.0, -1.0, 4.0, 1.0]], [7, 3]], [[[3, 37], [7, 24]], 7]], [[[[23, -5.0, -4.0, -3.0, -4.0], [7, 1.0, 4.0, 3.0, 4.0], [20, 2.0, -1.0, 3.0, 2.0], [6, -4.0, 5.0, -2.0, 5.0], [26, 0.0, -1.0, 3.0, 2.0]], [23, 7]], [[], 7]], [[[[23, -2.0, 5.0, 0.0, 5.0], [39, -1.0, -3.0, -1.0, -2.0], [30, -2.0, 2.0, 1.0, 3.0], [31, 0.0, 1.0, 2.0, 3.0], [4, 5.0, 2.0, 5.0, 4.0], [8, 1.0, 2.0, 1.0, 2.0]], [4]], [[], 5]], [[[[24, -1.0, 5.0, 1.0, 5.0], [19, -4.0, 2.0, -2.0, 5.0], [7, -3.0, 4.0, 0.0, 7.0], [16, -5.0, 2.0, -4.0, 5.0], [28, 3.0, 0.0, 5.0, 0.0]], [28]], [[], 4]], [[[[6, -5.0, 3.0, -3.0, 6.0], [31, 2.0, -1.0, 3.0, 2.0], [26, 1.0, 3.0, 4.0, 4.0]], [31, 6, 26]], [[], 3]], [[[[9, -3.0, 2.0, 0.0, 5.0], [28, -1.0, -4.0, 2.0, -3.0], [1, 0.0, 0.0, 2.0, 2.0], [12, 0.0, 2.0, 3.0, 2.0], [32, -3.0, -4.0, -3.0, -2.0]], [1, 28, 12, 32]], [[[1, 9], [1, 12], [9, 12]], 10]], [[[[23, 1.0, -1.0, 1.0, 0.0], [33, 3.0, -4.0, 4.0, -2.0], [28, 4.0, 0.0, 5.0, 0.0], [34, 0.0, 0.0, 1.0, 2.0], [8, -5.0, 1.0, -3.0, 3.0]], [28, 8, 34]], [[[23, 34]], 9]], [[[[3, 2.0, -2.0, 4.0, 1.0], [14, 0.0, 0.0, 3.0, 1.0], [15, 0.0, 2.0, 3.0, 4.0], [30, 5.0, -5.0, 5.0, -2.0], [26, 4.0, -4.0, 6.0, -3.0], [10, -2.0, 5.0, -1.0, 6.0], [13, -3.0, -1.0, 0.0, 2.0]], [26]], [[[26, 30]], 6]]], [[[[[31, -1.0, -4.0, 2.0, -1.0], [7, 5.0, 2.0, 7.0, 2.0], [36, 5.0, -1.0, 8.0, 2.0], [12, 5.0, 2.0, 8.0, 2.0], [29, 3.0, 3.0, 6.0, 4.0], [18, -4.0, 5.0, -2.0, 7.0], [14, -3.0, 3.0, 0.0, 5.0]], [7, 18, 14, 14, 29]], [[[7, 12], [7, 36], [14, 18]], 18]], [[[[29, 3.0, -1.0, 4.0, 2.0], [15, -4.0, -2.0, -3.0, -1.0]], [15]], [[], 1]], [[[[19, -5.0, 1.0, -4.0, 2.0], [31, -2.0, 0.0, -1.0, 3.0], [36, 3.0, 3.0, 4.0, 6.0], [24, -5.0, 5.0, -2.0, 5.0], [22, 1.0, -4.0, 1.0, -2.0], [13, 3.0, -3.0, 4.0, -2.0], [28, -2.0, 0.0, -1.0, 1.0]], [22, 22]], [[], 6]], [[[[30, 5.0, -1.0, 8.0, 2.0], [35, -4.0, 0.0, -1.0, 3.0], [17, -2.0, -3.0, -2.0, -3.0], [6, 3.0, 4.0, 5.0, 5.0], [23, -4.0, -3.0, -2.0, -1.0]], [17, 35, 35, 6, 30]], [[[17, 23]], 10]], [[[[33, 5.0, 0.0, 7.0, 2.0], [1, -3.0, 5.0, -2.0, 7.0], [18, 0.0, 3.0, 0.0, 3.0], [14, -1.0, -4.0, -1.0, -3.0], [12, -1.0, 1.0, 1.0, 4.0]], [33, 14]], [[], 7]], [[[[26, -4.0, 0.0, -4.0, 1.0], [11, -4.0, 1.0, -4.0, 2.0], [15, -2.0, 1.0, 1.0, 1.0], [39, -5.0, -1.0, -4.0, -1.0], [34, -5.0, 2.0, -4.0, 4.0]], [26, 39, 26, 15]], [[[11, 26]], 9]], [[[[20, 1.0, 5.0, 1.0, 8.0], [34, 3.0, 2.0, 3.0, 5.0], [9, 4.0, -1.0, 5.0, 1.0], [13, 1.0, -2.0, 4.0, -2.0], [14, 4.0, 0.0, 4.0, 3.0], [3, 3.0, -3.0, 5.0, -2.0], [23, 3.0, 4.0, 4.0, 4.0]], [14]], [[[9, 14]], 6]], [[[[22, 0.0, 4.0, 0.0, 5.0], [16, 3.0, -2.0, 6.0, -1.0], [25, -4.0, -1.0, -1.0, 1.0], [36, -3.0, 5.0, -2.0, 5.0], [29, -5.0, 0.0, -5.0, 0.0], [12, -4.0, 5.0, -2.0, 5.0], [11, 4.0, 2.0, 6.0, 3.0], [13, -2.0, -5.0, 0.0, -3.0], [6, -5.0, 1.0, -2.0, 3.0]], [11, 13, 25]], [[[6, 25]], 21]]], [[[[[36, -3.0, 1.0, -2.0, 2.0], [9, 3.0, 2.0, 4.0, 4.0], [3, -2.0, -2.0, -1.0, 1.0], [39, 4.0, -3.0, 4.0, -2.0], [6, -1.0, -1.0, 2.0, 0.0], [28, -3.0, -3.0, -2.0, -2.0], [38, 2.0, 4.0, 3.0, 5.0]], [38]], [[[9, 38]], 6]], [[[[32, -5.0, -1.0, -3.0, 2.0], [26, 1.0, 5.0, 2.0, 7.0], [18, -4.0, 2.0, -3.0, 4.0], [5, 1.0, 1.0, 2.0, 1.0], [11, -2.0, 4.0, 1.0, 5.0], [4, 3.0, -4.0, 4.0, -4.0], [37, -4.0, 5.0, -1.0, 7.0]], [18]], [[[18, 32]], 6]], [[[[4, 3.0, -3.0, 3.0, -1.0], [19, -1.0, -2.0, 2.0, 0.0], [38, -2.0, 1.0, 1.0, 1.0], [32, -4.0, 1.0, -3.0, 2.0]], [4, 19, 4, 32]], [[], 6]], [[[[4, 4.0, -4.0, 5.0, -4.0], [28, 0.0, -1.0, 3.0, 0.0], [2, 2.0, -5.0, 3.0, -5.0], [1, -4.0, 3.0, -3.0, 5.0], [34, -2.0, 1.0, -2.0, 2.0], [24, -3.0, 0.0, -3.0, 1.0], [16, -4.0, -4.0, -1.0, -2.0], [5, -3.0, 0.0, -1.0, 1.0], [20, -3.0, 0.0, -2.0, 0.0], [13, 5.0, -5.0, 6.0, -4.0]], [2, 2, 13]], [[[4, 13]], 17]], [[[[27, 3.0, 4.0, 4.0, 7.0], [32, 2.0, -3.0, 4.0, -3.0], [20, -5.0, -5.0, -3.0, -2.0], [19, -4.0, -3.0, -2.0, -2.0], [10, 1.0, 0.0, 3.0, 3.0]], [20, 10, 32, 19, 10]], [[[19, 20]], 10]], [[[[18, -4.0, 2.0, -4.0, 4.0], [30, 5.0, 5.0, 5.0, 6.0], [7, -5.0, 5.0, -3.0, 7.0], [32, -4.0, 2.0, -2.0, 4.0], [12, -2.0, 3.0, -2.0, 3.0]], [30, 18, 12, 32, 18]], [[[12, 32], [18, 32]], 10]], [[[[27, 0.0, 2.0, 0.0, 2.0], [36, 5.0, -1.0, 6.0, 0.0], [20, 0.0, -2.0, 3.0, -2.0], [21, 2.0, 1.0, 2.0, 4.0], [25, -3.0, -4.0, -3.0, -3.0], [32, -5.0, -5.0, -3.0, -2.0]], [27]], [[], 5]], [[[[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]]], [[[[[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]], [[[[19, -2.0, 0.0, -1.0, 0.0], [27, -3.0, 1.0, -2.0, 4.0], [10, -4.0, -3.0, -4.0, -3.0], [29, -5.0, -4.0, -3.0, -4.0], [9, -5.0, 3.0, -2.0, 6.0]], [27, 19, 9, 10]], [[[9, 27]], 10]], [[[[8, 3.0, 1.0, 5.0, 4.0], [17, 1.0, 4.0, 4.0, 4.0], [31, 0.0, 5.0, 0.0, 7.0], [27, -3.0, 3.0, -3.0, 4.0], [26, 5.0, 1.0, 8.0, 2.0], [22, 4.0, -3.0, 5.0, 0.0], [38, 4.0, 2.0, 4.0, 5.0], [29, -2.0, 0.0, 0.0, 3.0]], [8]], [[[8, 17], [8, 26], [8, 38]], 7]], [[[[18, -3.0, -1.0, -2.0, -1.0], [23, 2.0, -3.0, 2.0, -1.0], [3, -2.0, -2.0, -2.0, 0.0], [21, 5.0, -5.0, 7.0, -5.0], [15, -3.0, -4.0, -2.0, -1.0], [12, -3.0, 3.0, -3.0, 4.0], [29, -4.0, -2.0, -1.0, 1.0], [11, -4.0, 5.0, -4.0, 8.0], [16, 0.0, -3.0, 2.0, 0.0]], [12]], [[], 8]], [[[[12, 4.0, -2.0, 4.0, 1.0], [23, 5.0, 3.0, 8.0, 6.0], [21, 3.0, 3.0, 6.0, 3.0], [16, -2.0, -3.0, -1.0, -2.0], [19, -1.0, 5.0, 0.0, 6.0]], [19, 16]], [[], 7]], [[[[24, 4.0, -1.0, 7.0, 0.0], [22, 2.0, -2.0, 4.0, -2.0], [15, 5.0, -1.0, 5.0, 1.0], [38, 2.0, 1.0, 4.0, 4.0], [19, 0.0, -3.0, 1.0, -3.0], [17, 1.0, -3.0, 3.0, -3.0], [27, 3.0, 2.0, 3.0, 2.0]], [22]], [[], 6]], [[[[14, 3.0, 3.0, 4.0, 3.0], [12, 4.0, -1.0, 7.0, -1.0], [16, -4.0, 3.0, -2.0, 5.0], [19, 3.0, -5.0, 3.0, -5.0], [9, 1.0, -1.0, 3.0, 0.0]], [16, 12, 16, 19, 12]], [[], 9]], [[[[11, -3.0, -3.0, 0.0, -1.0], [1, 3.0, -3.0, 5.0, 0.0], [27, 1.0, -5.0, 4.0, -5.0], [23, -3.0, 2.0, -3.0, 4.0], [9, -1.0, -4.0, 1.0, -3.0], [13, 4.0, 1.0, 5.0, 2.0], [18, 0.0, 5.0, 1.0, 6.0]], [1, 13, 9]], [[[9, 11]], 15]]]]\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"},"fixed":{"sha256":"a7ada5ddf061f11c716f687d03c8b612d8c3486de2ba32da8d49a76777495399","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            if p[0] in mv and 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 = [[[[[[39, 5.0, -4.0, 5.0, -1.0], [9, 1.0, -1.0, 2.0, 1.0], [34, -4.0, -3.0, -2.0, -2.0], [20, 2.0, 4.0, 3.0, 5.0], [31, 2.0, 5.0, 5.0, 5.0], [23, 4.0, 5.0, 6.0, 6.0], [4, -5.0, 4.0, -5.0, 6.0]], [39]], [[], 6]], [[[[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]], [[[[30, 3.0, -3.0, 6.0, -2.0], [19, -1.0, 1.0, 2.0, 2.0], [12, -1.0, 1.0, 2.0, 4.0]], [19, 19, 19, 30, 30]], [[[12, 19]], 3]], [[[[32, 3.0, -4.0, 5.0, -3.0], [4, 0.0, 2.0, 1.0, 4.0], [26, 1.0, -2.0, 2.0, 1.0], [27, 4.0, 4.0, 5.0, 6.0], [36, 2.0, 4.0, 5.0, 7.0], [9, -4.0, 2.0, -1.0, 5.0], [38, -3.0, 0.0, -3.0, 3.0]], [9, 32]], [[[9, 38]], 11]], [[[[30, 1.0, 1.0, 2.0, 3.0], [36, -4.0, -2.0, -3.0, 1.0]], [36, 30, 30, 30]], [[], 1]], [[[[7, 1.0, -5.0, 2.0, -5.0], [35, -2.0, -5.0, -2.0, -3.0]], [7, 7, 7, 7]], [[], 1]], [[[[20, 1.0, 1.0, 4.0, 3.0], [6, -4.0, -1.0, -3.0, -1.0], [23, -1.0, -4.0, 1.0, -1.0]], [20, 6, 6]], [[], 3]], [[[[35, 2.0, -2.0, 3.0, 0.0], [37, 0.0, 2.0, 2.0, 4.0], [26, 5.0, 2.0, 7.0, 3.0], [5, 2.0, 2.0, 4.0, 3.0]], [26]], [[], 3]]], [[[[[37, -4.0, -1.0, -3.0, 1.0], [8, 4.0, 5.0, 5.0, 7.0], [24, 3.0, -2.0, 4.0, 0.0], [3, -4.0, 0.0, -1.0, 0.0], [7, 2.0, -1.0, 4.0, 1.0]], [7, 3]], [[[3, 37], [7, 24]], 7]], [[[[23, -5.0, -4.0, -3.0, -4.0], [7, 1.0, 4.0, 3.0, 4.0], [20, 2.0, -1.0, 3.0, 2.0], [6, -4.0, 5.0, -2.0, 5.0], [26, 0.0, -1.0, 3.0, 2.0]], [23, 7]], [[], 7]], [[[[23, -2.0, 5.0, 0.0, 5.0], [39, -1.0, -3.0, -1.0, -2.0], [30, -2.0, 2.0, 1.0, 3.0], [31, 0.0, 1.0, 2.0, 3.0], [4, 5.0, 2.0, 5.0, 4.0], [8, 1.0, 2.0, 1.0, 2.0]], [4]], [[], 5]], [[[[24, -1.0, 5.0, 1.0, 5.0], [19, -4.0, 2.0, -2.0, 5.0], [7, -3.0, 4.0, 0.0, 7.0], [16, -5.0, 2.0, -4.0, 5.0], [28, 3.0, 0.0, 5.0, 0.0]], [28]], [[], 4]], [[[[6, -5.0, 3.0, -3.0, 6.0], [31, 2.0, -1.0, 3.0, 2.0], [26, 1.0, 3.0, 4.0, 4.0]], [31, 6, 26]], [[], 3]], [[[[9, -3.0, 2.0, 0.0, 5.0], [28, -1.0, -4.0, 2.0, -3.0], [1, 0.0, 0.0, 2.0, 2.0], [12, 0.0, 2.0, 3.0, 2.0], [32, -3.0, -4.0, -3.0, -2.0]], [1, 28, 12, 32]], [[[1, 9], [1, 12], [9, 12]], 10]], [[[[23, 1.0, -1.0, 1.0, 0.0], [33, 3.0, -4.0, 4.0, -2.0], [28, 4.0, 0.0, 5.0, 0.0], [34, 0.0, 0.0, 1.0, 2.0], [8, -5.0, 1.0, -3.0, 3.0]], [28, 8, 34]], [[[23, 34]], 9]], [[[[3, 2.0, -2.0, 4.0, 1.0], [14, 0.0, 0.0, 3.0, 1.0], [15, 0.0, 2.0, 3.0, 4.0], [30, 5.0, -5.0, 5.0, -2.0], [26, 4.0, -4.0, 6.0, -3.0], [10, -2.0, 5.0, -1.0, 6.0], [13, -3.0, -1.0, 0.0, 2.0]], [26]], [[[26, 30]], 6]]], [[[[[31, -1.0, -4.0, 2.0, -1.0], [7, 5.0, 2.0, 7.0, 2.0], [36, 5.0, -1.0, 8.0, 2.0], [12, 5.0, 2.0, 8.0, 2.0], [29, 3.0, 3.0, 6.0, 4.0], [18, -4.0, 5.0, -2.0, 7.0], [14, -3.0, 3.0, 0.0, 5.0]], [7, 18, 14, 14, 29]], [[[7, 12], [7, 36], [14, 18]], 18]], [[[[29, 3.0, -1.0, 4.0, 2.0], [15, -4.0, -2.0, -3.0, -1.0]], [15]], [[], 1]], [[[[19, -5.0, 1.0, -4.0, 2.0], [31, -2.0, 0.0, -1.0, 3.0], [36, 3.0, 3.0, 4.0, 6.0], [24, -5.0, 5.0, -2.0, 5.0], [22, 1.0, -4.0, 1.0, -2.0], [13, 3.0, -3.0, 4.0, -2.0], [28, -2.0, 0.0, -1.0, 1.0]], [22, 22]], [[], 6]], [[[[30, 5.0, -1.0, 8.0, 2.0], [35, -4.0, 0.0, -1.0, 3.0], [17, -2.0, -3.0, -2.0, -3.0], [6, 3.0, 4.0, 5.0, 5.0], [23, -4.0, -3.0, -2.0, -1.0]], [17, 35, 35, 6, 30]], [[[17, 23]], 10]], [[[[33, 5.0, 0.0, 7.0, 2.0], [1, -3.0, 5.0, -2.0, 7.0], [18, 0.0, 3.0, 0.0, 3.0], [14, -1.0, -4.0, -1.0, -3.0], [12, -1.0, 1.0, 1.0, 4.0]], [33, 14]], [[], 7]], [[[[26, -4.0, 0.0, -4.0, 1.0], [11, -4.0, 1.0, -4.0, 2.0], [15, -2.0, 1.0, 1.0, 1.0], [39, -5.0, -1.0, -4.0, -1.0], [34, -5.0, 2.0, -4.0, 4.0]], [26, 39, 26, 15]], [[[11, 26]], 9]], [[[[20, 1.0, 5.0, 1.0, 8.0], [34, 3.0, 2.0, 3.0, 5.0], [9, 4.0, -1.0, 5.0, 1.0], [13, 1.0, -2.0, 4.0, -2.0], [14, 4.0, 0.0, 4.0, 3.0], [3, 3.0, -3.0, 5.0, -2.0], [23, 3.0, 4.0, 4.0, 4.0]], [14]], [[[9, 14]], 6]], [[[[22, 0.0, 4.0, 0.0, 5.0], [16, 3.0, -2.0, 6.0, -1.0], [25, -4.0, -1.0, -1.0, 1.0], [36, -3.0, 5.0, -2.0, 5.0], [29, -5.0, 0.0, -5.0, 0.0], [12, -4.0, 5.0, -2.0, 5.0], [11, 4.0, 2.0, 6.0, 3.0], [13, -2.0, -5.0, 0.0, -3.0], [6, -5.0, 1.0, -2.0, 3.0]], [11, 13, 25]], [[[6, 25]], 21]]], [[[[[36, -3.0, 1.0, -2.0, 2.0], [9, 3.0, 2.0, 4.0, 4.0], [3, -2.0, -2.0, -1.0, 1.0], [39, 4.0, -3.0, 4.0, -2.0], [6, -1.0, -1.0, 2.0, 0.0], [28, -3.0, -3.0, -2.0, -2.0], [38, 2.0, 4.0, 3.0, 5.0]], [38]], [[[9, 38]], 6]], [[[[32, -5.0, -1.0, -3.0, 2.0], [26, 1.0, 5.0, 2.0, 7.0], [18, -4.0, 2.0, -3.0, 4.0], [5, 1.0, 1.0, 2.0, 1.0], [11, -2.0, 4.0, 1.0, 5.0], [4, 3.0, -4.0, 4.0, -4.0], [37, -4.0, 5.0, -1.0, 7.0]], [18]], [[[18, 32]], 6]], [[[[4, 3.0, -3.0, 3.0, -1.0], [19, -1.0, -2.0, 2.0, 0.0], [38, -2.0, 1.0, 1.0, 1.0], [32, -4.0, 1.0, -3.0, 2.0]], [4, 19, 4, 32]], [[], 6]], [[[[4, 4.0, -4.0, 5.0, -4.0], [28, 0.0, -1.0, 3.0, 0.0], [2, 2.0, -5.0, 3.0, -5.0], [1, -4.0, 3.0, -3.0, 5.0], [34, -2.0, 1.0, -2.0, 2.0], [24, -3.0, 0.0, -3.0, 1.0], [16, -4.0, -4.0, -1.0, -2.0], [5, -3.0, 0.0, -1.0, 1.0], [20, -3.0, 0.0, -2.0, 0.0], [13, 5.0, -5.0, 6.0, -4.0]], [2, 2, 13]], [[[4, 13]], 17]], [[[[27, 3.0, 4.0, 4.0, 7.0], [32, 2.0, -3.0, 4.0, -3.0], [20, -5.0, -5.0, -3.0, -2.0], [19, -4.0, -3.0, -2.0, -2.0], [10, 1.0, 0.0, 3.0, 3.0]], [20, 10, 32, 19, 10]], [[[19, 20]], 10]], [[[[18, -4.0, 2.0, -4.0, 4.0], [30, 5.0, 5.0, 5.0, 6.0], [7, -5.0, 5.0, -3.0, 7.0], [32, -4.0, 2.0, -2.0, 4.0], [12, -2.0, 3.0, -2.0, 3.0]], [30, 18, 12, 32, 18]], [[[12, 32], [18, 32]], 10]], [[[[27, 0.0, 2.0, 0.0, 2.0], [36, 5.0, -1.0, 6.0, 0.0], [20, 0.0, -2.0, 3.0, -2.0], [21, 2.0, 1.0, 2.0, 4.0], [25, -3.0, -4.0, -3.0, -3.0], [32, -5.0, -5.0, -3.0, -2.0]], [27]], [[], 5]], [[[[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]]], [[[[[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]], [[[[19, -2.0, 0.0, -1.0, 0.0], [27, -3.0, 1.0, -2.0, 4.0], [10, -4.0, -3.0, -4.0, -3.0], [29, -5.0, -4.0, -3.0, -4.0], [9, -5.0, 3.0, -2.0, 6.0]], [27, 19, 9, 10]], [[[9, 27]], 10]], [[[[8, 3.0, 1.0, 5.0, 4.0], [17, 1.0, 4.0, 4.0, 4.0], [31, 0.0, 5.0, 0.0, 7.0], [27, -3.0, 3.0, -3.0, 4.0], [26, 5.0, 1.0, 8.0, 2.0], [22, 4.0, -3.0, 5.0, 0.0], [38, 4.0, 2.0, 4.0, 5.0], [29, -2.0, 0.0, 0.0, 3.0]], [8]], [[[8, 17], [8, 26], [8, 38]], 7]], [[[[18, -3.0, -1.0, -2.0, -1.0], [23, 2.0, -3.0, 2.0, -1.0], [3, -2.0, -2.0, -2.0, 0.0], [21, 5.0, -5.0, 7.0, -5.0], [15, -3.0, -4.0, -2.0, -1.0], [12, -3.0, 3.0, -3.0, 4.0], [29, -4.0, -2.0, -1.0, 1.0], [11, -4.0, 5.0, -4.0, 8.0], [16, 0.0, -3.0, 2.0, 0.0]], [12]], [[], 8]], [[[[12, 4.0, -2.0, 4.0, 1.0], [23, 5.0, 3.0, 8.0, 6.0], [21, 3.0, 3.0, 6.0, 3.0], [16, -2.0, -3.0, -1.0, -2.0], [19, -1.0, 5.0, 0.0, 6.0]], [19, 16]], [[], 7]], [[[[24, 4.0, -1.0, 7.0, 0.0], [22, 2.0, -2.0, 4.0, -2.0], [15, 5.0, -1.0, 5.0, 1.0], [38, 2.0, 1.0, 4.0, 4.0], [19, 0.0, -3.0, 1.0, -3.0], [17, 1.0, -3.0, 3.0, -3.0], [27, 3.0, 2.0, 3.0, 2.0]], [22]], [[], 6]], [[[[14, 3.0, 3.0, 4.0, 3.0], [12, 4.0, -1.0, 7.0, -1.0], [16, -4.0, 3.0, -2.0, 5.0], [19, 3.0, -5.0, 3.0, -5.0], [9, 1.0, -1.0, 3.0, 0.0]], [16, 12, 16, 19, 12]], [[], 9]], [[[[11, -3.0, -3.0, 0.0, -1.0], [1, 3.0, -3.0, 5.0, 0.0], [27, 1.0, -5.0, 4.0, -5.0], [23, -3.0, 2.0, -3.0, 4.0], [9, -1.0, -4.0, 1.0, -3.0], [13, 4.0, 1.0, 5.0, 2.0], [18, 0.0, 5.0, 1.0, 6.0]], [1, 13, 9]], [[[9, 11]], 15]]]]\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-moved-pair-ownership","generated_at":"2026-09-29T14:51:01.274295+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.","repair":"Skip only when the other moved proxy has the larger id.","root_cause":"Any hit that is itself in the move buffer is skipped.","sha256":"93190348645a97a24f650b4589adaaa2c18747edac80dc5ed7929dd9b51ea915","title":"Pairs between two moved proxies are never created · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.374,"exit_code":1,"observations":[{"actual":[[],6],"check":"case 0","expected":[[],6],"passed":true},{"actual":[[],9],"check":"case 1","expected":[[],15],"passed":false},{"actual":[[[12,19]],3],"check":"case 2","expected":[[[12,19]],3],"passed":true},{"actual":[[],5],"check":"case 3","expected":[[[9,38]],11],"passed":false},{"actual":[[],1],"check":"case 4","expected":[[],1],"passed":true},{"actual":[[],0],"check":"case 5","expected":[[],1],"passed":false},{"actual":[[],1],"check":"case 6","expected":[[],3],"passed":false},{"actual":[[],1],"check":"case 7","expected":[[],3],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [[], 6], \"expected\": [[], 6], \"passed\": true}, {\"check\": \"case 1\", \"actual\": [[], 9], \"expected\": [[], 15], \"passed\": false}, {\"check\": \"case 2\", \"actual\": [[[12, 19]], 3], \"expected\": [[[12, 19]], 3], \"passed\": true}, {\"check\": \"case 3\", \"actual\": [[], 5], \"expected\": [[[9, 38]], 11], \"passed\": false}, {\"check\": \"case 4\", \"actual\": [[], 1], \"expected\": [[], 1], \"passed\": true}, {\"check\": \"case 5\", \"actual\": [[], 0], \"expected\": [[], 1], \"passed\": false}, {\"check\": \"case 6\", \"actual\": [[], 1], \"expected\": [[], 3], \"passed\": false}, {\"check\": \"case 7\", \"actual\": [[], 1], \"expected\": [[], 3], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.719,"exit_code":1,"observations":[{"actual":[[],6],"check":"case 0","expected":[[],6],"passed":true},{"actual":[[],12],"check":"case 1","expected":[[],15],"passed":false},{"actual":[[[12,19]],2],"check":"case 2","expected":[[[12,19]],3],"passed":false},{"actual":[[[9,38]],10],"check":"case 3","expected":[[[9,38]],11],"passed":false},{"actual":[[],0],"check":"case 4","expected":[[],1],"passed":false},{"actual":[[],1],"check":"case 5","expected":[[],1],"passed":true},{"actual":[[],2],"check":"case 6","expected":[[],3],"passed":false},{"actual":[[],3],"check":"case 7","expected":[[],3],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [[], 6], \"expected\": [[], 6], \"passed\": true}, {\"check\": \"case 1\", \"actual\": [[], 12], \"expected\": [[], 15], \"passed\": false}, {\"check\": \"case 2\", \"actual\": [[[12, 19]], 2], \"expected\": [[[12, 19]], 3], \"passed\": false}, {\"check\": \"case 3\", \"actual\": [[[9, 38]], 10], \"expected\": [[[9, 38]], 11], \"passed\": false}, {\"check\": \"case 4\", \"actual\": [[], 0], \"expected\": [[], 1], \"passed\": false}, {\"check\": \"case 5\", \"actual\": [[], 1], \"expected\": [[], 1], \"passed\": true}, {\"check\": \"case 6\", \"actual\": [[], 2], \"expected\": [[], 3], \"passed\": false}, {\"check\": \"case 7\", \"actual\": [[], 3], \"expected\": [[], 3], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.806,"exit_code":0,"observations":[{"actual":[[],6],"check":"case 0","expected":[[],6],"passed":true},{"actual":[[],15],"check":"case 1","expected":[[],15],"passed":true},{"actual":[[[12,19]],3],"check":"case 2","expected":[[[12,19]],3],"passed":true},{"actual":[[[9,38]],11],"check":"case 3","expected":[[[9,38]],11],"passed":true},{"actual":[[],1],"check":"case 4","expected":[[],1],"passed":true},{"actual":[[],1],"check":"case 5","expected":[[],1],"passed":true},{"actual":[[],3],"check":"case 6","expected":[[],3],"passed":true},{"actual":[[],3],"check":"case 7","expected":[[],3],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [[], 6], \"expected\": [[], 6], \"passed\": true}, {\"check\": \"case 1\", \"actual\": [[], 15], \"expected\": [[], 15], \"passed\": true}, {\"check\": \"case 2\", \"actual\": [[[12, 19]], 3], \"expected\": [[[12, 19]], 3], \"passed\": true}, {\"check\": \"case 3\", \"actual\": [[[9, 38]], 11], \"expected\": [[[9, 38]], 11], \"passed\": true}, {\"check\": \"case 4\", \"actual\": [[], 1], \"expected\": [[], 1], \"passed\": true}, {\"check\": \"case 5\", \"actual\": [[], 1], \"expected\": [[], 1], \"passed\": true}, {\"check\": \"case 6\", \"actual\": [[], 3], \"expected\": [[], 3], \"passed\": true}, {\"check\": \"case 7\", \"actual\": [[], 3], \"expected\": [[], 3], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}