{"abstract":"Paragraph separators appear at the start of the following paragraph.","category":"Bidirectional text layout","checks":8,"contract":"Input [text, default level]. Paragraph separators (\\n, \\r, U+2029; \\r\\n counts once) end a paragraph and stay with it. A trailing non-empty remainder is a paragraph. Each paragraph takes level 1 if its first letter is uppercase (stand-in for RTL), 0 if lowercase, else the default. Return [[paragraph, level]].","evaluation_group":"w2-bidirectional-text-layout-paragraph-split","failed_approach":"Dropping the separator loses text.","family":"w2-bidirectional-text-layout-paragraph-split-separator-ownership","id":"FA-80816","implementations":{"attempt":{"sha256":"2b8445c1e36149c7cfe614c99ca8698bd3f692665c32a6dfe6f8adca490fdcfa","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    text, default = x\n    paras = []\n    cur = ''\n    i = 0\n    while i < len(text):\n        ch = text[i]\n        if ch == '\\r' and text[i + 1:i + 2] == '\\n':\n            cur += '\\r\\n'\n            paras.append(cur)\n            cur = ''\n            i += 2\n            continue\n        if ch in '\\n\\r\\u2029':\n            paras.append(cur)\n            cur = ''\n        else:\n            cur += ch\n        i += 1\n    if cur:\n        paras.append(cur)\n    out = []\n    for p in paras:\n        level = default\n        for ch in p:\n            if ch.isalpha():\n                level = 1 if ch.isupper() else 0\n                break\n        out.append([p, level])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('regression: separator ownership', [' Y,1Y\\n\\r\\n', 1], [[' Y,1Y\\n', 1], ['\\r\\n', 1]]), ('regression: separator ownership', ['.a1 \\r2a2\\n', 0], [['.a1 \\r', 0], ['2a2\\n', 0]]), ('regression: separator ownership', ['bX YXX\\nX', 1], [['bX YXX\\n', 0], ['X', 1]]), ('separator only paragraph', ['a\\n\\nZ', 1], [['a\\n', 0], ['\\n', 1], ['Z', 1]]), ('CRLF is one separator', ['ab\\r\\nXY', 0], [['ab\\r\\n', 0], ['XY', 1]]), ('control layout', ['Z,b\\r\\nZ1a,,Y2211', 0], [['Z,b\\r\\n', 1], ['Z1a,,Y2211', 1]]), ('control layout', ['Yb.', 0], [['Yb.', 1]])], [('regression: separator ownership', [' 1c!b.Y2\\u2029\\n\\u2029\\nY.b\\n', 1], [[' 1c!b.Y2\\u2029', 0], ['\\n', 1], ['\\u2029', 1], ['\\n', 1], ['Y.b\\n', 1]]), ('regression: separator ownership', ['\\nc2Z\\r\\n', 0], [['\\n', 0], ['c2Z\\r\\n', 0]]), ('regression: separator ownership', ['XbZ,.Y c\\rYb', 0], [['XbZ,.Y c\\r', 1], ['Yb', 1]]), ('regression: separator ownership', ['bb\\n.Z. ', 1], [['bb\\n', 0], ['.Z. ', 1]]), ('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('CRLF is one separator', ['ab\\r\\nXY', 0], [['ab\\r\\n', 0], ['XY', 1]]), ('control layout', ['\\r\\n1,X1 \\r\\n.b,', 1], [['\\r\\n', 1], ['1,X1 \\r\\n', 1], ['.b,', 0]]), ('control layout', ['b!X', 0], [['b!X', 0]])], [('regression: separator ownership', ['\\n!, \\r,1\\nZ', 1], [['\\n', 1], ['!, \\r', 1], [',1\\n', 1], ['Z', 1]]), ('regression: separator ownership', ['.,bZ\\nbXY', 1], [['.,bZ\\n', 0], ['bXY', 0]]), ('regression: separator ownership', ['1 \\n\\u2029cX\\r\\n1\\n\\n\\n.c', 0], [['1 \\n', 0], ['\\u2029', 0], ['cX\\r\\n', 0], ['1\\n', 0], ['\\n', 0], ['\\n', 0], ['.c', 0]]), ('regression: separator ownership', ['..Z\\r\\na\\n\\r\\na!Ya b', 1], [['..Z\\r\\n', 1], ['a\\n', 0], ['\\r\\n', 1], ['a!Ya b', 0]]), ('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('CRLF is one separator', ['ab\\r\\nXY', 0], [['ab\\r\\n', 0], ['XY', 1]]), ('control layout', ['aabY!.! XZa .Yc', 0], [['aabY!.! XZa .Yc', 0]]), ('control layout', ['a! \\r\\nY.a1', 1], [['a! \\r\\n', 0], ['Y.a1', 1]])], [('regression: separator ownership', ['Ya\\nb c,,,a1\\r\\n\\r\\n\\n\\u2029\\n', 0], [['Ya\\n', 1], ['b c,,,a1\\r\\n', 0], ['\\r\\n', 0], ['\\n', 0], ['\\u2029', 0], ['\\n', 0]]), ('regression: separator ownership', ['21!b!YcZ\\r\\n\\n.Y Y!', 1], [['21!b!YcZ\\r\\n', 0], ['\\n', 1], ['.Y Y!', 1]]), ('regression: separator ownership', ['a\\r\\n\\nY1X111,2Z', 1], [['a\\r\\n', 0], ['\\n', 1], ['Y1X111,2Z', 1]]), ('regression: separator ownership', ['Z\\u2029\\r\\n Z', 0], [['Z\\u2029', 1], ['\\r\\n', 0], [' Z', 1]]), ('separator only paragraph', ['a\\n\\nZ', 1], [['a\\n', 0], ['\\n', 1], ['Z', 1]]), ('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('control layout', [',Yb!', 0], [[',Yb!', 1]]), ('control layout', ['a  \\r\\n1', 1], [['a  \\r\\n', 0], ['1', 1]])], [('regression: separator ownership', [' ZZ\\nXb', 0], [[' ZZ\\n', 1], ['Xb', 1]]), ('regression: separator ownership', ['c1\\u2029\\nb2', 1], [['c1\\u2029', 0], ['\\n', 1], ['b2', 0]]), ('regression: separator ownership', ['c\\rbX\\r\\n', 0], [['c\\r', 0], ['bX\\r\\n', 0]]), ('regression: separator ownership', [',Y. X a,\\r\\n1c1,\\n2', 1], [[',Y. X a,\\r\\n', 1], ['1c1,\\n', 0], ['2', 1]]), ('CRLF is one separator', ['ab\\r\\nXY', 0], [['ab\\r\\n', 0], ['XY', 1]]), ('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('control layout', ['12.,cZX', 0], [['12.,cZX', 0]]), ('control layout', ['a,1.2Z', 1], [['a,1.2Z', 0]])]]\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":"a04b69495af27d15de86341f2c9b83315203e84a3a2823af3eeebfeaf9847d2a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    text, default = x\n    paras = []\n    cur = ''\n    i = 0\n    while i < len(text):\n        ch = text[i]\n        if ch == '\\r' and text[i + 1:i + 2] == '\\n':\n            cur += '\\r\\n'\n            paras.append(cur)\n            cur = ''\n            i += 2\n            continue\n        if ch in '\\n\\r\\u2029':\n            paras.append(cur)\n            cur = ''\n        cur += ch\n        i += 1\n    if cur:\n        paras.append(cur)\n    out = []\n    for p in paras:\n        level = default\n        for ch in p:\n            if ch.isalpha():\n                level = 1 if ch.isupper() else 0\n                break\n        out.append([p, level])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('regression: separator ownership', [' Y,1Y\\n\\r\\n', 1], [[' Y,1Y\\n', 1], ['\\r\\n', 1]]), ('regression: separator ownership', ['.a1 \\r2a2\\n', 0], [['.a1 \\r', 0], ['2a2\\n', 0]]), ('regression: separator ownership', ['bX YXX\\nX', 1], [['bX YXX\\n', 0], ['X', 1]]), ('separator only paragraph', ['a\\n\\nZ', 1], [['a\\n', 0], ['\\n', 1], ['Z', 1]]), ('CRLF is one separator', ['ab\\r\\nXY', 0], [['ab\\r\\n', 0], ['XY', 1]]), ('control layout', ['Z,b\\r\\nZ1a,,Y2211', 0], [['Z,b\\r\\n', 1], ['Z1a,,Y2211', 1]]), ('control layout', ['Yb.', 0], [['Yb.', 1]])], [('regression: separator ownership', [' 1c!b.Y2\\u2029\\n\\u2029\\nY.b\\n', 1], [[' 1c!b.Y2\\u2029', 0], ['\\n', 1], ['\\u2029', 1], ['\\n', 1], ['Y.b\\n', 1]]), ('regression: separator ownership', ['\\nc2Z\\r\\n', 0], [['\\n', 0], ['c2Z\\r\\n', 0]]), ('regression: separator ownership', ['XbZ,.Y c\\rYb', 0], [['XbZ,.Y c\\r', 1], ['Yb', 1]]), ('regression: separator ownership', ['bb\\n.Z. ', 1], [['bb\\n', 0], ['.Z. ', 1]]), ('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('CRLF is one separator', ['ab\\r\\nXY', 0], [['ab\\r\\n', 0], ['XY', 1]]), ('control layout', ['\\r\\n1,X1 \\r\\n.b,', 1], [['\\r\\n', 1], ['1,X1 \\r\\n', 1], ['.b,', 0]]), ('control layout', ['b!X', 0], [['b!X', 0]])], [('regression: separator ownership', ['\\n!, \\r,1\\nZ', 1], [['\\n', 1], ['!, \\r', 1], [',1\\n', 1], ['Z', 1]]), ('regression: separator ownership', ['.,bZ\\nbXY', 1], [['.,bZ\\n', 0], ['bXY', 0]]), ('regression: separator ownership', ['1 \\n\\u2029cX\\r\\n1\\n\\n\\n.c', 0], [['1 \\n', 0], ['\\u2029', 0], ['cX\\r\\n', 0], ['1\\n', 0], ['\\n', 0], ['\\n', 0], ['.c', 0]]), ('regression: separator ownership', ['..Z\\r\\na\\n\\r\\na!Ya b', 1], [['..Z\\r\\n', 1], ['a\\n', 0], ['\\r\\n', 1], ['a!Ya b', 0]]), ('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('CRLF is one separator', ['ab\\r\\nXY', 0], [['ab\\r\\n', 0], ['XY', 1]]), ('control layout', ['aabY!.! XZa .Yc', 0], [['aabY!.! XZa .Yc', 0]]), ('control layout', ['a! \\r\\nY.a1', 1], [['a! \\r\\n', 0], ['Y.a1', 1]])], [('regression: separator ownership', ['Ya\\nb c,,,a1\\r\\n\\r\\n\\n\\u2029\\n', 0], [['Ya\\n', 1], ['b c,,,a1\\r\\n', 0], ['\\r\\n', 0], ['\\n', 0], ['\\u2029', 0], ['\\n', 0]]), ('regression: separator ownership', ['21!b!YcZ\\r\\n\\n.Y Y!', 1], [['21!b!YcZ\\r\\n', 0], ['\\n', 1], ['.Y Y!', 1]]), ('regression: separator ownership', ['a\\r\\n\\nY1X111,2Z', 1], [['a\\r\\n', 0], ['\\n', 1], ['Y1X111,2Z', 1]]), ('regression: separator ownership', ['Z\\u2029\\r\\n Z', 0], [['Z\\u2029', 1], ['\\r\\n', 0], [' Z', 1]]), ('separator only paragraph', ['a\\n\\nZ', 1], [['a\\n', 0], ['\\n', 1], ['Z', 1]]), ('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('control layout', [',Yb!', 0], [[',Yb!', 1]]), ('control layout', ['a  \\r\\n1', 1], [['a  \\r\\n', 0], ['1', 1]])], [('regression: separator ownership', [' ZZ\\nXb', 0], [[' ZZ\\n', 1], ['Xb', 1]]), ('regression: separator ownership', ['c1\\u2029\\nb2', 1], [['c1\\u2029', 0], ['\\n', 1], ['b2', 0]]), ('regression: separator ownership', ['c\\rbX\\r\\n', 0], [['c\\r', 0], ['bX\\r\\n', 0]]), ('regression: separator ownership', [',Y. X a,\\r\\n1c1,\\n2', 1], [[',Y. X a,\\r\\n', 1], ['1c1,\\n', 0], ['2', 1]]), ('CRLF is one separator', ['ab\\r\\nXY', 0], [['ab\\r\\n', 0], ['XY', 1]]), ('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('control layout', ['12.,cZX', 0], [['12.,cZX', 0]]), ('control layout', ['a,1.2Z', 1], [['a,1.2Z', 0]])]]\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":"be980281c8771c7f8b3106e64d0a2f11e7a54a55989b3e2faab39310cc3df993","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    text, default = x\n    paras = []\n    cur = ''\n    i = 0\n    while i < len(text):\n        ch = text[i]\n        if ch == '\\r' and text[i + 1:i + 2] == '\\n':\n            cur += '\\r\\n'\n            paras.append(cur)\n            cur = ''\n            i += 2\n            continue\n        cur += ch\n        if ch in '\\n\\r\\u2029':\n            paras.append(cur)\n            cur = ''\n        i += 1\n    if cur:\n        paras.append(cur)\n    out = []\n    for p in paras:\n        level = default\n        for ch in p:\n            if ch.isalpha():\n                level = 1 if ch.isupper() else 0\n                break\n        out.append([p, level])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('regression: separator ownership', [' Y,1Y\\n\\r\\n', 1], [[' Y,1Y\\n', 1], ['\\r\\n', 1]]), ('regression: separator ownership', ['.a1 \\r2a2\\n', 0], [['.a1 \\r', 0], ['2a2\\n', 0]]), ('regression: separator ownership', ['bX YXX\\nX', 1], [['bX YXX\\n', 0], ['X', 1]]), ('separator only paragraph', ['a\\n\\nZ', 1], [['a\\n', 0], ['\\n', 1], ['Z', 1]]), ('CRLF is one separator', ['ab\\r\\nXY', 0], [['ab\\r\\n', 0], ['XY', 1]]), ('control layout', ['Z,b\\r\\nZ1a,,Y2211', 0], [['Z,b\\r\\n', 1], ['Z1a,,Y2211', 1]]), ('control layout', ['Yb.', 0], [['Yb.', 1]])], [('regression: separator ownership', [' 1c!b.Y2\\u2029\\n\\u2029\\nY.b\\n', 1], [[' 1c!b.Y2\\u2029', 0], ['\\n', 1], ['\\u2029', 1], ['\\n', 1], ['Y.b\\n', 1]]), ('regression: separator ownership', ['\\nc2Z\\r\\n', 0], [['\\n', 0], ['c2Z\\r\\n', 0]]), ('regression: separator ownership', ['XbZ,.Y c\\rYb', 0], [['XbZ,.Y c\\r', 1], ['Yb', 1]]), ('regression: separator ownership', ['bb\\n.Z. ', 1], [['bb\\n', 0], ['.Z. ', 1]]), ('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('CRLF is one separator', ['ab\\r\\nXY', 0], [['ab\\r\\n', 0], ['XY', 1]]), ('control layout', ['\\r\\n1,X1 \\r\\n.b,', 1], [['\\r\\n', 1], ['1,X1 \\r\\n', 1], ['.b,', 0]]), ('control layout', ['b!X', 0], [['b!X', 0]])], [('regression: separator ownership', ['\\n!, \\r,1\\nZ', 1], [['\\n', 1], ['!, \\r', 1], [',1\\n', 1], ['Z', 1]]), ('regression: separator ownership', ['.,bZ\\nbXY', 1], [['.,bZ\\n', 0], ['bXY', 0]]), ('regression: separator ownership', ['1 \\n\\u2029cX\\r\\n1\\n\\n\\n.c', 0], [['1 \\n', 0], ['\\u2029', 0], ['cX\\r\\n', 0], ['1\\n', 0], ['\\n', 0], ['\\n', 0], ['.c', 0]]), ('regression: separator ownership', ['..Z\\r\\na\\n\\r\\na!Ya b', 1], [['..Z\\r\\n', 1], ['a\\n', 0], ['\\r\\n', 1], ['a!Ya b', 0]]), ('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('CRLF is one separator', ['ab\\r\\nXY', 0], [['ab\\r\\n', 0], ['XY', 1]]), ('control layout', ['aabY!.! XZa .Yc', 0], [['aabY!.! XZa .Yc', 0]]), ('control layout', ['a! \\r\\nY.a1', 1], [['a! \\r\\n', 0], ['Y.a1', 1]])], [('regression: separator ownership', ['Ya\\nb c,,,a1\\r\\n\\r\\n\\n\\u2029\\n', 0], [['Ya\\n', 1], ['b c,,,a1\\r\\n', 0], ['\\r\\n', 0], ['\\n', 0], ['\\u2029', 0], ['\\n', 0]]), ('regression: separator ownership', ['21!b!YcZ\\r\\n\\n.Y Y!', 1], [['21!b!YcZ\\r\\n', 0], ['\\n', 1], ['.Y Y!', 1]]), ('regression: separator ownership', ['a\\r\\n\\nY1X111,2Z', 1], [['a\\r\\n', 0], ['\\n', 1], ['Y1X111,2Z', 1]]), ('regression: separator ownership', ['Z\\u2029\\r\\n Z', 0], [['Z\\u2029', 1], ['\\r\\n', 0], [' Z', 1]]), ('separator only paragraph', ['a\\n\\nZ', 1], [['a\\n', 0], ['\\n', 1], ['Z', 1]]), ('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('control layout', [',Yb!', 0], [[',Yb!', 1]]), ('control layout', ['a  \\r\\n1', 1], [['a  \\r\\n', 0], ['1', 1]])], [('regression: separator ownership', [' ZZ\\nXb', 0], [[' ZZ\\n', 1], ['Xb', 1]]), ('regression: separator ownership', ['c1\\u2029\\nb2', 1], [['c1\\u2029', 0], ['\\n', 1], ['b2', 0]]), ('regression: separator ownership', ['c\\rbX\\r\\n', 0], [['c\\r', 0], ['bX\\r\\n', 0]]), ('regression: separator ownership', [',Y. X a,\\r\\n1c1,\\n2', 1], [[',Y. X a,\\r\\n', 1], ['1c1,\\n', 0], ['2', 1]]), ('CRLF is one separator', ['ab\\r\\nXY', 0], [['ab\\r\\n', 0], ['XY', 1]]), ('digits then letter', ['12 X\\n', 0], [['12 X\\n', 1]]), ('control layout', ['12.,cZX', 0], [['12.,cZX', 0]]), ('control layout', ['a,1.2Z', 1], [['a,1.2Z', 0]])]]\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-paragraph-split-separator-ownership","generated_at":"2026-09-29T14:49:57.369703+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":"Keep the separator with the paragraph it terminates.","root_cause":"The separator is added to the next paragraph instead of the one it ends.","sha256":"a537566ac8112e61db5dbb6a5bd42ac5171b2c88dc8517835b5d9908bde6112d","title":"Paragraph separation and direction: separator ownership · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.921,"exit_code":1,"observations":[{"actual":[["12 X",1]],"check":"digits then letter","expected":[["12 X\n",1]],"passed":false},{"actual":[[" Y,1Y",1],["\r\n",1]],"check":"regression: separator ownership","expected":[[" Y,1Y\n",1],["\r\n",1]],"passed":false},{"actual":[[".a1 ",0],["2a2",0]],"check":"regression: separator ownership","expected":[[".a1 \r",0],["2a2\n",0]],"passed":false},{"actual":[["bX YXX",0],["X",1]],"check":"regression: separator ownership","expected":[["bX YXX\n",0],["X",1]],"passed":false},{"actual":[["a",0],["",1],["Z",1]],"check":"separator only paragraph","expected":[["a\n",0],["\n",1],["Z",1]],"passed":false},{"actual":[["ab\r\n",0],["XY",1]],"check":"CRLF is one separator","expected":[["ab\r\n",0],["XY",1]],"passed":true},{"actual":[["Z,b\r\n",1],["Z1a,,Y2211",1]],"check":"control layout","expected":[["Z,b\r\n",1],["Z1a,,Y2211",1]],"passed":true},{"actual":[["Yb.",1]],"check":"control layout","expected":[["Yb.",1]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"digits then letter\", \"actual\": [[\"12 X\", 1]], \"expected\": [[\"12 X\\n\", 1]], \"passed\": false}, {\"check\": \"regression: separator ownership\", \"actual\": [[\" Y,1Y\", 1], [\"\\r\\n\", 1]], \"expected\": [[\" Y,1Y\\n\", 1], [\"\\r\\n\", 1]], \"passed\": false}, {\"check\": \"regression: separator ownership\", \"actual\": [[\".a1 \", 0], [\"2a2\", 0]], \"expected\": [[\".a1 \\r\", 0], [\"2a2\\n\", 0]], \"passed\": false}, {\"check\": \"regression: separator ownership\", \"actual\": [[\"bX YXX\", 0], [\"X\", 1]], \"expected\": [[\"bX YXX\\n\", 0], [\"X\", 1]], \"passed\": false}, {\"check\": \"separator only paragraph\", \"actual\": [[\"a\", 0], [\"\", 1], [\"Z\", 1]], \"expected\": [[\"a\\n\", 0], [\"\\n\", 1], [\"Z\", 1]], \"passed\": false}, {\"check\": \"CRLF is one separator\", \"actual\": [[\"ab\\r\\n\", 0], [\"XY\", 1]], \"expected\": [[\"ab\\r\\n\", 0], [\"XY\", 1]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[\"Z,b\\r\\n\", 1], [\"Z1a,,Y2211\", 1]], \"expected\": [[\"Z,b\\r\\n\", 1], [\"Z1a,,Y2211\", 1]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[\"Yb.\", 1]], \"expected\": [[\"Yb.\", 1]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.887,"exit_code":1,"observations":[{"actual":[["12 X",1],["\n",0]],"check":"digits then letter","expected":[["12 X\n",1]],"passed":false},{"actual":[[" Y,1Y",1],["\n\r\n",1]],"check":"regression: separator ownership","expected":[[" Y,1Y\n",1],["\r\n",1]],"passed":false},{"actual":[[".a1 ",0],["\r2a2",0],["\n",0]],"check":"regression: separator ownership","expected":[[".a1 \r",0],["2a2\n",0]],"passed":false},{"actual":[["bX YXX",0],["\nX",1]],"check":"regression: separator ownership","expected":[["bX YXX\n",0],["X",1]],"passed":false},{"actual":[["a",0],["\n",1],["\nZ",1]],"check":"separator only paragraph","expected":[["a\n",0],["\n",1],["Z",1]],"passed":false},{"actual":[["ab\r\n",0],["XY",1]],"check":"CRLF is one separator","expected":[["ab\r\n",0],["XY",1]],"passed":true},{"actual":[["Z,b\r\n",1],["Z1a,,Y2211",1]],"check":"control layout","expected":[["Z,b\r\n",1],["Z1a,,Y2211",1]],"passed":true},{"actual":[["Yb.",1]],"check":"control layout","expected":[["Yb.",1]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"digits then letter\", \"actual\": [[\"12 X\", 1], [\"\\n\", 0]], \"expected\": [[\"12 X\\n\", 1]], \"passed\": false}, {\"check\": \"regression: separator ownership\", \"actual\": [[\" Y,1Y\", 1], [\"\\n\\r\\n\", 1]], \"expected\": [[\" Y,1Y\\n\", 1], [\"\\r\\n\", 1]], \"passed\": false}, {\"check\": \"regression: separator ownership\", \"actual\": [[\".a1 \", 0], [\"\\r2a2\", 0], [\"\\n\", 0]], \"expected\": [[\".a1 \\r\", 0], [\"2a2\\n\", 0]], \"passed\": false}, {\"check\": \"regression: separator ownership\", \"actual\": [[\"bX YXX\", 0], [\"\\nX\", 1]], \"expected\": [[\"bX YXX\\n\", 0], [\"X\", 1]], \"passed\": false}, {\"check\": \"separator only paragraph\", \"actual\": [[\"a\", 0], [\"\\n\", 1], [\"\\nZ\", 1]], \"expected\": [[\"a\\n\", 0], [\"\\n\", 1], [\"Z\", 1]], \"passed\": false}, {\"check\": \"CRLF is one separator\", \"actual\": [[\"ab\\r\\n\", 0], [\"XY\", 1]], \"expected\": [[\"ab\\r\\n\", 0], [\"XY\", 1]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[\"Z,b\\r\\n\", 1], [\"Z1a,,Y2211\", 1]], \"expected\": [[\"Z,b\\r\\n\", 1], [\"Z1a,,Y2211\", 1]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[\"Yb.\", 1]], \"expected\": [[\"Yb.\", 1]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.757,"exit_code":0,"observations":[{"actual":[["12 X\n",1]],"check":"digits then letter","expected":[["12 X\n",1]],"passed":true},{"actual":[[" Y,1Y\n",1],["\r\n",1]],"check":"regression: separator ownership","expected":[[" Y,1Y\n",1],["\r\n",1]],"passed":true},{"actual":[[".a1 \r",0],["2a2\n",0]],"check":"regression: separator ownership","expected":[[".a1 \r",0],["2a2\n",0]],"passed":true},{"actual":[["bX YXX\n",0],["X",1]],"check":"regression: separator ownership","expected":[["bX YXX\n",0],["X",1]],"passed":true},{"actual":[["a\n",0],["\n",1],["Z",1]],"check":"separator only paragraph","expected":[["a\n",0],["\n",1],["Z",1]],"passed":true},{"actual":[["ab\r\n",0],["XY",1]],"check":"CRLF is one separator","expected":[["ab\r\n",0],["XY",1]],"passed":true},{"actual":[["Z,b\r\n",1],["Z1a,,Y2211",1]],"check":"control layout","expected":[["Z,b\r\n",1],["Z1a,,Y2211",1]],"passed":true},{"actual":[["Yb.",1]],"check":"control layout","expected":[["Yb.",1]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"digits then letter\", \"actual\": [[\"12 X\\n\", 1]], \"expected\": [[\"12 X\\n\", 1]], \"passed\": true}, {\"check\": \"regression: separator ownership\", \"actual\": [[\" Y,1Y\\n\", 1], [\"\\r\\n\", 1]], \"expected\": [[\" Y,1Y\\n\", 1], [\"\\r\\n\", 1]], \"passed\": true}, {\"check\": \"regression: separator ownership\", \"actual\": [[\".a1 \\r\", 0], [\"2a2\\n\", 0]], \"expected\": [[\".a1 \\r\", 0], [\"2a2\\n\", 0]], \"passed\": true}, {\"check\": \"regression: separator ownership\", \"actual\": [[\"bX YXX\\n\", 0], [\"X\", 1]], \"expected\": [[\"bX YXX\\n\", 0], [\"X\", 1]], \"passed\": true}, {\"check\": \"separator only paragraph\", \"actual\": [[\"a\\n\", 0], [\"\\n\", 1], [\"Z\", 1]], \"expected\": [[\"a\\n\", 0], [\"\\n\", 1], [\"Z\", 1]], \"passed\": true}, {\"check\": \"CRLF is one separator\", \"actual\": [[\"ab\\r\\n\", 0], [\"XY\", 1]], \"expected\": [[\"ab\\r\\n\", 0], [\"XY\", 1]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[\"Z,b\\r\\n\", 1], [\"Z1a,,Y2211\", 1]], \"expected\": [[\"Z,b\\r\\n\", 1], [\"Z1a,,Y2211\", 1]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[\"Yb.\", 1]], \"expected\": [[\"Yb.\", 1]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}