{"abstract":"Brackets with no strong content are forced to the embedding direction.","category":"Bidirectional text layout","checks":8,"contract":"Input [classes, bracket pairs, embedding level, sos]. Process pairs in opener order. Strong types inside (EN/AN count as R) matching the embedding direction set both brackets to it; if only the opposite direction is inside, use the first strong type before the opener (checking already-updated brackets; sos if none); with no strong type inside leave them. Return classes.","contract_signature":"x","evaluation_group":"w2-bidirectional-text-layout-bracket-resolution","failed_approach":"Forcing them to sos is the same over-resolution.","family":"w2-bidirectional-text-layout-bracket-resolution-empty-pair-handling","id":"FA-80626","implementations":{"attempt":{"sha256":"7c479c399f719830dfe6dbb4a536e46ce4463c4a45770d774bc4f863306765a2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    types, pairs, level, sos = x\n    t = list(types)\n    e = 'L' if level % 2 == 0 else 'R'\n    def dirof(c):\n        if c == 'L':\n            return 'L'\n        if c in ('R', 'EN', 'AN'):\n            return 'R'\n        return None\n    for o, c in sorted(pairs):\n        inside = [dirof(t[k]) for k in range(o + 1, c)]\n        inside = [d for d in inside if d]\n        if not inside:\n            inside = [sos]\n        if e in inside:\n            new = e\n        else:\n            ctx = sos\n            for k in range(o - 1, -1, -1):\n                d = dirof(t[k])\n                if d:\n                    ctx = d\n                    break\n            new = ctx\n        t[o] = new\n        t[c] = new\n    return t\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: empty pair handling', [['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R', 'ON'], [[1, 8], [2, 5]], 0, 'L'], ['ON', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'R', 'L']), ('regression: empty pair handling', [['ON', 'ON', 'ON', 'L', 'EN', 'EN', 'ON', 'R'], [[0, 1]], 2, 'L'], ['ON', 'ON', 'ON', 'L', 'EN', 'EN', 'ON', 'R']), ('regression: empty pair handling', [['R', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'R', 'ON', 'L', 'R'], [[3, 4]], 0, 'R'], ['R', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'R', 'ON', 'L', 'R']), ('regression: empty pair handling', [['EN', 'ON', 'L', 'ON', 'ON', 'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'R', 'ON'], [[3, 4]], 1, 'L'], ['EN', 'ON', 'L', 'ON', 'ON', 'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'R', 'ON']), ('nested pair in RTL embedding', [['L', 'ON', 'ON', 'L', 'ON', 'R', 'ON'], [[1, 6], [2, 4]], 1, 'R'], ['L', 'R', 'R', 'L', 'R', 'R', 'R']), ('nested pair uses updated outer bracket', [['R', 'ON', 'ON', 'R', 'ON', 'L', 'ON'], [[1, 6], [2, 4]], 0, 'L'], ['R', 'L', 'L', 'R', 'L', 'L', 'L']), ('control layout', [['ON', 'ON', 'ON', 'R', 'ON', 'ON', 'L', 'L'], [[1, 5], [2, 4]], 0, 'L'], ['ON', 'L', 'L', 'R', 'L', 'L', 'L', 'L']), ('control layout', [['AN', 'EN', 'ON', 'R', 'ON', 'L', 'AN', 'L', 'R', 'AN', 'EN'], [], 2, 'R'], ['AN', 'EN', 'ON', 'R', 'ON', 'L', 'AN', 'L', 'R', 'AN', 'EN'])], [('regression: empty pair handling', [['R', 'ON', 'ON', 'ON', 'ON', 'R', 'ON', 'L', 'R'], [[1, 6], [2, 4]], 0, 'R'], ['R', 'R', 'ON', 'ON', 'ON', 'R', 'R', 'L', 'R']), ('regression: empty pair handling', [['EN', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'L'], [[1, 6], [2, 4]], 0, 'R'], ['EN', 'L', 'ON', 'ON', 'ON', 'L', 'L', 'L']), ('regression: empty pair handling', [['L', 'L', 'ON', 'R', 'R', 'AN', 'ON', 'ON', 'R', 'ON', 'ON', 'ON'], [[9, 10]], 0, 'L'], ['L', 'L', 'ON', 'R', 'R', 'AN', 'ON', 'ON', 'R', 'ON', 'ON', 'ON']), ('regression: empty pair handling', [['R', 'L', 'R', 'EN', 'ON', 'ON', 'ON', 'R', 'ON', 'L', 'R', 'EN', 'AN', 'R'], [[4, 5]], 2, 'R'], ['R', 'L', 'R', 'EN', 'ON', 'ON', 'ON', 'R', 'ON', 'L', 'R', 'EN', 'AN', 'R']), ('nested pair uses updated outer bracket', [['R', 'ON', 'ON', 'R', 'ON', 'L', 'ON'], [[1, 6], [2, 4]], 0, 'L'], ['R', 'L', 'L', 'R', 'L', 'L', 'L']), ('nested pair in RTL embedding', [['L', 'ON', 'ON', 'L', 'ON', 'R', 'ON'], [[1, 6], [2, 4]], 1, 'R'], ['L', 'R', 'R', 'L', 'R', 'R', 'R']), ('control layout', [['ON', 'ON', 'ON', 'ON', 'L', 'ON', 'R', 'ON', 'ON', 'L', 'L'], [[1, 8], [2, 5]], 1, 'R'], ['ON', 'R', 'R', 'ON', 'L', 'R', 'R', 'ON', 'R', 'L', 'L']), ('control layout', [['EN', 'L', 'ON', 'R', 'ON', 'AN', 'ON', 'L', 'R', 'ON', 'R', 'AN', 'R', 'R'], [[4, 6]], 1, 'R'], ['EN', 'L', 'ON', 'R', 'R', 'AN', 'R', 'L', 'R', 'ON', 'R', 'AN', 'R', 'R'])], [('regression: empty pair handling', [['ON', 'AN', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'L', 'R', 'R', 'AN', 'EN', 'L'], [[6, 7]], 2, 'R'], ['ON', 'AN', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'L', 'R', 'R', 'AN', 'EN', 'L']), ('regression: empty pair handling', [['L', 'L', 'L', 'R', 'AN', 'R', 'L', 'ON', 'ON', 'L', 'EN', 'L', 'ON'], [[7, 8]], 1, 'L'], ['L', 'L', 'L', 'R', 'AN', 'R', 'L', 'ON', 'ON', 'L', 'EN', 'L', 'ON']), ('regression: empty pair handling', [['ON', 'ON', 'R', 'ON', 'EN', 'L', 'ON', 'R', 'AN', 'AN', 'L', 'AN', 'L', 'ON'], [[0, 1]], 2, 'L'], ['ON', 'ON', 'R', 'ON', 'EN', 'L', 'ON', 'R', 'AN', 'AN', 'L', 'AN', 'L', 'ON']), ('regression: empty pair handling', [['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'L'], [[1, 7], [2, 5]], 2, 'L'], ['ON', 'L', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L']), ('nested pair in RTL embedding', [['L', 'ON', 'ON', 'L', 'ON', 'R', 'ON'], [[1, 6], [2, 4]], 1, 'R'], ['L', 'R', 'R', 'L', 'R', 'R', 'R']), ('number inside brackets in RTL context', [['R', 'ON', 'EN', 'ON'], [[1, 3]], 0, 'L'], ['R', 'R', 'EN', 'R']), ('control layout', [['L', 'ON', 'L', 'ON', 'R', 'L', 'ON', 'AN', 'ON', 'R', 'ON', 'EN'], [[3, 6]], 2, 'R'], ['L', 'ON', 'L', 'L', 'R', 'L', 'L', 'AN', 'ON', 'R', 'ON', 'EN']), ('control layout', [['L', 'ON', 'ON', 'R', 'ON', 'L', 'L', 'ON', 'R', 'L'], [[1, 7], [2, 4]], 0, 'L'], ['L', 'L', 'L', 'R', 'L', 'L', 'L', 'L', 'R', 'L'])], [('regression: empty pair handling', [['L', 'L', 'ON', 'R', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'AN', 'R', 'EN'], [[6, 7]], 0, 'R'], ['L', 'L', 'ON', 'R', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'AN', 'R', 'EN']), ('regression: empty pair handling', [['ON', 'ON', 'EN', 'L', 'L', 'R', 'ON', 'L', 'ON', 'ON'], [[0, 1]], 1, 'L'], ['ON', 'ON', 'EN', 'L', 'L', 'R', 'ON', 'L', 'ON', 'ON']), ('regression: empty pair handling', [['ON', 'R', 'L', 'ON', 'L', 'R', 'R', 'ON', 'ON', 'R', 'R', 'ON', 'AN', 'AN'], [[7, 8]], 1, 'R'], ['ON', 'R', 'L', 'ON', 'L', 'R', 'R', 'ON', 'ON', 'R', 'R', 'ON', 'AN', 'AN']), ('regression: empty pair handling', [['L', 'L', 'EN', 'EN', 'AN', 'R', 'ON', 'ON', 'EN', 'ON', 'ON'], [[9, 10]], 0, 'R'], ['L', 'L', 'EN', 'EN', 'AN', 'R', 'ON', 'ON', 'EN', 'ON', 'ON']), ('number inside brackets in RTL context', [['R', 'ON', 'EN', 'ON'], [[1, 3]], 0, 'L'], ['R', 'R', 'EN', 'R']), ('nested pair uses updated outer bracket', [['R', 'ON', 'ON', 'R', 'ON', 'L', 'ON'], [[1, 6], [2, 4]], 0, 'L'], ['R', 'L', 'L', 'R', 'L', 'L', 'L']), ('control layout', [['L', 'ON', 'AN'], [], 0, 'L'], ['L', 'ON', 'AN']), ('control layout', [['L', 'ON', 'ON', 'AN', 'AN', 'ON', 'ON'], [[1, 6], [2, 5]], 0, 'R'], ['L', 'L', 'L', 'AN', 'AN', 'L', 'L'])], [('regression: empty pair handling', [['EN', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R', 'R'], [[1, 6], [2, 4]], 0, 'R'], ['EN', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R', 'R']), ('regression: empty pair handling', [['ON', 'ON', 'ON', 'ON', 'ON', 'L'], [[1, 2]], 1, 'R'], ['ON', 'ON', 'ON', 'ON', 'ON', 'L']), ('regression: empty pair handling', [['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R'], [[5, 6]], 0, 'R'], ['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R']), ('regression: empty pair handling', [['ON', 'ON', 'AN', 'L', 'ON', 'R', 'ON', 'L', 'EN', 'R', 'L'], [[0, 1], [4, 6]], 1, 'L'], ['ON', 'ON', 'AN', 'L', 'R', 'R', 'R', 'L', 'EN', 'R', 'L']), ('nested pair in RTL embedding', [['L', 'ON', 'ON', 'L', 'ON', 'R', 'ON'], [[1, 6], [2, 4]], 1, 'R'], ['L', 'R', 'R', 'L', 'R', 'R', 'R']), ('number inside brackets in RTL context', [['R', 'ON', 'EN', 'ON'], [[1, 3]], 0, 'L'], ['R', 'R', 'EN', 'R']), ('control layout', [['ON', 'EN', 'R', 'L', 'ON', 'ON', 'L', 'ON', 'R'], [[0, 4]], 2, 'L'], ['L', 'EN', 'R', 'L', 'L', 'ON', 'L', 'ON', 'R']), ('control layout', [['L', 'ON', 'ON', 'L', 'ON', 'ON', 'L', 'ON', 'R', 'R'], [[1, 7], [2, 4]], 1, 'L'], ['L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'R', 'R'])]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, 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":"fec9c34a87e31eecc00019cd598c611ce076fe9d7ff15aadcfb9870e3dc9a9b7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    types, pairs, level, sos = x\n    t = list(types)\n    e = 'L' if level % 2 == 0 else 'R'\n    def dirof(c):\n        if c == 'L':\n            return 'L'\n        if c in ('R', 'EN', 'AN'):\n            return 'R'\n        return None\n    for o, c in sorted(pairs):\n        inside = [dirof(t[k]) for k in range(o + 1, c)]\n        inside = [d for d in inside if d]\n        if not inside:\n            inside = [e]\n        if e in inside:\n            new = e\n        else:\n            ctx = sos\n            for k in range(o - 1, -1, -1):\n                d = dirof(t[k])\n                if d:\n                    ctx = d\n                    break\n            new = ctx\n        t[o] = new\n        t[c] = new\n    return t\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: empty pair handling', [['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R', 'ON'], [[1, 8], [2, 5]], 0, 'L'], ['ON', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'R', 'L']), ('regression: empty pair handling', [['ON', 'ON', 'ON', 'L', 'EN', 'EN', 'ON', 'R'], [[0, 1]], 2, 'L'], ['ON', 'ON', 'ON', 'L', 'EN', 'EN', 'ON', 'R']), ('regression: empty pair handling', [['R', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'R', 'ON', 'L', 'R'], [[3, 4]], 0, 'R'], ['R', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'R', 'ON', 'L', 'R']), ('regression: empty pair handling', [['EN', 'ON', 'L', 'ON', 'ON', 'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'R', 'ON'], [[3, 4]], 1, 'L'], ['EN', 'ON', 'L', 'ON', 'ON', 'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'R', 'ON']), ('nested pair in RTL embedding', [['L', 'ON', 'ON', 'L', 'ON', 'R', 'ON'], [[1, 6], [2, 4]], 1, 'R'], ['L', 'R', 'R', 'L', 'R', 'R', 'R']), ('nested pair uses updated outer bracket', [['R', 'ON', 'ON', 'R', 'ON', 'L', 'ON'], [[1, 6], [2, 4]], 0, 'L'], ['R', 'L', 'L', 'R', 'L', 'L', 'L']), ('control layout', [['ON', 'ON', 'ON', 'R', 'ON', 'ON', 'L', 'L'], [[1, 5], [2, 4]], 0, 'L'], ['ON', 'L', 'L', 'R', 'L', 'L', 'L', 'L']), ('control layout', [['AN', 'EN', 'ON', 'R', 'ON', 'L', 'AN', 'L', 'R', 'AN', 'EN'], [], 2, 'R'], ['AN', 'EN', 'ON', 'R', 'ON', 'L', 'AN', 'L', 'R', 'AN', 'EN'])], [('regression: empty pair handling', [['R', 'ON', 'ON', 'ON', 'ON', 'R', 'ON', 'L', 'R'], [[1, 6], [2, 4]], 0, 'R'], ['R', 'R', 'ON', 'ON', 'ON', 'R', 'R', 'L', 'R']), ('regression: empty pair handling', [['EN', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'L'], [[1, 6], [2, 4]], 0, 'R'], ['EN', 'L', 'ON', 'ON', 'ON', 'L', 'L', 'L']), ('regression: empty pair handling', [['L', 'L', 'ON', 'R', 'R', 'AN', 'ON', 'ON', 'R', 'ON', 'ON', 'ON'], [[9, 10]], 0, 'L'], ['L', 'L', 'ON', 'R', 'R', 'AN', 'ON', 'ON', 'R', 'ON', 'ON', 'ON']), ('regression: empty pair handling', [['R', 'L', 'R', 'EN', 'ON', 'ON', 'ON', 'R', 'ON', 'L', 'R', 'EN', 'AN', 'R'], [[4, 5]], 2, 'R'], ['R', 'L', 'R', 'EN', 'ON', 'ON', 'ON', 'R', 'ON', 'L', 'R', 'EN', 'AN', 'R']), ('nested pair uses updated outer bracket', [['R', 'ON', 'ON', 'R', 'ON', 'L', 'ON'], [[1, 6], [2, 4]], 0, 'L'], ['R', 'L', 'L', 'R', 'L', 'L', 'L']), ('nested pair in RTL embedding', [['L', 'ON', 'ON', 'L', 'ON', 'R', 'ON'], [[1, 6], [2, 4]], 1, 'R'], ['L', 'R', 'R', 'L', 'R', 'R', 'R']), ('control layout', [['ON', 'ON', 'ON', 'ON', 'L', 'ON', 'R', 'ON', 'ON', 'L', 'L'], [[1, 8], [2, 5]], 1, 'R'], ['ON', 'R', 'R', 'ON', 'L', 'R', 'R', 'ON', 'R', 'L', 'L']), ('control layout', [['EN', 'L', 'ON', 'R', 'ON', 'AN', 'ON', 'L', 'R', 'ON', 'R', 'AN', 'R', 'R'], [[4, 6]], 1, 'R'], ['EN', 'L', 'ON', 'R', 'R', 'AN', 'R', 'L', 'R', 'ON', 'R', 'AN', 'R', 'R'])], [('regression: empty pair handling', [['ON', 'AN', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'L', 'R', 'R', 'AN', 'EN', 'L'], [[6, 7]], 2, 'R'], ['ON', 'AN', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'L', 'R', 'R', 'AN', 'EN', 'L']), ('regression: empty pair handling', [['L', 'L', 'L', 'R', 'AN', 'R', 'L', 'ON', 'ON', 'L', 'EN', 'L', 'ON'], [[7, 8]], 1, 'L'], ['L', 'L', 'L', 'R', 'AN', 'R', 'L', 'ON', 'ON', 'L', 'EN', 'L', 'ON']), ('regression: empty pair handling', [['ON', 'ON', 'R', 'ON', 'EN', 'L', 'ON', 'R', 'AN', 'AN', 'L', 'AN', 'L', 'ON'], [[0, 1]], 2, 'L'], ['ON', 'ON', 'R', 'ON', 'EN', 'L', 'ON', 'R', 'AN', 'AN', 'L', 'AN', 'L', 'ON']), ('regression: empty pair handling', [['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'L'], [[1, 7], [2, 5]], 2, 'L'], ['ON', 'L', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L']), ('nested pair in RTL embedding', [['L', 'ON', 'ON', 'L', 'ON', 'R', 'ON'], [[1, 6], [2, 4]], 1, 'R'], ['L', 'R', 'R', 'L', 'R', 'R', 'R']), ('number inside brackets in RTL context', [['R', 'ON', 'EN', 'ON'], [[1, 3]], 0, 'L'], ['R', 'R', 'EN', 'R']), ('control layout', [['L', 'ON', 'L', 'ON', 'R', 'L', 'ON', 'AN', 'ON', 'R', 'ON', 'EN'], [[3, 6]], 2, 'R'], ['L', 'ON', 'L', 'L', 'R', 'L', 'L', 'AN', 'ON', 'R', 'ON', 'EN']), ('control layout', [['L', 'ON', 'ON', 'R', 'ON', 'L', 'L', 'ON', 'R', 'L'], [[1, 7], [2, 4]], 0, 'L'], ['L', 'L', 'L', 'R', 'L', 'L', 'L', 'L', 'R', 'L'])], [('regression: empty pair handling', [['L', 'L', 'ON', 'R', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'AN', 'R', 'EN'], [[6, 7]], 0, 'R'], ['L', 'L', 'ON', 'R', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'AN', 'R', 'EN']), ('regression: empty pair handling', [['ON', 'ON', 'EN', 'L', 'L', 'R', 'ON', 'L', 'ON', 'ON'], [[0, 1]], 1, 'L'], ['ON', 'ON', 'EN', 'L', 'L', 'R', 'ON', 'L', 'ON', 'ON']), ('regression: empty pair handling', [['ON', 'R', 'L', 'ON', 'L', 'R', 'R', 'ON', 'ON', 'R', 'R', 'ON', 'AN', 'AN'], [[7, 8]], 1, 'R'], ['ON', 'R', 'L', 'ON', 'L', 'R', 'R', 'ON', 'ON', 'R', 'R', 'ON', 'AN', 'AN']), ('regression: empty pair handling', [['L', 'L', 'EN', 'EN', 'AN', 'R', 'ON', 'ON', 'EN', 'ON', 'ON'], [[9, 10]], 0, 'R'], ['L', 'L', 'EN', 'EN', 'AN', 'R', 'ON', 'ON', 'EN', 'ON', 'ON']), ('number inside brackets in RTL context', [['R', 'ON', 'EN', 'ON'], [[1, 3]], 0, 'L'], ['R', 'R', 'EN', 'R']), ('nested pair uses updated outer bracket', [['R', 'ON', 'ON', 'R', 'ON', 'L', 'ON'], [[1, 6], [2, 4]], 0, 'L'], ['R', 'L', 'L', 'R', 'L', 'L', 'L']), ('control layout', [['L', 'ON', 'AN'], [], 0, 'L'], ['L', 'ON', 'AN']), ('control layout', [['L', 'ON', 'ON', 'AN', 'AN', 'ON', 'ON'], [[1, 6], [2, 5]], 0, 'R'], ['L', 'L', 'L', 'AN', 'AN', 'L', 'L'])], [('regression: empty pair handling', [['EN', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R', 'R'], [[1, 6], [2, 4]], 0, 'R'], ['EN', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R', 'R']), ('regression: empty pair handling', [['ON', 'ON', 'ON', 'ON', 'ON', 'L'], [[1, 2]], 1, 'R'], ['ON', 'ON', 'ON', 'ON', 'ON', 'L']), ('regression: empty pair handling', [['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R'], [[5, 6]], 0, 'R'], ['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R']), ('regression: empty pair handling', [['ON', 'ON', 'AN', 'L', 'ON', 'R', 'ON', 'L', 'EN', 'R', 'L'], [[0, 1], [4, 6]], 1, 'L'], ['ON', 'ON', 'AN', 'L', 'R', 'R', 'R', 'L', 'EN', 'R', 'L']), ('nested pair in RTL embedding', [['L', 'ON', 'ON', 'L', 'ON', 'R', 'ON'], [[1, 6], [2, 4]], 1, 'R'], ['L', 'R', 'R', 'L', 'R', 'R', 'R']), ('number inside brackets in RTL context', [['R', 'ON', 'EN', 'ON'], [[1, 3]], 0, 'L'], ['R', 'R', 'EN', 'R']), ('control layout', [['ON', 'EN', 'R', 'L', 'ON', 'ON', 'L', 'ON', 'R'], [[0, 4]], 2, 'L'], ['L', 'EN', 'R', 'L', 'L', 'ON', 'L', 'ON', 'R']), ('control layout', [['L', 'ON', 'ON', 'L', 'ON', 'ON', 'L', 'ON', 'R', 'R'], [[1, 7], [2, 4]], 1, 'L'], ['L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'R', 'R'])]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, 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 toy bidi model over stipulated class labels and integer levels; it is inspired by, but does not claim conformance to, any published algorithm. 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-bidirectional-text-layout-bracket-resolution-empty-pair-handling","generated_at":"2026-09-29T14:49:55.509258+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Mixed right-to-left and left-to-right text must resolve levels and visual order exactly, or words, numbers and carets land in the wrong place.","root_cause":"A pair without strong types inside is resolved instead of left alone.","sha256":"d94667fe172629a49f2998d93316e2b341de43f91d85ed727033e5e57e3751bc","title":"Paired bracket direction: empty pair handling · 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":41.891,"exit_code":1,"observations":[{"actual":["ON","L","L","ON","ON","L","ON","R","L"],"check":"regression: empty pair handling","expected":["ON","L","ON","ON","ON","ON","ON","R","L"],"passed":false},{"actual":["L","L","ON","L","EN","EN","ON","R"],"check":"regression: empty pair handling","expected":["ON","ON","ON","L","EN","EN","ON","R"],"passed":false},{"actual":["R","ON","ON","R","R","L","ON","R","ON","L","R"],"check":"regression: empty pair handling","expected":["R","ON","ON","ON","ON","L","ON","R","ON","L","R"],"passed":false},{"actual":["EN","ON","L","L","L","EN","L","ON","ON","ON","ON","R","ON"],"check":"regression: empty pair handling","expected":["EN","ON","L","ON","ON","EN","L","ON","ON","ON","ON","R","ON"],"passed":false},{"actual":["L","R","R","L","R","R","R"],"check":"nested pair in RTL embedding","expected":["L","R","R","L","R","R","R"],"passed":true},{"actual":["R","L","L","R","L","L","L"],"check":"nested pair uses updated outer bracket","expected":["R","L","L","R","L","L","L"],"passed":true},{"actual":["ON","L","L","R","L","L","L","L"],"check":"control layout","expected":["ON","L","L","R","L","L","L","L"],"passed":true},{"actual":["AN","EN","ON","R","ON","L","AN","L","R","AN","EN"],"check":"control layout","expected":["AN","EN","ON","R","ON","L","AN","L","R","AN","EN"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: empty pair handling\", \"actual\": [\"ON\", \"L\", \"L\", \"ON\", \"ON\", \"L\", \"ON\", \"R\", \"L\"], \"expected\": [\"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"R\", \"L\"], \"passed\": false}, {\"check\": \"regression: empty pair handling\", \"actual\": [\"L\", \"L\", \"ON\", \"L\", \"EN\", \"EN\", \"ON\", \"R\"], \"expected\": [\"ON\", \"ON\", \"ON\", \"L\", \"EN\", \"EN\", \"ON\", \"R\"], \"passed\": false}, {\"check\": \"regression: empty pair handling\", \"actual\": [\"R\", \"ON\", \"ON\", \"R\", \"R\", \"L\", \"ON\", \"R\", \"ON\", \"L\", \"R\"], \"expected\": [\"R\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"R\", \"ON\", \"L\", \"R\"], \"passed\": false}, {\"check\": \"regression: empty pair handling\", \"actual\": [\"EN\", \"ON\", \"L\", \"L\", \"L\", \"EN\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"R\", \"ON\"], \"expected\": [\"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"EN\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"R\", \"ON\"], \"passed\": false}, {\"check\": \"nested pair in RTL embedding\", \"actual\": [\"L\", \"R\", \"R\", \"L\", \"R\", \"R\", \"R\"], \"expected\": [\"L\", \"R\", \"R\", \"L\", \"R\", \"R\", \"R\"], \"passed\": true}, {\"check\": \"nested pair uses updated outer bracket\", \"actual\": [\"R\", \"L\", \"L\", \"R\", \"L\", \"L\", \"L\"], \"expected\": [\"R\", \"L\", \"L\", \"R\", \"L\", \"L\", \"L\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"ON\", \"L\", \"L\", \"R\", \"L\", \"L\", \"L\", \"L\"], \"expected\": [\"ON\", \"L\", \"L\", \"R\", \"L\", \"L\", \"L\", \"L\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"AN\", \"EN\", \"ON\", \"R\", \"ON\", \"L\", \"AN\", \"L\", \"R\", \"AN\", \"EN\"], \"expected\": [\"AN\", \"EN\", \"ON\", \"R\", \"ON\", \"L\", \"AN\", \"L\", \"R\", \"AN\", \"EN\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.568,"exit_code":1,"observations":[{"actual":["ON","L","L","ON","ON","L","ON","R","L"],"check":"regression: empty pair handling","expected":["ON","L","ON","ON","ON","ON","ON","R","L"],"passed":false},{"actual":["L","L","ON","L","EN","EN","ON","R"],"check":"regression: empty pair handling","expected":["ON","ON","ON","L","EN","EN","ON","R"],"passed":false},{"actual":["R","ON","ON","L","L","L","ON","R","ON","L","R"],"check":"regression: empty pair handling","expected":["R","ON","ON","ON","ON","L","ON","R","ON","L","R"],"passed":false},{"actual":["EN","ON","L","R","R","EN","L","ON","ON","ON","ON","R","ON"],"check":"regression: empty pair handling","expected":["EN","ON","L","ON","ON","EN","L","ON","ON","ON","ON","R","ON"],"passed":false},{"actual":["L","R","R","L","R","R","R"],"check":"nested pair in RTL embedding","expected":["L","R","R","L","R","R","R"],"passed":true},{"actual":["R","L","L","R","L","L","L"],"check":"nested pair uses updated outer bracket","expected":["R","L","L","R","L","L","L"],"passed":true},{"actual":["ON","L","L","R","L","L","L","L"],"check":"control layout","expected":["ON","L","L","R","L","L","L","L"],"passed":true},{"actual":["AN","EN","ON","R","ON","L","AN","L","R","AN","EN"],"check":"control layout","expected":["AN","EN","ON","R","ON","L","AN","L","R","AN","EN"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: empty pair handling\", \"actual\": [\"ON\", \"L\", \"L\", \"ON\", \"ON\", \"L\", \"ON\", \"R\", \"L\"], \"expected\": [\"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"R\", \"L\"], \"passed\": false}, {\"check\": \"regression: empty pair handling\", \"actual\": [\"L\", \"L\", \"ON\", \"L\", \"EN\", \"EN\", \"ON\", \"R\"], \"expected\": [\"ON\", \"ON\", \"ON\", \"L\", \"EN\", \"EN\", \"ON\", \"R\"], \"passed\": false}, {\"check\": \"regression: empty pair handling\", \"actual\": [\"R\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"ON\", \"R\", \"ON\", \"L\", \"R\"], \"expected\": [\"R\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"R\", \"ON\", \"L\", \"R\"], \"passed\": false}, {\"check\": \"regression: empty pair handling\", \"actual\": [\"EN\", \"ON\", \"L\", \"R\", \"R\", \"EN\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"R\", \"ON\"], \"expected\": [\"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"EN\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"R\", \"ON\"], \"passed\": false}, {\"check\": \"nested pair in RTL embedding\", \"actual\": [\"L\", \"R\", \"R\", \"L\", \"R\", \"R\", \"R\"], \"expected\": [\"L\", \"R\", \"R\", \"L\", \"R\", \"R\", \"R\"], \"passed\": true}, {\"check\": \"nested pair uses updated outer bracket\", \"actual\": [\"R\", \"L\", \"L\", \"R\", \"L\", \"L\", \"L\"], \"expected\": [\"R\", \"L\", \"L\", \"R\", \"L\", \"L\", \"L\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"ON\", \"L\", \"L\", \"R\", \"L\", \"L\", \"L\", \"L\"], \"expected\": [\"ON\", \"L\", \"L\", \"R\", \"L\", \"L\", \"L\", \"L\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"AN\", \"EN\", \"ON\", \"R\", \"ON\", \"L\", \"AN\", \"L\", \"R\", \"AN\", \"EN\"], \"expected\": [\"AN\", \"EN\", \"ON\", \"R\", \"ON\", \"L\", \"AN\", \"L\", \"R\", \"AN\", \"EN\"], \"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."}}