{"abstract":"Text overprints or abuts long labels.","category":"Typography line breaking","checks":8,"contract":"Input [label, words, width, hang]. The label starts at column 0; first-line text starts at column hang when label+1 space fits, else right after label plus one space. Continuation lines are indented by hang. Greedy fill with unit spaces measuring absolute columns. Return padded lines.","evaluation_group":"w2-typography-line-breaking-hanging-label","failed_approach":"Starting right after the label without the space runs text into it.","family":"w2-typography-line-breaking-hanging-label-overflowing-label-start","id":"FA-80246","implementations":{"attempt":{"sha256":"3ac52c8ab88a1bf9601c37aa9306492b8a2f261a38352cc4d6bb732df16acb46","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    label, words, width, hang = x\n    lines = []\n    first = True\n    start = hang if len(label) + 1 <= hang else len(label)\n    cur = []\n    col = start\n    for w in words:\n        need = col + len(w) if not cur else col + 1 + len(w)\n        if cur and need > width:\n            prefix = label.ljust(start) if first else ' ' * hang\n            lines.append(prefix + ' '.join(cur))\n            first = False\n            cur = [w]\n            col = hang + len(w)\n        else:\n            cur.append(w)\n            col = need\n    if cur:\n        prefix = label.ljust(start) if first else ' ' * hang\n        lines.append(prefix + ' '.join(cur))\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('regression: overflowing label start', ['(a)', ['grid', 'measure', 'is', 'the', 'at', 'on', 'a'], 21, 3], ['(a) grid measure is', '   the at on a']), ('regression: overflowing label start', ['Note:', ['on', 'measure', 'type', 'is', 'serif', 'a'], 14, 5], ['Note: on', '     measure', '     type is', '     serif a']), ('regression: overflowing label start', ['Note:', ['measure', 'serif', 'kerning', 'is', 'baseline', 'type', 'at', 'of'], 16, 4], ['Note: measure', '    serif', '    kerning is', '    baseline', '    type at of']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('control layout', ['1.', ['is', 'baseline', 'of', 'baseline', 'is', 'measure'], 22, 3], ['1. is baseline of', '   baseline is measure']), ('control layout', ['iv.', ['of', 'ink', 'a', 'type', 'is', 'baseline', 'is', 'kerning'], 12, 4], ['iv. of ink a', '    type is', '    baseline', '    is', '    kerning']), ('control layout', ['(a)', ['baseline', 'grid', 'serif', 'x', 'kerning'], 16, 4], ['(a) baseline', '    grid serif x', '    kerning'])], [('regression: overflowing label start', ['iv.', ['at', 'a', 'measure'], 21, 2], ['iv. at a measure']), ('regression: overflowing label start', ['Note:', ['on', 'grid', 'x', 'a', 'the'], 20, 4], ['Note: on grid x a', '    the']), ('regression: overflowing label start', ['(a)', ['a', 'grid', 'type'], 20, 2], ['(a) a grid type']), ('regression: overflowing label start', ['10.', ['on', 'the'], 18, 2], ['10. on the']), ('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('control layout', ['•', ['type', 'kerning', 'kerning', 'type', 'of', 'measure'], 14, 5], ['•    type', '     kerning', '     kerning', '     type of', '     measure']), ('control layout', ['iv.', ['is', 'of', 'of', 'kerning', 'is', 'of', 'type'], 20, 4], ['iv. is of of kerning', '    is of type'])], [('regression: overflowing label start', ['Note:', ['type', 'of'], 12, 2], ['Note: type', '  of']), ('regression: overflowing label start', ['(a)', ['kerning', 'kerning', 'baseline'], 22, 2], ['(a) kerning kerning', '  baseline']), ('regression: overflowing label start', ['(a)', ['type', 'is', 'at', 'the', 'measure'], 16, 2], ['(a) type is at', '  the measure']), ('regression: overflowing label start', ['Note:', ['measure', 'baseline', 'is', 'baseline', 'ink', 'the', 'baseline'], 19, 5], ['Note: measure', '     baseline is', '     baseline ink', '     the baseline']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('control layout', ['(a)', ['on', 'measure', 'at', 'the', 'measure'], 12, 4], ['(a) on', '    measure', '    at the', '    measure']), ('control layout', ['(a)', ['baseline', 'type', 'is'], 22, 5], ['(a)  baseline type is'])], [('regression: overflowing label start', ['Note:', ['measure', 'serif', 'kerning', 'is', 'baseline', 'type', 'at', 'of'], 16, 4], ['Note: measure', '    serif', '    kerning is', '    baseline', '    type at of']), ('regression: overflowing label start', ['iv.', ['serif', 'a', 'ink'], 17, 3], ['iv. serif a ink']), ('regression: overflowing label start', ['Note:', ['a', 'a', 'type', 'kerning', 'measure'], 15, 2], ['Note: a a type', '  kerning', '  measure']), ('regression: overflowing label start', ['iv.', ['serif', 'is', 'at', 'measure', 'baseline', 'a', 'type'], 12, 2], ['iv. serif is', '  at measure', '  baseline a', '  type']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('control layout', ['1.', ['at', 'type', 'at', 'measure', 'is', 'is', 'is', 'is', 'on'], 12, 3], ['1. at type', '   at', '   measure', '   is is is', '   is on']), ('control layout', ['(a)', ['kerning', 'ink', 'of', 'is', 'kerning'], 15, 5], ['(a)  kerning', '     ink of is', '     kerning'])], [('regression: overflowing label start', ['10.', ['kerning', 'grid', 'on', 'at', 'ink', 'on', 'at', 'baseline', 'is'], 14, 2], ['10. kerning', '  grid on at', '  ink on at', '  baseline is']), ('regression: overflowing label start', ['A.1.2', ['x', 'a', 'grid', 'baseline', 'a', 'on', 'x'], 12, 5], ['A.1.2 x a', '     grid', '     baseline', '     a on x']), ('regression: overflowing label start', ['(a)', ['ink', 'kerning', 'kerning', 'grid'], 16, 2], ['(a) ink kerning', '  kerning grid']), ('regression: overflowing label start', ['Note:', ['type', 'type', 'of', 'on', 'on', 'kerning'], 20, 5], ['Note: type type of', '     on on kerning']), ('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('control layout', ['iv.', ['is', 'of', 'of', 'kerning', 'is', 'of', 'type'], 20, 4], ['iv. is of of kerning', '    is of type']), ('control layout', ['•', ['baseline', 'serif', 'x', 'type'], 17, 4], ['•   baseline', '    serif x type'])]]\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":"57bf49eb561099bf14e84c11fe6d67b1d725cc6e612c2584eaa0f70187574ce5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    label, words, width, hang = x\n    lines = []\n    first = True\n    start = hang if len(label) + 1 <= hang else hang\n    cur = []\n    col = start\n    for w in words:\n        need = col + len(w) if not cur else col + 1 + len(w)\n        if cur and need > width:\n            prefix = label.ljust(start) if first else ' ' * hang\n            lines.append(prefix + ' '.join(cur))\n            first = False\n            cur = [w]\n            col = hang + len(w)\n        else:\n            cur.append(w)\n            col = need\n    if cur:\n        prefix = label.ljust(start) if first else ' ' * hang\n        lines.append(prefix + ' '.join(cur))\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('regression: overflowing label start', ['(a)', ['grid', 'measure', 'is', 'the', 'at', 'on', 'a'], 21, 3], ['(a) grid measure is', '   the at on a']), ('regression: overflowing label start', ['Note:', ['on', 'measure', 'type', 'is', 'serif', 'a'], 14, 5], ['Note: on', '     measure', '     type is', '     serif a']), ('regression: overflowing label start', ['Note:', ['measure', 'serif', 'kerning', 'is', 'baseline', 'type', 'at', 'of'], 16, 4], ['Note: measure', '    serif', '    kerning is', '    baseline', '    type at of']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('control layout', ['1.', ['is', 'baseline', 'of', 'baseline', 'is', 'measure'], 22, 3], ['1. is baseline of', '   baseline is measure']), ('control layout', ['iv.', ['of', 'ink', 'a', 'type', 'is', 'baseline', 'is', 'kerning'], 12, 4], ['iv. of ink a', '    type is', '    baseline', '    is', '    kerning']), ('control layout', ['(a)', ['baseline', 'grid', 'serif', 'x', 'kerning'], 16, 4], ['(a) baseline', '    grid serif x', '    kerning'])], [('regression: overflowing label start', ['iv.', ['at', 'a', 'measure'], 21, 2], ['iv. at a measure']), ('regression: overflowing label start', ['Note:', ['on', 'grid', 'x', 'a', 'the'], 20, 4], ['Note: on grid x a', '    the']), ('regression: overflowing label start', ['(a)', ['a', 'grid', 'type'], 20, 2], ['(a) a grid type']), ('regression: overflowing label start', ['10.', ['on', 'the'], 18, 2], ['10. on the']), ('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('control layout', ['•', ['type', 'kerning', 'kerning', 'type', 'of', 'measure'], 14, 5], ['•    type', '     kerning', '     kerning', '     type of', '     measure']), ('control layout', ['iv.', ['is', 'of', 'of', 'kerning', 'is', 'of', 'type'], 20, 4], ['iv. is of of kerning', '    is of type'])], [('regression: overflowing label start', ['Note:', ['type', 'of'], 12, 2], ['Note: type', '  of']), ('regression: overflowing label start', ['(a)', ['kerning', 'kerning', 'baseline'], 22, 2], ['(a) kerning kerning', '  baseline']), ('regression: overflowing label start', ['(a)', ['type', 'is', 'at', 'the', 'measure'], 16, 2], ['(a) type is at', '  the measure']), ('regression: overflowing label start', ['Note:', ['measure', 'baseline', 'is', 'baseline', 'ink', 'the', 'baseline'], 19, 5], ['Note: measure', '     baseline is', '     baseline ink', '     the baseline']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('control layout', ['(a)', ['on', 'measure', 'at', 'the', 'measure'], 12, 4], ['(a) on', '    measure', '    at the', '    measure']), ('control layout', ['(a)', ['baseline', 'type', 'is'], 22, 5], ['(a)  baseline type is'])], [('regression: overflowing label start', ['Note:', ['measure', 'serif', 'kerning', 'is', 'baseline', 'type', 'at', 'of'], 16, 4], ['Note: measure', '    serif', '    kerning is', '    baseline', '    type at of']), ('regression: overflowing label start', ['iv.', ['serif', 'a', 'ink'], 17, 3], ['iv. serif a ink']), ('regression: overflowing label start', ['Note:', ['a', 'a', 'type', 'kerning', 'measure'], 15, 2], ['Note: a a type', '  kerning', '  measure']), ('regression: overflowing label start', ['iv.', ['serif', 'is', 'at', 'measure', 'baseline', 'a', 'type'], 12, 2], ['iv. serif is', '  at measure', '  baseline a', '  type']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('control layout', ['1.', ['at', 'type', 'at', 'measure', 'is', 'is', 'is', 'is', 'on'], 12, 3], ['1. at type', '   at', '   measure', '   is is is', '   is on']), ('control layout', ['(a)', ['kerning', 'ink', 'of', 'is', 'kerning'], 15, 5], ['(a)  kerning', '     ink of is', '     kerning'])], [('regression: overflowing label start', ['10.', ['kerning', 'grid', 'on', 'at', 'ink', 'on', 'at', 'baseline', 'is'], 14, 2], ['10. kerning', '  grid on at', '  ink on at', '  baseline is']), ('regression: overflowing label start', ['A.1.2', ['x', 'a', 'grid', 'baseline', 'a', 'on', 'x'], 12, 5], ['A.1.2 x a', '     grid', '     baseline', '     a on x']), ('regression: overflowing label start', ['(a)', ['ink', 'kerning', 'kerning', 'grid'], 16, 2], ['(a) ink kerning', '  kerning grid']), ('regression: overflowing label start', ['Note:', ['type', 'type', 'of', 'on', 'on', 'kerning'], 20, 5], ['Note: type type of', '     on on kerning']), ('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('control layout', ['iv.', ['is', 'of', 'of', 'kerning', 'is', 'of', 'type'], 20, 4], ['iv. is of of kerning', '    is of type']), ('control layout', ['•', ['baseline', 'serif', 'x', 'type'], 17, 4], ['•   baseline', '    serif x type'])]]\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":"f5e781b81d0125f7acac71bf911737e37e574de1f604a8e0aea7c8974415ab8e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    label, words, width, hang = x\n    lines = []\n    first = True\n    start = hang if len(label) + 1 <= hang else len(label) + 1\n    cur = []\n    col = start\n    for w in words:\n        need = col + len(w) if not cur else col + 1 + len(w)\n        if cur and need > width:\n            prefix = label.ljust(start) if first else ' ' * hang\n            lines.append(prefix + ' '.join(cur))\n            first = False\n            cur = [w]\n            col = hang + len(w)\n        else:\n            cur.append(w)\n            col = need\n    if cur:\n        prefix = label.ljust(start) if first else ' ' * hang\n        lines.append(prefix + ' '.join(cur))\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('regression: overflowing label start', ['(a)', ['grid', 'measure', 'is', 'the', 'at', 'on', 'a'], 21, 3], ['(a) grid measure is', '   the at on a']), ('regression: overflowing label start', ['Note:', ['on', 'measure', 'type', 'is', 'serif', 'a'], 14, 5], ['Note: on', '     measure', '     type is', '     serif a']), ('regression: overflowing label start', ['Note:', ['measure', 'serif', 'kerning', 'is', 'baseline', 'type', 'at', 'of'], 16, 4], ['Note: measure', '    serif', '    kerning is', '    baseline', '    type at of']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('control layout', ['1.', ['is', 'baseline', 'of', 'baseline', 'is', 'measure'], 22, 3], ['1. is baseline of', '   baseline is measure']), ('control layout', ['iv.', ['of', 'ink', 'a', 'type', 'is', 'baseline', 'is', 'kerning'], 12, 4], ['iv. of ink a', '    type is', '    baseline', '    is', '    kerning']), ('control layout', ['(a)', ['baseline', 'grid', 'serif', 'x', 'kerning'], 16, 4], ['(a) baseline', '    grid serif x', '    kerning'])], [('regression: overflowing label start', ['iv.', ['at', 'a', 'measure'], 21, 2], ['iv. at a measure']), ('regression: overflowing label start', ['Note:', ['on', 'grid', 'x', 'a', 'the'], 20, 4], ['Note: on grid x a', '    the']), ('regression: overflowing label start', ['(a)', ['a', 'grid', 'type'], 20, 2], ['(a) a grid type']), ('regression: overflowing label start', ['10.', ['on', 'the'], 18, 2], ['10. on the']), ('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('control layout', ['•', ['type', 'kerning', 'kerning', 'type', 'of', 'measure'], 14, 5], ['•    type', '     kerning', '     kerning', '     type of', '     measure']), ('control layout', ['iv.', ['is', 'of', 'of', 'kerning', 'is', 'of', 'type'], 20, 4], ['iv. is of of kerning', '    is of type'])], [('regression: overflowing label start', ['Note:', ['type', 'of'], 12, 2], ['Note: type', '  of']), ('regression: overflowing label start', ['(a)', ['kerning', 'kerning', 'baseline'], 22, 2], ['(a) kerning kerning', '  baseline']), ('regression: overflowing label start', ['(a)', ['type', 'is', 'at', 'the', 'measure'], 16, 2], ['(a) type is at', '  the measure']), ('regression: overflowing label start', ['Note:', ['measure', 'baseline', 'is', 'baseline', 'ink', 'the', 'baseline'], 19, 5], ['Note: measure', '     baseline is', '     baseline ink', '     the baseline']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('control layout', ['(a)', ['on', 'measure', 'at', 'the', 'measure'], 12, 4], ['(a) on', '    measure', '    at the', '    measure']), ('control layout', ['(a)', ['baseline', 'type', 'is'], 22, 5], ['(a)  baseline type is'])], [('regression: overflowing label start', ['Note:', ['measure', 'serif', 'kerning', 'is', 'baseline', 'type', 'at', 'of'], 16, 4], ['Note: measure', '    serif', '    kerning is', '    baseline', '    type at of']), ('regression: overflowing label start', ['iv.', ['serif', 'a', 'ink'], 17, 3], ['iv. serif a ink']), ('regression: overflowing label start', ['Note:', ['a', 'a', 'type', 'kerning', 'measure'], 15, 2], ['Note: a a type', '  kerning', '  measure']), ('regression: overflowing label start', ['iv.', ['serif', 'is', 'at', 'measure', 'baseline', 'a', 'type'], 12, 2], ['iv. serif is', '  at measure', '  baseline a', '  type']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('control layout', ['1.', ['at', 'type', 'at', 'measure', 'is', 'is', 'is', 'is', 'on'], 12, 3], ['1. at type', '   at', '   measure', '   is is is', '   is on']), ('control layout', ['(a)', ['kerning', 'ink', 'of', 'is', 'kerning'], 15, 5], ['(a)  kerning', '     ink of is', '     kerning'])], [('regression: overflowing label start', ['10.', ['kerning', 'grid', 'on', 'at', 'ink', 'on', 'at', 'baseline', 'is'], 14, 2], ['10. kerning', '  grid on at', '  ink on at', '  baseline is']), ('regression: overflowing label start', ['A.1.2', ['x', 'a', 'grid', 'baseline', 'a', 'on', 'x'], 12, 5], ['A.1.2 x a', '     grid', '     baseline', '     a on x']), ('regression: overflowing label start', ['(a)', ['ink', 'kerning', 'kerning', 'grid'], 16, 2], ['(a) ink kerning', '  kerning grid']), ('regression: overflowing label start', ['Note:', ['type', 'type', 'of', 'on', 'on', 'kerning'], 20, 5], ['Note: type type of', '     on on kerning']), ('label overflows hang', ['Note:', ['the', 'type', 'grid', 'is', 'on', 'serif'], 14, 3], ['Note: the type', '   grid is on', '   serif']), ('label exactly one short of hang', ['1.', ['the', 'type', 'grid', 'is', 'on'], 12, 3], ['1. the type', '   grid is', '   on']), ('control layout', ['iv.', ['is', 'of', 'of', 'kerning', 'is', 'of', 'type'], 20, 4], ['iv. is of of kerning', '    is of type']), ('control layout', ['•', ['baseline', 'serif', 'x', 'type'], 17, 4], ['•   baseline', '    serif x type'])]]\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-hanging-label-overflowing-label-start","generated_at":"2026-09-29T14:49:52.196679+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":"Start first-line text after the label and one space when it overflows.","root_cause":"An overflowing label still starts the text at the hang column.","sha256":"7bc0c49f5d0154daf4628eb7979f500de0e012686b9dfb981367ddda8c5df719","title":"Hanging-indent list labels: overflowing label start · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.057,"exit_code":1,"observations":[{"actual":["Note:the type","   grid is on","   serif"],"check":"label overflows hang","expected":["Note: the type","   grid is on","   serif"],"passed":false},{"actual":["(a)grid measure is","   the at on a"],"check":"regression: overflowing label start","expected":["(a) grid measure is","   the at on a"],"passed":false},{"actual":["Note:on","     measure","     type is","     serif a"],"check":"regression: overflowing label start","expected":["Note: on","     measure","     type is","     serif a"],"passed":false},{"actual":["Note:measure","    serif","    kerning is","    baseline","    type at of"],"check":"regression: overflowing label start","expected":["Note: measure","    serif","    kerning is","    baseline","    type at of"],"passed":false},{"actual":["1. the type","   grid is","   on"],"check":"label exactly one short of hang","expected":["1. the type","   grid is","   on"],"passed":true},{"actual":["1. is baseline of","   baseline is measure"],"check":"control layout","expected":["1. is baseline of","   baseline is measure"],"passed":true},{"actual":["iv. of ink a","    type is","    baseline","    is","    kerning"],"check":"control layout","expected":["iv. of ink a","    type is","    baseline","    is","    kerning"],"passed":true},{"actual":["(a) baseline","    grid serif x","    kerning"],"check":"control layout","expected":["(a) baseline","    grid serif x","    kerning"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"label overflows hang\", \"actual\": [\"Note:the type\", \"   grid is on\", \"   serif\"], \"expected\": [\"Note: the type\", \"   grid is on\", \"   serif\"], \"passed\": false}, {\"check\": \"regression: overflowing label start\", \"actual\": [\"(a)grid measure is\", \"   the at on a\"], \"expected\": [\"(a) grid measure is\", \"   the at on a\"], \"passed\": false}, {\"check\": \"regression: overflowing label start\", \"actual\": [\"Note:on\", \"     measure\", \"     type is\", \"     serif a\"], \"expected\": [\"Note: on\", \"     measure\", \"     type is\", \"     serif a\"], \"passed\": false}, {\"check\": \"regression: overflowing label start\", \"actual\": [\"Note:measure\", \"    serif\", \"    kerning is\", \"    baseline\", \"    type at of\"], \"expected\": [\"Note: measure\", \"    serif\", \"    kerning is\", \"    baseline\", \"    type at of\"], \"passed\": false}, {\"check\": \"label exactly one short of hang\", \"actual\": [\"1. the type\", \"   grid is\", \"   on\"], \"expected\": [\"1. the type\", \"   grid is\", \"   on\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"1. is baseline of\", \"   baseline is measure\"], \"expected\": [\"1. is baseline of\", \"   baseline is measure\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"iv. of ink a\", \"    type is\", \"    baseline\", \"    is\", \"    kerning\"], \"expected\": [\"iv. of ink a\", \"    type is\", \"    baseline\", \"    is\", \"    kerning\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"(a) baseline\", \"    grid serif x\", \"    kerning\"], \"expected\": [\"(a) baseline\", \"    grid serif x\", \"    kerning\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.906,"exit_code":1,"observations":[{"actual":["Note:the type","   grid is on","   serif"],"check":"label overflows hang","expected":["Note: the type","   grid is on","   serif"],"passed":false},{"actual":["(a)grid measure is","   the at on a"],"check":"regression: overflowing label start","expected":["(a) grid measure is","   the at on a"],"passed":false},{"actual":["Note:on","     measure","     type is","     serif a"],"check":"regression: overflowing label start","expected":["Note: on","     measure","     type is","     serif a"],"passed":false},{"actual":["Note:measure","    serif","    kerning is","    baseline","    type at of"],"check":"regression: overflowing label start","expected":["Note: measure","    serif","    kerning is","    baseline","    type at of"],"passed":false},{"actual":["1. the type","   grid is","   on"],"check":"label exactly one short of hang","expected":["1. the type","   grid is","   on"],"passed":true},{"actual":["1. is baseline of","   baseline is measure"],"check":"control layout","expected":["1. is baseline of","   baseline is measure"],"passed":true},{"actual":["iv. of ink a","    type is","    baseline","    is","    kerning"],"check":"control layout","expected":["iv. of ink a","    type is","    baseline","    is","    kerning"],"passed":true},{"actual":["(a) baseline","    grid serif x","    kerning"],"check":"control layout","expected":["(a) baseline","    grid serif x","    kerning"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"label overflows hang\", \"actual\": [\"Note:the type\", \"   grid is on\", \"   serif\"], \"expected\": [\"Note: the type\", \"   grid is on\", \"   serif\"], \"passed\": false}, {\"check\": \"regression: overflowing label start\", \"actual\": [\"(a)grid measure is\", \"   the at on a\"], \"expected\": [\"(a) grid measure is\", \"   the at on a\"], \"passed\": false}, {\"check\": \"regression: overflowing label start\", \"actual\": [\"Note:on\", \"     measure\", \"     type is\", \"     serif a\"], \"expected\": [\"Note: on\", \"     measure\", \"     type is\", \"     serif a\"], \"passed\": false}, {\"check\": \"regression: overflowing label start\", \"actual\": [\"Note:measure\", \"    serif\", \"    kerning is\", \"    baseline\", \"    type at of\"], \"expected\": [\"Note: measure\", \"    serif\", \"    kerning is\", \"    baseline\", \"    type at of\"], \"passed\": false}, {\"check\": \"label exactly one short of hang\", \"actual\": [\"1. the type\", \"   grid is\", \"   on\"], \"expected\": [\"1. the type\", \"   grid is\", \"   on\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"1. is baseline of\", \"   baseline is measure\"], \"expected\": [\"1. is baseline of\", \"   baseline is measure\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"iv. of ink a\", \"    type is\", \"    baseline\", \"    is\", \"    kerning\"], \"expected\": [\"iv. of ink a\", \"    type is\", \"    baseline\", \"    is\", \"    kerning\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"(a) baseline\", \"    grid serif x\", \"    kerning\"], \"expected\": [\"(a) baseline\", \"    grid serif x\", \"    kerning\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.653,"exit_code":0,"observations":[{"actual":["Note: the type","   grid is on","   serif"],"check":"label overflows hang","expected":["Note: the type","   grid is on","   serif"],"passed":true},{"actual":["(a) grid measure is","   the at on a"],"check":"regression: overflowing label start","expected":["(a) grid measure is","   the at on a"],"passed":true},{"actual":["Note: on","     measure","     type is","     serif a"],"check":"regression: overflowing label start","expected":["Note: on","     measure","     type is","     serif a"],"passed":true},{"actual":["Note: measure","    serif","    kerning is","    baseline","    type at of"],"check":"regression: overflowing label start","expected":["Note: measure","    serif","    kerning is","    baseline","    type at of"],"passed":true},{"actual":["1. the type","   grid is","   on"],"check":"label exactly one short of hang","expected":["1. the type","   grid is","   on"],"passed":true},{"actual":["1. is baseline of","   baseline is measure"],"check":"control layout","expected":["1. is baseline of","   baseline is measure"],"passed":true},{"actual":["iv. of ink a","    type is","    baseline","    is","    kerning"],"check":"control layout","expected":["iv. of ink a","    type is","    baseline","    is","    kerning"],"passed":true},{"actual":["(a) baseline","    grid serif x","    kerning"],"check":"control layout","expected":["(a) baseline","    grid serif x","    kerning"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"label overflows hang\", \"actual\": [\"Note: the type\", \"   grid is on\", \"   serif\"], \"expected\": [\"Note: the type\", \"   grid is on\", \"   serif\"], \"passed\": true}, {\"check\": \"regression: overflowing label start\", \"actual\": [\"(a) grid measure is\", \"   the at on a\"], \"expected\": [\"(a) grid measure is\", \"   the at on a\"], \"passed\": true}, {\"check\": \"regression: overflowing label start\", \"actual\": [\"Note: on\", \"     measure\", \"     type is\", \"     serif a\"], \"expected\": [\"Note: on\", \"     measure\", \"     type is\", \"     serif a\"], \"passed\": true}, {\"check\": \"regression: overflowing label start\", \"actual\": [\"Note: measure\", \"    serif\", \"    kerning is\", \"    baseline\", \"    type at of\"], \"expected\": [\"Note: measure\", \"    serif\", \"    kerning is\", \"    baseline\", \"    type at of\"], \"passed\": true}, {\"check\": \"label exactly one short of hang\", \"actual\": [\"1. the type\", \"   grid is\", \"   on\"], \"expected\": [\"1. the type\", \"   grid is\", \"   on\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"1. is baseline of\", \"   baseline is measure\"], \"expected\": [\"1. is baseline of\", \"   baseline is measure\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"iv. of ink a\", \"    type is\", \"    baseline\", \"    is\", \"    kerning\"], \"expected\": [\"iv. of ink a\", \"    type is\", \"    baseline\", \"    is\", \"    kerning\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"(a) baseline\", \"    grid serif x\", \"    kerning\"], \"expected\": [\"(a) baseline\", \"    grid serif x\", \"    kerning\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}