{"abstract":"Visual runs come out in logical order.","category":"Bidirectional text layout","checks":8,"contract":"Input resolved levels of a line. Group maximal equal-level runs [logical start, length, level]; reorder whole runs from the highest level down to the lowest odd level by reversing sequences of runs at or above the level. Return [[start, length, \"rtl\"|\"ltr\"]] in visual order.","evaluation_group":"w2-bidirectional-text-layout-visual-run-list","failed_approach":"Reversing only on odd passes leaves even-level nesting in the wrong order.","family":"w2-bidirectional-text-layout-visual-run-list-run-sequence-reversal","id":"FA-80806","implementations":{"attempt":{"sha256":"abde1bbb2517f609eb1a548077a10a13696c50434a7c929e2532b8b8150aca33","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    levels = x\n    n = len(levels)\n    runs = []\n    for i in range(n):\n        if runs and runs[-1][2] == levels[i]:\n            runs[-1][1] += 1\n        else:\n            runs.append([i, 1, levels[i]])\n    if not runs:\n        return []\n    odd = [r[2] for r in runs if r[2] % 2]\n    if odd:\n        for lev in range(max(r[2] for r in runs), min(odd) - 1, -1):\n            out, i = [], 0\n            while i < len(runs):\n                if runs[i][2] >= lev:\n                    j = i\n                    while j < len(runs) and runs[j][2] >= lev:\n                        j += 1\n                    out.extend(runs[i:j][::-1] if lev % 2 else runs[i:j])\n                    i = j\n                else:\n                    out.append(runs[i])\n                    i += 1\n            runs = out\n    return [[s, ln, 'rtl' if lv % 2 else 'ltr'] for s, ln, lv in runs]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('regression: run sequence reversal', [1, 1, 1, 1, 4, 2, 2], [[4, 1, 'ltr'], [5, 2, 'ltr'], [0, 4, 'rtl']]), ('regression: run sequence reversal', [3, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2], [[8, 3, 'ltr'], [6, 2, 'rtl'], [0, 1, 'rtl'], [1, 5, 'ltr']]), ('regression: run sequence reversal', [4, 3, 4, 1, 1, 1, 1], [[3, 4, 'rtl'], [2, 1, 'ltr'], [1, 1, 'rtl'], [0, 1, 'ltr']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('control layout', [3, 3, 2, 2, 2, 2, 2], [[0, 2, 'rtl'], [2, 5, 'ltr']]), ('control layout', [0, 0, 0, 0, 0], [[0, 5, 'ltr']]), ('control layout', [1, 1, 0], [[0, 2, 'rtl'], [2, 1, 'ltr']])], [('regression: run sequence reversal', [2, 1, 1], [[1, 2, 'rtl'], [0, 1, 'ltr']]), ('regression: run sequence reversal', [1, 1, 3], [[2, 1, 'rtl'], [0, 2, 'rtl']]), ('regression: run sequence reversal', [1, 3, 3, 3, 2, 2, 2, 0, 2, 2, 2, 1], [[1, 3, 'rtl'], [4, 3, 'ltr'], [0, 1, 'rtl'], [7, 1, 'ltr'], [11, 1, 'rtl'], [8, 3, 'ltr']]), ('regression: run sequence reversal', [4, 4, 4, 4, 2, 1, 1, 1, 1, 1, 1, 2], [[11, 1, 'ltr'], [5, 6, 'rtl'], [0, 4, 'ltr'], [4, 1, 'ltr']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('control layout', [1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1], [[0, 4, 'rtl'], [4, 4, 'ltr'], [8, 3, 'rtl']]), ('control layout', [2, 2], [[0, 2, 'ltr']])], [('regression: run sequence reversal', [1, 1, 2, 2, 2, 2, 1, 1, 1, 1], [[6, 4, 'rtl'], [2, 4, 'ltr'], [0, 2, 'rtl']]), ('regression: run sequence reversal', [1, 1, 1, 2, 2, 2, 2, 2, 1], [[8, 1, 'rtl'], [3, 5, 'ltr'], [0, 3, 'rtl']]), ('partial-repair probe', [1, 1, 1, 1, 0, 0, 0, 3, 2, 2], [[0, 4, 'rtl'], [4, 3, 'ltr'], [7, 1, 'rtl'], [8, 2, 'ltr']]), ('regression: run sequence reversal', [2, 4, 4, 1, 2, 2], [[4, 2, 'ltr'], [3, 1, 'rtl'], [0, 1, 'ltr'], [1, 2, 'ltr']]), ('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('control layout', [1, 1, 0, 0, 0], [[0, 2, 'rtl'], [2, 3, 'ltr']]), ('control layout', [2, 2, 3, 3, 3], [[0, 2, 'ltr'], [2, 3, 'rtl']])], [('regression: run sequence reversal', [3, 3, 3, 1], [[3, 1, 'rtl'], [0, 3, 'rtl']]), ('regression: run sequence reversal', [1, 2, 1, 1, 1, 1, 2, 2, 1, 1], [[8, 2, 'rtl'], [6, 2, 'ltr'], [2, 4, 'rtl'], [1, 1, 'ltr'], [0, 1, 'rtl']]), ('regression: run sequence reversal', [1, 1, 1, 4, 4, 3, 4, 4], [[6, 2, 'ltr'], [5, 1, 'rtl'], [3, 2, 'ltr'], [0, 3, 'rtl']]), ('regression: run sequence reversal', [2, 4, 4, 4, 4, 1, 1], [[5, 2, 'rtl'], [0, 1, 'ltr'], [1, 4, 'ltr']]), ('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('control layout', [1, 1, 1], [[0, 3, 'rtl']]), ('control layout', [2, 2, 2, 2, 2], [[0, 5, 'ltr']])], [('regression: run sequence reversal', [1, 1, 1, 1, 1, 2, 2, 2, 2, 0], [[5, 4, 'ltr'], [0, 5, 'rtl'], [9, 1, 'ltr']]), ('regression: run sequence reversal', [1, 1, 1, 1, 3, 0, 0, 0, 1], [[4, 1, 'rtl'], [0, 4, 'rtl'], [5, 3, 'ltr'], [8, 1, 'rtl']]), ('regression: run sequence reversal', [1, 1, 1, 1, 1, 3, 3, 3, 2, 1, 1], [[9, 2, 'rtl'], [5, 3, 'rtl'], [8, 1, 'ltr'], [0, 5, 'rtl']]), ('regression: run sequence reversal', [0, 0, 0, 0, 2, 2, 3, 3, 3, 3, 3, 1], [[0, 4, 'ltr'], [11, 1, 'rtl'], [4, 2, 'ltr'], [6, 5, 'rtl']]), ('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('control layout', [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [[0, 2, 'ltr'], [2, 1, 'rtl'], [3, 9, 'ltr']]), ('control layout', [3, 3], [[0, 2, 'rtl']])]]\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":"f8b1f8cf0c1597430edfab5aa7c3d9ba299c386e11d4a31b6862a4faff46c663","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    levels = x\n    n = len(levels)\n    runs = []\n    for i in range(n):\n        if runs and runs[-1][2] == levels[i]:\n            runs[-1][1] += 1\n        else:\n            runs.append([i, 1, levels[i]])\n    if not runs:\n        return []\n    odd = [r[2] for r in runs if r[2] % 2]\n    if odd:\n        for lev in range(max(r[2] for r in runs), min(odd) - 1, -1):\n            out, i = [], 0\n            while i < len(runs):\n                if runs[i][2] >= lev:\n                    j = i\n                    while j < len(runs) and runs[j][2] >= lev:\n                        j += 1\n                    out.extend(runs[i:j])\n                    i = j\n                else:\n                    out.append(runs[i])\n                    i += 1\n            runs = out\n    return [[s, ln, 'rtl' if lv % 2 else 'ltr'] for s, ln, lv in runs]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('regression: run sequence reversal', [1, 1, 1, 1, 4, 2, 2], [[4, 1, 'ltr'], [5, 2, 'ltr'], [0, 4, 'rtl']]), ('regression: run sequence reversal', [3, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2], [[8, 3, 'ltr'], [6, 2, 'rtl'], [0, 1, 'rtl'], [1, 5, 'ltr']]), ('regression: run sequence reversal', [4, 3, 4, 1, 1, 1, 1], [[3, 4, 'rtl'], [2, 1, 'ltr'], [1, 1, 'rtl'], [0, 1, 'ltr']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('control layout', [3, 3, 2, 2, 2, 2, 2], [[0, 2, 'rtl'], [2, 5, 'ltr']]), ('control layout', [0, 0, 0, 0, 0], [[0, 5, 'ltr']]), ('control layout', [1, 1, 0], [[0, 2, 'rtl'], [2, 1, 'ltr']])], [('regression: run sequence reversal', [2, 1, 1], [[1, 2, 'rtl'], [0, 1, 'ltr']]), ('regression: run sequence reversal', [1, 1, 3], [[2, 1, 'rtl'], [0, 2, 'rtl']]), ('regression: run sequence reversal', [1, 3, 3, 3, 2, 2, 2, 0, 2, 2, 2, 1], [[1, 3, 'rtl'], [4, 3, 'ltr'], [0, 1, 'rtl'], [7, 1, 'ltr'], [11, 1, 'rtl'], [8, 3, 'ltr']]), ('regression: run sequence reversal', [4, 4, 4, 4, 2, 1, 1, 1, 1, 1, 1, 2], [[11, 1, 'ltr'], [5, 6, 'rtl'], [0, 4, 'ltr'], [4, 1, 'ltr']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('control layout', [1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1], [[0, 4, 'rtl'], [4, 4, 'ltr'], [8, 3, 'rtl']]), ('control layout', [2, 2], [[0, 2, 'ltr']])], [('regression: run sequence reversal', [1, 1, 2, 2, 2, 2, 1, 1, 1, 1], [[6, 4, 'rtl'], [2, 4, 'ltr'], [0, 2, 'rtl']]), ('regression: run sequence reversal', [1, 1, 1, 2, 2, 2, 2, 2, 1], [[8, 1, 'rtl'], [3, 5, 'ltr'], [0, 3, 'rtl']]), ('partial-repair probe', [1, 1, 1, 1, 0, 0, 0, 3, 2, 2], [[0, 4, 'rtl'], [4, 3, 'ltr'], [7, 1, 'rtl'], [8, 2, 'ltr']]), ('regression: run sequence reversal', [2, 4, 4, 1, 2, 2], [[4, 2, 'ltr'], [3, 1, 'rtl'], [0, 1, 'ltr'], [1, 2, 'ltr']]), ('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('control layout', [1, 1, 0, 0, 0], [[0, 2, 'rtl'], [2, 3, 'ltr']]), ('control layout', [2, 2, 3, 3, 3], [[0, 2, 'ltr'], [2, 3, 'rtl']])], [('regression: run sequence reversal', [3, 3, 3, 1], [[3, 1, 'rtl'], [0, 3, 'rtl']]), ('regression: run sequence reversal', [1, 2, 1, 1, 1, 1, 2, 2, 1, 1], [[8, 2, 'rtl'], [6, 2, 'ltr'], [2, 4, 'rtl'], [1, 1, 'ltr'], [0, 1, 'rtl']]), ('regression: run sequence reversal', [1, 1, 1, 4, 4, 3, 4, 4], [[6, 2, 'ltr'], [5, 1, 'rtl'], [3, 2, 'ltr'], [0, 3, 'rtl']]), ('regression: run sequence reversal', [2, 4, 4, 4, 4, 1, 1], [[5, 2, 'rtl'], [0, 1, 'ltr'], [1, 4, 'ltr']]), ('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('control layout', [1, 1, 1], [[0, 3, 'rtl']]), ('control layout', [2, 2, 2, 2, 2], [[0, 5, 'ltr']])], [('regression: run sequence reversal', [1, 1, 1, 1, 1, 2, 2, 2, 2, 0], [[5, 4, 'ltr'], [0, 5, 'rtl'], [9, 1, 'ltr']]), ('regression: run sequence reversal', [1, 1, 1, 1, 3, 0, 0, 0, 1], [[4, 1, 'rtl'], [0, 4, 'rtl'], [5, 3, 'ltr'], [8, 1, 'rtl']]), ('regression: run sequence reversal', [1, 1, 1, 1, 1, 3, 3, 3, 2, 1, 1], [[9, 2, 'rtl'], [5, 3, 'rtl'], [8, 1, 'ltr'], [0, 5, 'rtl']]), ('regression: run sequence reversal', [0, 0, 0, 0, 2, 2, 3, 3, 3, 3, 3, 1], [[0, 4, 'ltr'], [11, 1, 'rtl'], [4, 2, 'ltr'], [6, 5, 'rtl']]), ('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('control layout', [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [[0, 2, 'ltr'], [2, 1, 'rtl'], [3, 9, 'ltr']]), ('control layout', [3, 3], [[0, 2, 'rtl']])]]\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"},"fixed":{"sha256":"d5f6f2140cb9a59b1d3febc414fc78ec78f689ceabbc3f95ccd23271824aa50a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    levels = x\n    n = len(levels)\n    runs = []\n    for i in range(n):\n        if runs and runs[-1][2] == levels[i]:\n            runs[-1][1] += 1\n        else:\n            runs.append([i, 1, levels[i]])\n    if not runs:\n        return []\n    odd = [r[2] for r in runs if r[2] % 2]\n    if odd:\n        for lev in range(max(r[2] for r in runs), min(odd) - 1, -1):\n            out, i = [], 0\n            while i < len(runs):\n                if runs[i][2] >= lev:\n                    j = i\n                    while j < len(runs) and runs[j][2] >= lev:\n                        j += 1\n                    out.extend(runs[i:j][::-1])\n                    i = j\n                else:\n                    out.append(runs[i])\n                    i += 1\n            runs = out\n    return [[s, ln, 'rtl' if lv % 2 else 'ltr'] for s, ln, lv in runs]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('regression: run sequence reversal', [1, 1, 1, 1, 4, 2, 2], [[4, 1, 'ltr'], [5, 2, 'ltr'], [0, 4, 'rtl']]), ('regression: run sequence reversal', [3, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2], [[8, 3, 'ltr'], [6, 2, 'rtl'], [0, 1, 'rtl'], [1, 5, 'ltr']]), ('regression: run sequence reversal', [4, 3, 4, 1, 1, 1, 1], [[3, 4, 'rtl'], [2, 1, 'ltr'], [1, 1, 'rtl'], [0, 1, 'ltr']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('control layout', [3, 3, 2, 2, 2, 2, 2], [[0, 2, 'rtl'], [2, 5, 'ltr']]), ('control layout', [0, 0, 0, 0, 0], [[0, 5, 'ltr']]), ('control layout', [1, 1, 0], [[0, 2, 'rtl'], [2, 1, 'ltr']])], [('regression: run sequence reversal', [2, 1, 1], [[1, 2, 'rtl'], [0, 1, 'ltr']]), ('regression: run sequence reversal', [1, 1, 3], [[2, 1, 'rtl'], [0, 2, 'rtl']]), ('regression: run sequence reversal', [1, 3, 3, 3, 2, 2, 2, 0, 2, 2, 2, 1], [[1, 3, 'rtl'], [4, 3, 'ltr'], [0, 1, 'rtl'], [7, 1, 'ltr'], [11, 1, 'rtl'], [8, 3, 'ltr']]), ('regression: run sequence reversal', [4, 4, 4, 4, 2, 1, 1, 1, 1, 1, 1, 2], [[11, 1, 'ltr'], [5, 6, 'rtl'], [0, 4, 'ltr'], [4, 1, 'ltr']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('control layout', [1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1], [[0, 4, 'rtl'], [4, 4, 'ltr'], [8, 3, 'rtl']]), ('control layout', [2, 2], [[0, 2, 'ltr']])], [('regression: run sequence reversal', [1, 1, 2, 2, 2, 2, 1, 1, 1, 1], [[6, 4, 'rtl'], [2, 4, 'ltr'], [0, 2, 'rtl']]), ('regression: run sequence reversal', [1, 1, 1, 2, 2, 2, 2, 2, 1], [[8, 1, 'rtl'], [3, 5, 'ltr'], [0, 3, 'rtl']]), ('partial-repair probe', [1, 1, 1, 1, 0, 0, 0, 3, 2, 2], [[0, 4, 'rtl'], [4, 3, 'ltr'], [7, 1, 'rtl'], [8, 2, 'ltr']]), ('regression: run sequence reversal', [2, 4, 4, 1, 2, 2], [[4, 2, 'ltr'], [3, 1, 'rtl'], [0, 1, 'ltr'], [1, 2, 'ltr']]), ('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('control layout', [1, 1, 0, 0, 0], [[0, 2, 'rtl'], [2, 3, 'ltr']]), ('control layout', [2, 2, 3, 3, 3], [[0, 2, 'ltr'], [2, 3, 'rtl']])], [('regression: run sequence reversal', [3, 3, 3, 1], [[3, 1, 'rtl'], [0, 3, 'rtl']]), ('regression: run sequence reversal', [1, 2, 1, 1, 1, 1, 2, 2, 1, 1], [[8, 2, 'rtl'], [6, 2, 'ltr'], [2, 4, 'rtl'], [1, 1, 'ltr'], [0, 1, 'rtl']]), ('regression: run sequence reversal', [1, 1, 1, 4, 4, 3, 4, 4], [[6, 2, 'ltr'], [5, 1, 'rtl'], [3, 2, 'ltr'], [0, 3, 'rtl']]), ('regression: run sequence reversal', [2, 4, 4, 4, 4, 1, 1], [[5, 2, 'rtl'], [0, 1, 'ltr'], [1, 4, 'ltr']]), ('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('control layout', [1, 1, 1], [[0, 3, 'rtl']]), ('control layout', [2, 2, 2, 2, 2], [[0, 5, 'ltr']])], [('regression: run sequence reversal', [1, 1, 1, 1, 1, 2, 2, 2, 2, 0], [[5, 4, 'ltr'], [0, 5, 'rtl'], [9, 1, 'ltr']]), ('regression: run sequence reversal', [1, 1, 1, 1, 3, 0, 0, 0, 1], [[4, 1, 'rtl'], [0, 4, 'rtl'], [5, 3, 'ltr'], [8, 1, 'rtl']]), ('regression: run sequence reversal', [1, 1, 1, 1, 1, 3, 3, 3, 2, 1, 1], [[9, 2, 'rtl'], [5, 3, 'rtl'], [8, 1, 'ltr'], [0, 5, 'rtl']]), ('regression: run sequence reversal', [0, 0, 0, 0, 2, 2, 3, 3, 3, 3, 3, 1], [[0, 4, 'ltr'], [11, 1, 'rtl'], [4, 2, 'ltr'], [6, 5, 'rtl']]), ('LTR number inside RTL', [1, 1, 2, 2, 1], [[4, 1, 'rtl'], [2, 2, 'ltr'], [0, 2, 'rtl']]), ('lowest odd is three', [2, 3, 2], [[0, 1, 'ltr'], [1, 1, 'rtl'], [2, 1, 'ltr']]), ('control layout', [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [[0, 2, 'ltr'], [2, 1, 'rtl'], [3, 9, 'ltr']]), ('control layout', [3, 3], [[0, 2, 'rtl']])]]\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-visual-run-list-run-sequence-reversal","generated_at":"2026-09-29T14:49:57.371473+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.","repair":"Reverse each maximal sequence of runs at or above the level.","root_cause":"Sequences of runs at or above the level are appended without reversing.","sha256":"0079416eb78150158ad9f763e4705ee99554026ac00f0a540e27bfab19190b4f","title":"Visual run list for shaping: run sequence reversal · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.936,"exit_code":1,"observations":[{"actual":[[4,1,"rtl"],[2,2,"ltr"],[0,2,"rtl"]],"check":"LTR number inside RTL","expected":[[4,1,"rtl"],[2,2,"ltr"],[0,2,"rtl"]],"passed":true},{"actual":[[5,2,"ltr"],[4,1,"ltr"],[0,4,"rtl"]],"check":"regression: run sequence reversal","expected":[[4,1,"ltr"],[5,2,"ltr"],[0,4,"rtl"]],"passed":false},{"actual":[[8,3,"ltr"],[6,2,"rtl"],[1,5,"ltr"],[0,1,"rtl"]],"check":"regression: run sequence reversal","expected":[[8,3,"ltr"],[6,2,"rtl"],[0,1,"rtl"],[1,5,"ltr"]],"passed":false},{"actual":[[3,4,"rtl"],[0,1,"ltr"],[1,1,"rtl"],[2,1,"ltr"]],"check":"regression: run sequence reversal","expected":[[3,4,"rtl"],[2,1,"ltr"],[1,1,"rtl"],[0,1,"ltr"]],"passed":false},{"actual":[[0,1,"ltr"],[1,1,"rtl"],[2,1,"ltr"]],"check":"lowest odd is three","expected":[[0,1,"ltr"],[1,1,"rtl"],[2,1,"ltr"]],"passed":true},{"actual":[[0,2,"rtl"],[2,5,"ltr"]],"check":"control layout","expected":[[0,2,"rtl"],[2,5,"ltr"]],"passed":true},{"actual":[[0,5,"ltr"]],"check":"control layout","expected":[[0,5,"ltr"]],"passed":true},{"actual":[[0,2,"rtl"],[2,1,"ltr"]],"check":"control layout","expected":[[0,2,"rtl"],[2,1,"ltr"]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"LTR number inside RTL\", \"actual\": [[4, 1, \"rtl\"], [2, 2, \"ltr\"], [0, 2, \"rtl\"]], \"expected\": [[4, 1, \"rtl\"], [2, 2, \"ltr\"], [0, 2, \"rtl\"]], \"passed\": true}, {\"check\": \"regression: run sequence reversal\", \"actual\": [[5, 2, \"ltr\"], [4, 1, \"ltr\"], [0, 4, \"rtl\"]], \"expected\": [[4, 1, \"ltr\"], [5, 2, \"ltr\"], [0, 4, \"rtl\"]], \"passed\": false}, {\"check\": \"regression: run sequence reversal\", \"actual\": [[8, 3, \"ltr\"], [6, 2, \"rtl\"], [1, 5, \"ltr\"], [0, 1, \"rtl\"]], \"expected\": [[8, 3, \"ltr\"], [6, 2, \"rtl\"], [0, 1, \"rtl\"], [1, 5, \"ltr\"]], \"passed\": false}, {\"check\": \"regression: run sequence reversal\", \"actual\": [[3, 4, \"rtl\"], [0, 1, \"ltr\"], [1, 1, \"rtl\"], [2, 1, \"ltr\"]], \"expected\": [[3, 4, \"rtl\"], [2, 1, \"ltr\"], [1, 1, \"rtl\"], [0, 1, \"ltr\"]], \"passed\": false}, {\"check\": \"lowest odd is three\", \"actual\": [[0, 1, \"ltr\"], [1, 1, \"rtl\"], [2, 1, \"ltr\"]], \"expected\": [[0, 1, \"ltr\"], [1, 1, \"rtl\"], [2, 1, \"ltr\"]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[0, 2, \"rtl\"], [2, 5, \"ltr\"]], \"expected\": [[0, 2, \"rtl\"], [2, 5, \"ltr\"]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[0, 5, \"ltr\"]], \"expected\": [[0, 5, \"ltr\"]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[0, 2, \"rtl\"], [2, 1, \"ltr\"]], \"expected\": [[0, 2, \"rtl\"], [2, 1, \"ltr\"]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.859,"exit_code":1,"observations":[{"actual":[[0,2,"rtl"],[2,2,"ltr"],[4,1,"rtl"]],"check":"LTR number inside RTL","expected":[[4,1,"rtl"],[2,2,"ltr"],[0,2,"rtl"]],"passed":false},{"actual":[[0,4,"rtl"],[4,1,"ltr"],[5,2,"ltr"]],"check":"regression: run sequence reversal","expected":[[4,1,"ltr"],[5,2,"ltr"],[0,4,"rtl"]],"passed":false},{"actual":[[0,1,"rtl"],[1,5,"ltr"],[6,2,"rtl"],[8,3,"ltr"]],"check":"regression: run sequence reversal","expected":[[8,3,"ltr"],[6,2,"rtl"],[0,1,"rtl"],[1,5,"ltr"]],"passed":false},{"actual":[[0,1,"ltr"],[1,1,"rtl"],[2,1,"ltr"],[3,4,"rtl"]],"check":"regression: run sequence reversal","expected":[[3,4,"rtl"],[2,1,"ltr"],[1,1,"rtl"],[0,1,"ltr"]],"passed":false},{"actual":[[0,1,"ltr"],[1,1,"rtl"],[2,1,"ltr"]],"check":"lowest odd is three","expected":[[0,1,"ltr"],[1,1,"rtl"],[2,1,"ltr"]],"passed":true},{"actual":[[0,2,"rtl"],[2,5,"ltr"]],"check":"control layout","expected":[[0,2,"rtl"],[2,5,"ltr"]],"passed":true},{"actual":[[0,5,"ltr"]],"check":"control layout","expected":[[0,5,"ltr"]],"passed":true},{"actual":[[0,2,"rtl"],[2,1,"ltr"]],"check":"control layout","expected":[[0,2,"rtl"],[2,1,"ltr"]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"LTR number inside RTL\", \"actual\": [[0, 2, \"rtl\"], [2, 2, \"ltr\"], [4, 1, \"rtl\"]], \"expected\": [[4, 1, \"rtl\"], [2, 2, \"ltr\"], [0, 2, \"rtl\"]], \"passed\": false}, {\"check\": \"regression: run sequence reversal\", \"actual\": [[0, 4, \"rtl\"], [4, 1, \"ltr\"], [5, 2, \"ltr\"]], \"expected\": [[4, 1, \"ltr\"], [5, 2, \"ltr\"], [0, 4, \"rtl\"]], \"passed\": false}, {\"check\": \"regression: run sequence reversal\", \"actual\": [[0, 1, \"rtl\"], [1, 5, \"ltr\"], [6, 2, \"rtl\"], [8, 3, \"ltr\"]], \"expected\": [[8, 3, \"ltr\"], [6, 2, \"rtl\"], [0, 1, \"rtl\"], [1, 5, \"ltr\"]], \"passed\": false}, {\"check\": \"regression: run sequence reversal\", \"actual\": [[0, 1, \"ltr\"], [1, 1, \"rtl\"], [2, 1, \"ltr\"], [3, 4, \"rtl\"]], \"expected\": [[3, 4, \"rtl\"], [2, 1, \"ltr\"], [1, 1, \"rtl\"], [0, 1, \"ltr\"]], \"passed\": false}, {\"check\": \"lowest odd is three\", \"actual\": [[0, 1, \"ltr\"], [1, 1, \"rtl\"], [2, 1, \"ltr\"]], \"expected\": [[0, 1, \"ltr\"], [1, 1, \"rtl\"], [2, 1, \"ltr\"]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[0, 2, \"rtl\"], [2, 5, \"ltr\"]], \"expected\": [[0, 2, \"rtl\"], [2, 5, \"ltr\"]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[0, 5, \"ltr\"]], \"expected\": [[0, 5, \"ltr\"]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[0, 2, \"rtl\"], [2, 1, \"ltr\"]], \"expected\": [[0, 2, \"rtl\"], [2, 1, \"ltr\"]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.39,"exit_code":0,"observations":[{"actual":[[4,1,"rtl"],[2,2,"ltr"],[0,2,"rtl"]],"check":"LTR number inside RTL","expected":[[4,1,"rtl"],[2,2,"ltr"],[0,2,"rtl"]],"passed":true},{"actual":[[4,1,"ltr"],[5,2,"ltr"],[0,4,"rtl"]],"check":"regression: run sequence reversal","expected":[[4,1,"ltr"],[5,2,"ltr"],[0,4,"rtl"]],"passed":true},{"actual":[[8,3,"ltr"],[6,2,"rtl"],[0,1,"rtl"],[1,5,"ltr"]],"check":"regression: run sequence reversal","expected":[[8,3,"ltr"],[6,2,"rtl"],[0,1,"rtl"],[1,5,"ltr"]],"passed":true},{"actual":[[3,4,"rtl"],[2,1,"ltr"],[1,1,"rtl"],[0,1,"ltr"]],"check":"regression: run sequence reversal","expected":[[3,4,"rtl"],[2,1,"ltr"],[1,1,"rtl"],[0,1,"ltr"]],"passed":true},{"actual":[[0,1,"ltr"],[1,1,"rtl"],[2,1,"ltr"]],"check":"lowest odd is three","expected":[[0,1,"ltr"],[1,1,"rtl"],[2,1,"ltr"]],"passed":true},{"actual":[[0,2,"rtl"],[2,5,"ltr"]],"check":"control layout","expected":[[0,2,"rtl"],[2,5,"ltr"]],"passed":true},{"actual":[[0,5,"ltr"]],"check":"control layout","expected":[[0,5,"ltr"]],"passed":true},{"actual":[[0,2,"rtl"],[2,1,"ltr"]],"check":"control layout","expected":[[0,2,"rtl"],[2,1,"ltr"]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"LTR number inside RTL\", \"actual\": [[4, 1, \"rtl\"], [2, 2, \"ltr\"], [0, 2, \"rtl\"]], \"expected\": [[4, 1, \"rtl\"], [2, 2, \"ltr\"], [0, 2, \"rtl\"]], \"passed\": true}, {\"check\": \"regression: run sequence reversal\", \"actual\": [[4, 1, \"ltr\"], [5, 2, \"ltr\"], [0, 4, \"rtl\"]], \"expected\": [[4, 1, \"ltr\"], [5, 2, \"ltr\"], [0, 4, \"rtl\"]], \"passed\": true}, {\"check\": \"regression: run sequence reversal\", \"actual\": [[8, 3, \"ltr\"], [6, 2, \"rtl\"], [0, 1, \"rtl\"], [1, 5, \"ltr\"]], \"expected\": [[8, 3, \"ltr\"], [6, 2, \"rtl\"], [0, 1, \"rtl\"], [1, 5, \"ltr\"]], \"passed\": true}, {\"check\": \"regression: run sequence reversal\", \"actual\": [[3, 4, \"rtl\"], [2, 1, \"ltr\"], [1, 1, \"rtl\"], [0, 1, \"ltr\"]], \"expected\": [[3, 4, \"rtl\"], [2, 1, \"ltr\"], [1, 1, \"rtl\"], [0, 1, \"ltr\"]], \"passed\": true}, {\"check\": \"lowest odd is three\", \"actual\": [[0, 1, \"ltr\"], [1, 1, \"rtl\"], [2, 1, \"ltr\"]], \"expected\": [[0, 1, \"ltr\"], [1, 1, \"rtl\"], [2, 1, \"ltr\"]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[0, 2, \"rtl\"], [2, 5, \"ltr\"]], \"expected\": [[0, 2, \"rtl\"], [2, 5, \"ltr\"]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[0, 5, \"ltr\"]], \"expected\": [[0, 5, \"ltr\"]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[0, 2, \"rtl\"], [2, 1, \"ltr\"]], \"expected\": [[0, 2, \"rtl\"], [2, 1, \"ltr\"]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}