{"abstract":"Balanced widths are too narrow and lines overflow when laid out.","category":"Typography line breaking","checks":8,"contract":"Input [words, width]. Let L be the greedy line count at width ([\"overflow\"] if a word is wider). Find the smallest width w (>= longest word) whose greedy wrap needs no more than L lines, then return the greedy wrap at w.","evaluation_group":"w2-typography-line-breaking-balanced-headline","failed_approach":"A strict comparison miscounts exact fits.","family":"w2-typography-line-breaking-balanced-headline-interword-space-in-counting","id":"FA-80296","implementations":{"attempt":{"sha256":"643e9423e58e3558695caa4d7c47bd9f93d726b8be19f8453144f8e4e80026a8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, width = x\n    def lines_for(w):\n        count, cur = 0, -1\n        for t in words:\n            if len(t) > w:\n                return None\n            if cur == -1:\n                cur = len(t)\n                count = 1\n            elif cur + 1 + len(t) < w:\n                cur += 1 + len(t)\n            else:\n                count += 1\n                cur = len(t)\n        return count\n    target = lines_for(width)\n    if target is None:\n        return ['overflow']\n    lo = max(len(t) for t in words)\n    hi = width\n    while lo < hi:\n        mid = (lo + hi) // 2\n        c = lines_for(mid)\n        if c is not None and c <= target:\n            hi = mid\n        else:\n            lo = mid + 1\n    out, cur = [], ''\n    for t in words:\n        cand = t if not cur else cur + ' ' + t\n        if len(cand) <= lo:\n            cur = cand\n        else:\n            out.append(cur)\n            cur = t\n    out.append(cur)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('regression: interword space in counting', [['at', 'kerning', 'baseline', 'kerning', 'x', 'a', 'at', 'x'], 29], ['at kerning baseline', 'kerning x a at x']), ('regression: interword space in counting', [['is', 'on', 'the', 'grid', 'a', 'is', 'measure'], 14], ['is on the grid', 'a is measure']), ('regression: interword space in counting', [['at', 'serif', 'kerning', 'on', 'the', 'serif', 'at', 'the', 'type'], 12], ['at serif', 'kerning on', 'the serif', 'at the type']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('control layout', [['measure', 'x', 'serif', 'a', 'a', 'x', 'is', 'of', 'x'], 6], ['overflow']), ('control layout', [['grid', 'is', 'kerning', 'grid'], 10], ['grid is', 'kerning', 'grid']), ('control layout', [['grid', 'a', 'at', 'serif', 'serif'], 5], ['grid', 'a at', 'serif', 'serif'])], [('regression: interword space in counting', [['x', 'a'], 25], ['x a']), ('regression: interword space in counting', [['of', 'kerning', 'is'], 18], ['of kerning is']), ('regression: interword space in counting', [['on', 'serif', 'measure', 'the', 'on', 'the'], 16], ['on serif measure', 'the on the']), ('regression: interword space in counting', [['of', 'x', 'at', 'grid', 'measure', 'at', 'the', 'at', 'the'], 10], ['of x at', 'grid', 'measure at', 'the at the']), ('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('control layout', [['measure', 'kerning', 'a'], 7], ['measure', 'kerning', 'a']), ('control layout', [['is', 'is', 'the', 'serif'], 5], ['is is', 'the', 'serif'])], [('regression: interword space in counting', [['ink', 'a', 'a'], 6], ['ink', 'a a']), ('regression: interword space in counting', [['kerning', 'baseline', 'a', 'serif'], 27], ['kerning baseline a serif']), ('regression: interword space in counting', [['baseline', 'is'], 11], ['baseline is']), ('regression: interword space in counting', [['of', 'a', 'kerning', 'of', 'kerning', 'of', 'type', 'the', 'x'], 21], ['of a kerning of', 'kerning of type the x']), ('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('control layout', [['a', 'serif', 'serif', 'baseline', 'grid', 'measure'], 11], ['a serif', 'serif', 'baseline', 'grid', 'measure']), ('control layout', [['x', 'baseline', 'a', 'measure', 'is'], 5], ['overflow'])], [('regression: interword space in counting', [['at', 'kerning', 'at', 'measure'], 29], ['at kerning at measure']), ('regression: interword space in counting', [['of', 'is', 'the', 'on', 'kerning'], 17], ['of is the', 'on kerning']), ('regression: interword space in counting', [['the', 'x', 'type', 'serif', 'grid', 'is', 'a'], 17], ['the x type', 'serif grid is a']), ('regression: interword space in counting', [['baseline', 'measure', 'measure'], 15], ['baseline', 'measure measure']), ('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('control layout', [['kerning', 'on', 'the'], 9], ['kerning', 'on the']), ('control layout', [['x', 'baseline', 'is', 'ink', 'type', 'measure', 'on', 'a', 'the'], 8], ['x', 'baseline', 'is ink', 'type', 'measure', 'on a the'])], [('regression: interword space in counting', [['grid', 'on', 'baseline', 'x', 'x', 'grid', 'x', 'a', 'is'], 30], ['grid on baseline', 'x x grid x a is']), ('regression: interword space in counting', [['is', 'grid', 'type', 'ink', 'x', 'grid', 'grid'], 16], ['is grid type', 'ink x grid grid']), ('regression: interword space in counting', [['the', 'at', 'of', 'on', 'on', 'serif'], 17], ['the at of', 'on on serif']), ('regression: interword space in counting', [['kerning', 'kerning', 'ink', 'ink', 'type', 'baseline'], 15], ['kerning kerning', 'ink ink type', 'baseline']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('control layout', [['grid', 'serif', 'type'], 6], ['grid', 'serif', 'type']), ('control layout', [['kerning', 'measure', 'type', 'on', 'measure', 'x', 'baseline'], 6], ['overflow'])]]\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":"6cca1966f0b11eb1d4b75abad88575dff4c868b54ef81daee672711b3a3ff107","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, width = x\n    def lines_for(w):\n        count, cur = 0, -1\n        for t in words:\n            if len(t) > w:\n                return None\n            if cur == -1:\n                cur = len(t)\n                count = 1\n            elif cur + len(t) <= w:\n                cur += 1 + len(t)\n            else:\n                count += 1\n                cur = len(t)\n        return count\n    target = lines_for(width)\n    if target is None:\n        return ['overflow']\n    lo = max(len(t) for t in words)\n    hi = width\n    while lo < hi:\n        mid = (lo + hi) // 2\n        c = lines_for(mid)\n        if c is not None and c <= target:\n            hi = mid\n        else:\n            lo = mid + 1\n    out, cur = [], ''\n    for t in words:\n        cand = t if not cur else cur + ' ' + t\n        if len(cand) <= lo:\n            cur = cand\n        else:\n            out.append(cur)\n            cur = t\n    out.append(cur)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('regression: interword space in counting', [['at', 'kerning', 'baseline', 'kerning', 'x', 'a', 'at', 'x'], 29], ['at kerning baseline', 'kerning x a at x']), ('regression: interword space in counting', [['is', 'on', 'the', 'grid', 'a', 'is', 'measure'], 14], ['is on the grid', 'a is measure']), ('regression: interword space in counting', [['at', 'serif', 'kerning', 'on', 'the', 'serif', 'at', 'the', 'type'], 12], ['at serif', 'kerning on', 'the serif', 'at the type']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('control layout', [['measure', 'x', 'serif', 'a', 'a', 'x', 'is', 'of', 'x'], 6], ['overflow']), ('control layout', [['grid', 'is', 'kerning', 'grid'], 10], ['grid is', 'kerning', 'grid']), ('control layout', [['grid', 'a', 'at', 'serif', 'serif'], 5], ['grid', 'a at', 'serif', 'serif'])], [('regression: interword space in counting', [['x', 'a'], 25], ['x a']), ('regression: interword space in counting', [['of', 'kerning', 'is'], 18], ['of kerning is']), ('regression: interword space in counting', [['on', 'serif', 'measure', 'the', 'on', 'the'], 16], ['on serif measure', 'the on the']), ('regression: interword space in counting', [['of', 'x', 'at', 'grid', 'measure', 'at', 'the', 'at', 'the'], 10], ['of x at', 'grid', 'measure at', 'the at the']), ('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('control layout', [['measure', 'kerning', 'a'], 7], ['measure', 'kerning', 'a']), ('control layout', [['is', 'is', 'the', 'serif'], 5], ['is is', 'the', 'serif'])], [('regression: interword space in counting', [['ink', 'a', 'a'], 6], ['ink', 'a a']), ('regression: interword space in counting', [['kerning', 'baseline', 'a', 'serif'], 27], ['kerning baseline a serif']), ('regression: interword space in counting', [['baseline', 'is'], 11], ['baseline is']), ('regression: interword space in counting', [['of', 'a', 'kerning', 'of', 'kerning', 'of', 'type', 'the', 'x'], 21], ['of a kerning of', 'kerning of type the x']), ('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('control layout', [['a', 'serif', 'serif', 'baseline', 'grid', 'measure'], 11], ['a serif', 'serif', 'baseline', 'grid', 'measure']), ('control layout', [['x', 'baseline', 'a', 'measure', 'is'], 5], ['overflow'])], [('regression: interword space in counting', [['at', 'kerning', 'at', 'measure'], 29], ['at kerning at measure']), ('regression: interword space in counting', [['of', 'is', 'the', 'on', 'kerning'], 17], ['of is the', 'on kerning']), ('regression: interword space in counting', [['the', 'x', 'type', 'serif', 'grid', 'is', 'a'], 17], ['the x type', 'serif grid is a']), ('regression: interword space in counting', [['baseline', 'measure', 'measure'], 15], ['baseline', 'measure measure']), ('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('control layout', [['kerning', 'on', 'the'], 9], ['kerning', 'on the']), ('control layout', [['x', 'baseline', 'is', 'ink', 'type', 'measure', 'on', 'a', 'the'], 8], ['x', 'baseline', 'is ink', 'type', 'measure', 'on a the'])], [('regression: interword space in counting', [['grid', 'on', 'baseline', 'x', 'x', 'grid', 'x', 'a', 'is'], 30], ['grid on baseline', 'x x grid x a is']), ('regression: interword space in counting', [['is', 'grid', 'type', 'ink', 'x', 'grid', 'grid'], 16], ['is grid type', 'ink x grid grid']), ('regression: interword space in counting', [['the', 'at', 'of', 'on', 'on', 'serif'], 17], ['the at of', 'on on serif']), ('regression: interword space in counting', [['kerning', 'kerning', 'ink', 'ink', 'type', 'baseline'], 15], ['kerning kerning', 'ink ink type', 'baseline']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('control layout', [['grid', 'serif', 'type'], 6], ['grid', 'serif', 'type']), ('control layout', [['kerning', 'measure', 'type', 'on', 'measure', 'x', 'baseline'], 6], ['overflow'])]]\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":"6d0b49dfd2fa076ad5812ab907dd18b5a9e749f218abe4ad01f72f239655a6b8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, width = x\n    def lines_for(w):\n        count, cur = 0, -1\n        for t in words:\n            if len(t) > w:\n                return None\n            if cur == -1:\n                cur = len(t)\n                count = 1\n            elif cur + 1 + len(t) <= w:\n                cur += 1 + len(t)\n            else:\n                count += 1\n                cur = len(t)\n        return count\n    target = lines_for(width)\n    if target is None:\n        return ['overflow']\n    lo = max(len(t) for t in words)\n    hi = width\n    while lo < hi:\n        mid = (lo + hi) // 2\n        c = lines_for(mid)\n        if c is not None and c <= target:\n            hi = mid\n        else:\n            lo = mid + 1\n    out, cur = [], ''\n    for t in words:\n        cand = t if not cur else cur + ' ' + t\n        if len(cand) <= lo:\n            cur = cand\n        else:\n            out.append(cur)\n            cur = t\n    out.append(cur)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('regression: interword space in counting', [['at', 'kerning', 'baseline', 'kerning', 'x', 'a', 'at', 'x'], 29], ['at kerning baseline', 'kerning x a at x']), ('regression: interword space in counting', [['is', 'on', 'the', 'grid', 'a', 'is', 'measure'], 14], ['is on the grid', 'a is measure']), ('regression: interword space in counting', [['at', 'serif', 'kerning', 'on', 'the', 'serif', 'at', 'the', 'type'], 12], ['at serif', 'kerning on', 'the serif', 'at the type']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('control layout', [['measure', 'x', 'serif', 'a', 'a', 'x', 'is', 'of', 'x'], 6], ['overflow']), ('control layout', [['grid', 'is', 'kerning', 'grid'], 10], ['grid is', 'kerning', 'grid']), ('control layout', [['grid', 'a', 'at', 'serif', 'serif'], 5], ['grid', 'a at', 'serif', 'serif'])], [('regression: interword space in counting', [['x', 'a'], 25], ['x a']), ('regression: interword space in counting', [['of', 'kerning', 'is'], 18], ['of kerning is']), ('regression: interword space in counting', [['on', 'serif', 'measure', 'the', 'on', 'the'], 16], ['on serif measure', 'the on the']), ('regression: interword space in counting', [['of', 'x', 'at', 'grid', 'measure', 'at', 'the', 'at', 'the'], 10], ['of x at', 'grid', 'measure at', 'the at the']), ('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('control layout', [['measure', 'kerning', 'a'], 7], ['measure', 'kerning', 'a']), ('control layout', [['is', 'is', 'the', 'serif'], 5], ['is is', 'the', 'serif'])], [('regression: interword space in counting', [['ink', 'a', 'a'], 6], ['ink', 'a a']), ('regression: interword space in counting', [['kerning', 'baseline', 'a', 'serif'], 27], ['kerning baseline a serif']), ('regression: interword space in counting', [['baseline', 'is'], 11], ['baseline is']), ('regression: interword space in counting', [['of', 'a', 'kerning', 'of', 'kerning', 'of', 'type', 'the', 'x'], 21], ['of a kerning of', 'kerning of type the x']), ('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('control layout', [['a', 'serif', 'serif', 'baseline', 'grid', 'measure'], 11], ['a serif', 'serif', 'baseline', 'grid', 'measure']), ('control layout', [['x', 'baseline', 'a', 'measure', 'is'], 5], ['overflow'])], [('regression: interword space in counting', [['at', 'kerning', 'at', 'measure'], 29], ['at kerning at measure']), ('regression: interword space in counting', [['of', 'is', 'the', 'on', 'kerning'], 17], ['of is the', 'on kerning']), ('regression: interword space in counting', [['the', 'x', 'type', 'serif', 'grid', 'is', 'a'], 17], ['the x type', 'serif grid is a']), ('regression: interword space in counting', [['baseline', 'measure', 'measure'], 15], ['baseline', 'measure measure']), ('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('control layout', [['kerning', 'on', 'the'], 9], ['kerning', 'on the']), ('control layout', [['x', 'baseline', 'is', 'ink', 'type', 'measure', 'on', 'a', 'the'], 8], ['x', 'baseline', 'is ink', 'type', 'measure', 'on a the'])], [('regression: interword space in counting', [['grid', 'on', 'baseline', 'x', 'x', 'grid', 'x', 'a', 'is'], 30], ['grid on baseline', 'x x grid x a is']), ('regression: interword space in counting', [['is', 'grid', 'type', 'ink', 'x', 'grid', 'grid'], 16], ['is grid type', 'ink x grid grid']), ('regression: interword space in counting', [['the', 'at', 'of', 'on', 'on', 'serif'], 17], ['the at of', 'on on serif']), ('regression: interword space in counting', [['kerning', 'kerning', 'ink', 'ink', 'type', 'baseline'], 15], ['kerning kerning', 'ink ink type', 'baseline']), ('word exactly the width', [['baseline', 'x'], 8], ['baseline', 'x']), ('two balanced lines', [['the', 'type', 'grid', 'is', 'on', 'serif'], 22], ['the type grid', 'is on serif']), ('control layout', [['grid', 'serif', 'type'], 6], ['grid', 'serif', 'type']), ('control layout', [['kerning', 'measure', 'type', 'on', 'measure', 'x', 'baseline'], 6], ['overflow'])]]\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 typesetting model with integer widths and a stipulated rule set; it does not claim conformance to any engine. 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-typography-line-breaking-balanced-headline-interword-space-in-counting","generated_at":"2026-09-29T14:49:52.509609+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Line breaking decides where paragraphs wrap on screen and in print; a wrong decision point shifts every following line.","repair":"Count one space between words when simulating the wrap.","root_cause":"The line counter ignores the space between words.","sha256":"13cb0f38b619c4ef2892456e170f02c4c9b533794cd2bc66f5f72c196f0f16a5","title":"Balanced headline wrapping: interword space in counting · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.192,"exit_code":1,"observations":[{"actual":["the type grid","is on serif"],"check":"two balanced lines","expected":["the type grid","is on serif"],"passed":true},{"actual":["at kerning baseline","kerning x a at x"],"check":"regression: interword space in counting","expected":["at kerning baseline","kerning x a at x"],"passed":true},{"actual":["is on the","grid a is","measure"],"check":"regression: interword space in counting","expected":["is on the grid","a is measure"],"passed":false},{"actual":["at serif","kerning on","the serif at","the type"],"check":"regression: interword space in counting","expected":["at serif","kerning on","the serif","at the type"],"passed":false},{"actual":["baseline","x"],"check":"word exactly the width","expected":["baseline","x"],"passed":true},{"actual":["overflow"],"check":"control layout","expected":["overflow"],"passed":true},{"actual":["grid is","kerning","grid"],"check":"control layout","expected":["grid is","kerning","grid"],"passed":true},{"actual":["grid","a at","serif","serif"],"check":"control layout","expected":["grid","a at","serif","serif"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two balanced lines\", \"actual\": [\"the type grid\", \"is on serif\"], \"expected\": [\"the type grid\", \"is on serif\"], \"passed\": true}, {\"check\": \"regression: interword space in counting\", \"actual\": [\"at kerning baseline\", \"kerning x a at x\"], \"expected\": [\"at kerning baseline\", \"kerning x a at x\"], \"passed\": true}, {\"check\": \"regression: interword space in counting\", \"actual\": [\"is on the\", \"grid a is\", \"measure\"], \"expected\": [\"is on the grid\", \"a is measure\"], \"passed\": false}, {\"check\": \"regression: interword space in counting\", \"actual\": [\"at serif\", \"kerning on\", \"the serif at\", \"the type\"], \"expected\": [\"at serif\", \"kerning on\", \"the serif\", \"at the type\"], \"passed\": false}, {\"check\": \"word exactly the width\", \"actual\": [\"baseline\", \"x\"], \"expected\": [\"baseline\", \"x\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"overflow\"], \"expected\": [\"overflow\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"grid is\", \"kerning\", \"grid\"], \"expected\": [\"grid is\", \"kerning\", \"grid\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"grid\", \"a at\", \"serif\", \"serif\"], \"expected\": [\"grid\", \"a at\", \"serif\", \"serif\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.715,"exit_code":1,"observations":[{"actual":["the type","grid is on","serif"],"check":"two balanced lines","expected":["the type grid","is on serif"],"passed":false},{"actual":["at kerning","baseline kerning x","a at x"],"check":"regression: interword space in counting","expected":["at kerning baseline","kerning x a at x"],"passed":false},{"actual":["is on the","grid a is","measure"],"check":"regression: interword space in counting","expected":["is on the grid","a is measure"],"passed":false},{"actual":["at serif","kerning on","the serif","at the","type"],"check":"regression: interword space in counting","expected":["at serif","kerning on","the serif","at the type"],"passed":false},{"actual":["baseline","x"],"check":"word exactly the width","expected":["baseline","x"],"passed":true},{"actual":["overflow"],"check":"control layout","expected":["overflow"],"passed":true},{"actual":["grid is","kerning","grid"],"check":"control layout","expected":["grid is","kerning","grid"],"passed":true},{"actual":["grid","a at","serif","serif"],"check":"control layout","expected":["grid","a at","serif","serif"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two balanced lines\", \"actual\": [\"the type\", \"grid is on\", \"serif\"], \"expected\": [\"the type grid\", \"is on serif\"], \"passed\": false}, {\"check\": \"regression: interword space in counting\", \"actual\": [\"at kerning\", \"baseline kerning x\", \"a at x\"], \"expected\": [\"at kerning baseline\", \"kerning x a at x\"], \"passed\": false}, {\"check\": \"regression: interword space in counting\", \"actual\": [\"is on the\", \"grid a is\", \"measure\"], \"expected\": [\"is on the grid\", \"a is measure\"], \"passed\": false}, {\"check\": \"regression: interword space in counting\", \"actual\": [\"at serif\", \"kerning on\", \"the serif\", \"at the\", \"type\"], \"expected\": [\"at serif\", \"kerning on\", \"the serif\", \"at the type\"], \"passed\": false}, {\"check\": \"word exactly the width\", \"actual\": [\"baseline\", \"x\"], \"expected\": [\"baseline\", \"x\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"overflow\"], \"expected\": [\"overflow\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"grid is\", \"kerning\", \"grid\"], \"expected\": [\"grid is\", \"kerning\", \"grid\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"grid\", \"a at\", \"serif\", \"serif\"], \"expected\": [\"grid\", \"a at\", \"serif\", \"serif\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.579,"exit_code":0,"observations":[{"actual":["the type grid","is on serif"],"check":"two balanced lines","expected":["the type grid","is on serif"],"passed":true},{"actual":["at kerning baseline","kerning x a at x"],"check":"regression: interword space in counting","expected":["at kerning baseline","kerning x a at x"],"passed":true},{"actual":["is on the grid","a is measure"],"check":"regression: interword space in counting","expected":["is on the grid","a is measure"],"passed":true},{"actual":["at serif","kerning on","the serif","at the type"],"check":"regression: interword space in counting","expected":["at serif","kerning on","the serif","at the type"],"passed":true},{"actual":["baseline","x"],"check":"word exactly the width","expected":["baseline","x"],"passed":true},{"actual":["overflow"],"check":"control layout","expected":["overflow"],"passed":true},{"actual":["grid is","kerning","grid"],"check":"control layout","expected":["grid is","kerning","grid"],"passed":true},{"actual":["grid","a at","serif","serif"],"check":"control layout","expected":["grid","a at","serif","serif"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two balanced lines\", \"actual\": [\"the type grid\", \"is on serif\"], \"expected\": [\"the type grid\", \"is on serif\"], \"passed\": true}, {\"check\": \"regression: interword space in counting\", \"actual\": [\"at kerning baseline\", \"kerning x a at x\"], \"expected\": [\"at kerning baseline\", \"kerning x a at x\"], \"passed\": true}, {\"check\": \"regression: interword space in counting\", \"actual\": [\"is on the grid\", \"a is measure\"], \"expected\": [\"is on the grid\", \"a is measure\"], \"passed\": true}, {\"check\": \"regression: interword space in counting\", \"actual\": [\"at serif\", \"kerning on\", \"the serif\", \"at the type\"], \"expected\": [\"at serif\", \"kerning on\", \"the serif\", \"at the type\"], \"passed\": true}, {\"check\": \"word exactly the width\", \"actual\": [\"baseline\", \"x\"], \"expected\": [\"baseline\", \"x\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"overflow\"], \"expected\": [\"overflow\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"grid is\", \"kerning\", \"grid\"], \"expected\": [\"grid is\", \"kerning\", \"grid\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"grid\", \"a at\", \"serif\", \"serif\"], \"expected\": [\"grid\", \"a at\", \"serif\", \"serif\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}