{"abstract":"Empty lines are emitted before words wider than the shaped measure.","category":"Typography line breaking","checks":8,"contract":"Input [word widths, width, cap lines, cap width, gap, indent]. With a drop cap its first letter moves into the cap (first word loses one unit) and the first cap-lines lines are narrowed by cap width + gap; the first-line indent applies only without a cap. Greedy fill with unit spaces; a word too wide for an empty line is set alone. Return [[words on line, used width]].","evaluation_group":"w2-typography-line-breaking-drop-cap","failed_approach":"Allowing overflow only on the first line still emits empty later lines.","family":"w2-typography-line-breaking-drop-cap-overwide-word-placement","id":"FA-80121","implementations":{"attempt":{"sha256":"e3636cea0dc83414f3d5eb7ff88c478230461e3da33381732bc81ae73ed6440f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, width, cap_lines, cap_width, gap, indent = x\n    lens = list(words)\n    if cap_lines > 0:\n        lens[0] = lens[0] - 1\n    def avail(li):\n        base = width\n        if li < cap_lines:\n            base -= cap_width + gap\n        elif cap_lines == 0 and li == 0:\n            base -= indent\n        return base\n    lines = []\n    cur = []\n    used = 0\n    for w in lens:\n        li = len(lines)\n        need = w if not cur else used + 1 + w\n        if need <= avail(li) or len(lines) == 0:\n            cur.append(w)\n            used = need\n        else:\n            lines.append([len(cur), used])\n            cur = [w]\n            used = w\n    if cur:\n        lines.append([len(cur), used])\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: overwide word placement', [[8, 7, 3, 8, 8, 6, 3, 4], 12, 3, 5, 1, 2], [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]]), ('regression: overwide word placement', [[8, 1, 1, 8, 3], 12, 3, 4, 2, 2], [[1, 7], [2, 3], [1, 8], [1, 3]]), ('partial-repair probe', [[6, 6, 2, 2, 1], 12, 3, 5, 1, 3], [[1, 5], [1, 6], [2, 5], [1, 1]]), ('partial-repair probe', [[2, 2, 3, 7, 1, 1, 4, 6, 2, 2], 22, 0, 3, 1, 1], [[6, 21], [4, 17]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('control layout', [[5, 5, 3, 1], 24, 0, 5, 1, 4], [[4, 17]]), ('control layout', [[1, 6, 1, 5], 22, 0, 3, 2, 1], [[4, 16]])], [('regression: overwide word placement', [[8, 7, 4, 7, 5, 3, 4], 12, 2, 4, 2, 4], [[1, 7], [1, 7], [2, 12], [2, 9], [1, 4]]), ('regression: overwide word placement', [[8, 1, 1, 8, 3], 12, 3, 4, 2, 2], [[1, 7], [2, 3], [1, 8], [1, 3]]), ('partial-repair probe', [[6, 6, 4, 3, 1, 1, 6, 2, 3], 21, 3, 3, 1, 2], [[3, 17], [5, 17], [1, 3]]), ('partial-repair probe', [[2, 3, 3, 8, 8, 2, 7, 8, 7, 6, 1], 15, 0, 2, 1, 1], [[3, 10], [1, 8], [2, 11], [1, 7], [1, 8], [2, 14], [1, 1]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('control layout', [[7, 3, 6, 1], 23, 0, 4, 1, 1], [[4, 20]]), ('control layout', [[3, 2, 3, 6, 1], 22, 0, 4, 1, 3], [[5, 19]])], [('regression: overwide word placement', [[8, 7, 4, 7, 5, 3, 4], 12, 2, 4, 2, 4], [[1, 7], [1, 7], [2, 12], [2, 9], [1, 4]]), ('regression: overwide word placement', [[8, 7, 3, 8, 8, 6, 3, 4], 12, 3, 5, 1, 2], [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]]), ('partial-repair probe', [[2, 2, 2, 3, 8, 4, 3, 5, 4, 4], 15, 0, 2, 1, 2], [[4, 12], [2, 13], [3, 14], [1, 4]]), ('partial-repair probe', [[2, 2, 3, 7, 3, 4], 13, 2, 4, 1, 4], [[3, 8], [1, 7], [2, 8]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('control layout', [[6, 5, 1, 3], 24, 2, 5, 1, 4], [[4, 17]]), ('control layout', [[4, 1, 2, 2, 2, 1], 21, 0, 5, 2, 3], [[6, 17]])], [('regression: overwide word placement', [[8, 7, 3, 8, 8, 6, 3, 4], 12, 3, 5, 1, 2], [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]]), ('regression: overwide word placement', [[8, 1, 1, 8, 3], 12, 3, 4, 2, 2], [[1, 7], [2, 3], [1, 8], [1, 3]]), ('partial-repair probe', [[7, 5, 7, 4, 5, 4, 7], 14, 2, 4, 2, 2], [[1, 6], [1, 5], [2, 12], [2, 10], [1, 7]]), ('partial-repair probe', [[3, 6, 7, 8, 3, 7], 14, 3, 2, 2, 1], [[2, 9], [1, 7], [1, 8], [2, 11]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('control layout', [[3, 1, 1, 3, 4], 18, 0, 3, 1, 2], [[5, 16]]), ('control layout', [[5, 5, 3, 1], 24, 0, 5, 1, 4], [[4, 17]])], [('regression: overwide word placement', [[8, 1, 1, 8, 3], 12, 3, 4, 2, 2], [[1, 7], [2, 3], [1, 8], [1, 3]]), ('regression: overwide word placement', [[8, 7, 3, 8, 8, 6, 3, 4], 12, 3, 5, 1, 2], [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]]), ('partial-repair probe', [[6, 2, 7, 1, 8, 8], 17, 0, 5, 2, 1], [[2, 9], [2, 9], [2, 17]]), ('partial-repair probe', [[8, 3, 1, 2, 7, 3, 4, 3, 4, 5], 15, 0, 2, 1, 1], [[3, 14], [3, 14], [3, 13], [1, 5]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('control layout', [[1, 4, 6, 3], 21, 0, 5, 1, 2], [[4, 17]]), ('control layout', [[8, 4, 1, 2, 1], 23, 0, 3, 1, 1], [[5, 20]])]]\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":"3517d879f2e02f741673166fe8073dbe4cc3aa95dfcc39aa19d7d6146e99717c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, width, cap_lines, cap_width, gap, indent = x\n    lens = list(words)\n    if cap_lines > 0:\n        lens[0] = lens[0] - 1\n    def avail(li):\n        base = width\n        if li < cap_lines:\n            base -= cap_width + gap\n        elif cap_lines == 0 and li == 0:\n            base -= indent\n        return base\n    lines = []\n    cur = []\n    used = 0\n    for w in lens:\n        li = len(lines)\n        need = w if not cur else used + 1 + w\n        if need <= avail(li):\n            cur.append(w)\n            used = need\n        else:\n            lines.append([len(cur), used])\n            cur = [w]\n            used = w\n    if cur:\n        lines.append([len(cur), used])\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: overwide word placement', [[8, 7, 3, 8, 8, 6, 3, 4], 12, 3, 5, 1, 2], [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]]), ('regression: overwide word placement', [[8, 1, 1, 8, 3], 12, 3, 4, 2, 2], [[1, 7], [2, 3], [1, 8], [1, 3]]), ('partial-repair probe', [[6, 6, 2, 2, 1], 12, 3, 5, 1, 3], [[1, 5], [1, 6], [2, 5], [1, 1]]), ('partial-repair probe', [[2, 2, 3, 7, 1, 1, 4, 6, 2, 2], 22, 0, 3, 1, 1], [[6, 21], [4, 17]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('control layout', [[5, 5, 3, 1], 24, 0, 5, 1, 4], [[4, 17]]), ('control layout', [[1, 6, 1, 5], 22, 0, 3, 2, 1], [[4, 16]])], [('regression: overwide word placement', [[8, 7, 4, 7, 5, 3, 4], 12, 2, 4, 2, 4], [[1, 7], [1, 7], [2, 12], [2, 9], [1, 4]]), ('regression: overwide word placement', [[8, 1, 1, 8, 3], 12, 3, 4, 2, 2], [[1, 7], [2, 3], [1, 8], [1, 3]]), ('partial-repair probe', [[6, 6, 4, 3, 1, 1, 6, 2, 3], 21, 3, 3, 1, 2], [[3, 17], [5, 17], [1, 3]]), ('partial-repair probe', [[2, 3, 3, 8, 8, 2, 7, 8, 7, 6, 1], 15, 0, 2, 1, 1], [[3, 10], [1, 8], [2, 11], [1, 7], [1, 8], [2, 14], [1, 1]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('control layout', [[7, 3, 6, 1], 23, 0, 4, 1, 1], [[4, 20]]), ('control layout', [[3, 2, 3, 6, 1], 22, 0, 4, 1, 3], [[5, 19]])], [('regression: overwide word placement', [[8, 7, 4, 7, 5, 3, 4], 12, 2, 4, 2, 4], [[1, 7], [1, 7], [2, 12], [2, 9], [1, 4]]), ('regression: overwide word placement', [[8, 7, 3, 8, 8, 6, 3, 4], 12, 3, 5, 1, 2], [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]]), ('partial-repair probe', [[2, 2, 2, 3, 8, 4, 3, 5, 4, 4], 15, 0, 2, 1, 2], [[4, 12], [2, 13], [3, 14], [1, 4]]), ('partial-repair probe', [[2, 2, 3, 7, 3, 4], 13, 2, 4, 1, 4], [[3, 8], [1, 7], [2, 8]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('control layout', [[6, 5, 1, 3], 24, 2, 5, 1, 4], [[4, 17]]), ('control layout', [[4, 1, 2, 2, 2, 1], 21, 0, 5, 2, 3], [[6, 17]])], [('regression: overwide word placement', [[8, 7, 3, 8, 8, 6, 3, 4], 12, 3, 5, 1, 2], [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]]), ('regression: overwide word placement', [[8, 1, 1, 8, 3], 12, 3, 4, 2, 2], [[1, 7], [2, 3], [1, 8], [1, 3]]), ('partial-repair probe', [[7, 5, 7, 4, 5, 4, 7], 14, 2, 4, 2, 2], [[1, 6], [1, 5], [2, 12], [2, 10], [1, 7]]), ('partial-repair probe', [[3, 6, 7, 8, 3, 7], 14, 3, 2, 2, 1], [[2, 9], [1, 7], [1, 8], [2, 11]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('control layout', [[3, 1, 1, 3, 4], 18, 0, 3, 1, 2], [[5, 16]]), ('control layout', [[5, 5, 3, 1], 24, 0, 5, 1, 4], [[4, 17]])], [('regression: overwide word placement', [[8, 1, 1, 8, 3], 12, 3, 4, 2, 2], [[1, 7], [2, 3], [1, 8], [1, 3]]), ('regression: overwide word placement', [[8, 7, 3, 8, 8, 6, 3, 4], 12, 3, 5, 1, 2], [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]]), ('partial-repair probe', [[6, 2, 7, 1, 8, 8], 17, 0, 5, 2, 1], [[2, 9], [2, 9], [2, 17]]), ('partial-repair probe', [[8, 3, 1, 2, 7, 3, 4, 3, 4, 5], 15, 0, 2, 1, 1], [[3, 14], [3, 14], [3, 13], [1, 5]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('control layout', [[1, 4, 6, 3], 21, 0, 5, 1, 2], [[4, 17]]), ('control layout', [[8, 4, 1, 2, 1], 23, 0, 3, 1, 1], [[5, 20]])]]\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":"b7afedb1b8af45fb04e613cb8054ba0c0d2eb54df89e473eae5d5c704a6152b5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, width, cap_lines, cap_width, gap, indent = x\n    lens = list(words)\n    if cap_lines > 0:\n        lens[0] = lens[0] - 1\n    def avail(li):\n        base = width\n        if li < cap_lines:\n            base -= cap_width + gap\n        elif cap_lines == 0 and li == 0:\n            base -= indent\n        return base\n    lines = []\n    cur = []\n    used = 0\n    for w in lens:\n        li = len(lines)\n        need = w if not cur else used + 1 + w\n        if need <= avail(li) or not cur:\n            cur.append(w)\n            used = need\n        else:\n            lines.append([len(cur), used])\n            cur = [w]\n            used = w\n    if cur:\n        lines.append([len(cur), used])\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: overwide word placement', [[8, 7, 3, 8, 8, 6, 3, 4], 12, 3, 5, 1, 2], [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]]), ('regression: overwide word placement', [[8, 1, 1, 8, 3], 12, 3, 4, 2, 2], [[1, 7], [2, 3], [1, 8], [1, 3]]), ('partial-repair probe', [[6, 6, 2, 2, 1], 12, 3, 5, 1, 3], [[1, 5], [1, 6], [2, 5], [1, 1]]), ('partial-repair probe', [[2, 2, 3, 7, 1, 1, 4, 6, 2, 2], 22, 0, 3, 1, 1], [[6, 21], [4, 17]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('control layout', [[5, 5, 3, 1], 24, 0, 5, 1, 4], [[4, 17]]), ('control layout', [[1, 6, 1, 5], 22, 0, 3, 2, 1], [[4, 16]])], [('regression: overwide word placement', [[8, 7, 4, 7, 5, 3, 4], 12, 2, 4, 2, 4], [[1, 7], [1, 7], [2, 12], [2, 9], [1, 4]]), ('regression: overwide word placement', [[8, 1, 1, 8, 3], 12, 3, 4, 2, 2], [[1, 7], [2, 3], [1, 8], [1, 3]]), ('partial-repair probe', [[6, 6, 4, 3, 1, 1, 6, 2, 3], 21, 3, 3, 1, 2], [[3, 17], [5, 17], [1, 3]]), ('partial-repair probe', [[2, 3, 3, 8, 8, 2, 7, 8, 7, 6, 1], 15, 0, 2, 1, 1], [[3, 10], [1, 8], [2, 11], [1, 7], [1, 8], [2, 14], [1, 1]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('control layout', [[7, 3, 6, 1], 23, 0, 4, 1, 1], [[4, 20]]), ('control layout', [[3, 2, 3, 6, 1], 22, 0, 4, 1, 3], [[5, 19]])], [('regression: overwide word placement', [[8, 7, 4, 7, 5, 3, 4], 12, 2, 4, 2, 4], [[1, 7], [1, 7], [2, 12], [2, 9], [1, 4]]), ('regression: overwide word placement', [[8, 7, 3, 8, 8, 6, 3, 4], 12, 3, 5, 1, 2], [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]]), ('partial-repair probe', [[2, 2, 2, 3, 8, 4, 3, 5, 4, 4], 15, 0, 2, 1, 2], [[4, 12], [2, 13], [3, 14], [1, 4]]), ('partial-repair probe', [[2, 2, 3, 7, 3, 4], 13, 2, 4, 1, 4], [[3, 8], [1, 7], [2, 8]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('control layout', [[6, 5, 1, 3], 24, 2, 5, 1, 4], [[4, 17]]), ('control layout', [[4, 1, 2, 2, 2, 1], 21, 0, 5, 2, 3], [[6, 17]])], [('regression: overwide word placement', [[8, 7, 3, 8, 8, 6, 3, 4], 12, 3, 5, 1, 2], [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]]), ('regression: overwide word placement', [[8, 1, 1, 8, 3], 12, 3, 4, 2, 2], [[1, 7], [2, 3], [1, 8], [1, 3]]), ('partial-repair probe', [[7, 5, 7, 4, 5, 4, 7], 14, 2, 4, 2, 2], [[1, 6], [1, 5], [2, 12], [2, 10], [1, 7]]), ('partial-repair probe', [[3, 6, 7, 8, 3, 7], 14, 3, 2, 2, 1], [[2, 9], [1, 7], [1, 8], [2, 11]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('control layout', [[3, 1, 1, 3, 4], 18, 0, 3, 1, 2], [[5, 16]]), ('control layout', [[5, 5, 3, 1], 24, 0, 5, 1, 4], [[4, 17]])], [('regression: overwide word placement', [[8, 1, 1, 8, 3], 12, 3, 4, 2, 2], [[1, 7], [2, 3], [1, 8], [1, 3]]), ('regression: overwide word placement', [[8, 7, 3, 8, 8, 6, 3, 4], 12, 3, 5, 1, 2], [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]]), ('partial-repair probe', [[6, 2, 7, 1, 8, 8], 17, 0, 5, 2, 1], [[2, 9], [2, 9], [2, 17]]), ('partial-repair probe', [[8, 3, 1, 2, 7, 3, 4, 3, 4, 5], 15, 0, 2, 1, 1], [[3, 14], [3, 14], [3, 13], [1, 5]]), ('three-line drop cap', [[5, 3, 4, 6, 2, 5, 4, 3], 14, 3, 3, 1, 2], [[2, 8], [1, 4], [2, 9], [3, 14]]), ('no cap uses indent', [[5, 3, 4, 6, 2], 12, 0, 3, 1, 3], [[2, 9], [2, 11], [1, 2]]), ('control layout', [[1, 4, 6, 3], 21, 0, 5, 1, 2], [[4, 17]]), ('control layout', [[8, 4, 1, 2, 1], 23, 0, 3, 1, 1], [[5, 20]])]]\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-drop-cap-overwide-word-placement","generated_at":"2026-09-29T14:49:50.954903+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":"Place an overwide word alone on an empty line.","root_cause":"Only fitting words may start a line, so an overwide word first flushes an empty line.","sha256":"00d8b64201324d3848c10edc744d4db133c9630f40beaf30f953c87cdfb454e1","title":"Drop cap shaped paragraph: overwide word placement · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.005,"exit_code":1,"observations":[{"actual":[[8,53]],"check":"regression: overwide word placement","expected":[[1,7],[1,7],[1,3],[1,8],[1,8],[2,10],[1,4]],"passed":false},{"actual":[[5,24]],"check":"regression: overwide word placement","expected":[[1,7],[2,3],[1,8],[1,3]],"passed":false},{"actual":[[5,20]],"check":"partial-repair probe","expected":[[1,5],[1,6],[2,5],[1,1]],"passed":false},{"actual":[[10,39]],"check":"partial-repair probe","expected":[[6,21],[4,17]],"passed":false},{"actual":[[8,38]],"check":"three-line drop cap","expected":[[2,8],[1,4],[2,9],[3,14]],"passed":false},{"actual":[[5,24]],"check":"no cap uses indent","expected":[[2,9],[2,11],[1,2]],"passed":false},{"actual":[[4,17]],"check":"control layout","expected":[[4,17]],"passed":true},{"actual":[[4,16]],"check":"control layout","expected":[[4,16]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: overwide word placement\", \"actual\": [[8, 53]], \"expected\": [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]], \"passed\": false}, {\"check\": \"regression: overwide word placement\", \"actual\": [[5, 24]], \"expected\": [[1, 7], [2, 3], [1, 8], [1, 3]], \"passed\": false}, {\"check\": \"partial-repair probe\", \"actual\": [[5, 20]], \"expected\": [[1, 5], [1, 6], [2, 5], [1, 1]], \"passed\": false}, {\"check\": \"partial-repair probe\", \"actual\": [[10, 39]], \"expected\": [[6, 21], [4, 17]], \"passed\": false}, {\"check\": \"three-line drop cap\", \"actual\": [[8, 38]], \"expected\": [[2, 8], [1, 4], [2, 9], [3, 14]], \"passed\": false}, {\"check\": \"no cap uses indent\", \"actual\": [[5, 24]], \"expected\": [[2, 9], [2, 11], [1, 2]], \"passed\": false}, {\"check\": \"control layout\", \"actual\": [[4, 17]], \"expected\": [[4, 17]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[4, 16]], \"expected\": [[4, 16]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.685,"exit_code":1,"observations":[{"actual":[[0,0],[1,7],[1,7],[2,12],[1,8],[2,10],[1,4]],"check":"regression: overwide word placement","expected":[[1,7],[1,7],[1,3],[1,8],[1,8],[2,10],[1,4]],"passed":false},{"actual":[[0,0],[1,7],[2,3],[2,12]],"check":"regression: overwide word placement","expected":[[1,7],[2,3],[1,8],[1,3]],"passed":false},{"actual":[[1,5],[1,6],[2,5],[1,1]],"check":"partial-repair probe","expected":[[1,5],[1,6],[2,5],[1,1]],"passed":true},{"actual":[[6,21],[4,17]],"check":"partial-repair probe","expected":[[6,21],[4,17]],"passed":true},{"actual":[[2,8],[1,4],[2,9],[3,14]],"check":"three-line drop cap","expected":[[2,8],[1,4],[2,9],[3,14]],"passed":true},{"actual":[[2,9],[2,11],[1,2]],"check":"no cap uses indent","expected":[[2,9],[2,11],[1,2]],"passed":true},{"actual":[[4,17]],"check":"control layout","expected":[[4,17]],"passed":true},{"actual":[[4,16]],"check":"control layout","expected":[[4,16]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: overwide word placement\", \"actual\": [[0, 0], [1, 7], [1, 7], [2, 12], [1, 8], [2, 10], [1, 4]], \"expected\": [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]], \"passed\": false}, {\"check\": \"regression: overwide word placement\", \"actual\": [[0, 0], [1, 7], [2, 3], [2, 12]], \"expected\": [[1, 7], [2, 3], [1, 8], [1, 3]], \"passed\": false}, {\"check\": \"partial-repair probe\", \"actual\": [[1, 5], [1, 6], [2, 5], [1, 1]], \"expected\": [[1, 5], [1, 6], [2, 5], [1, 1]], \"passed\": true}, {\"check\": \"partial-repair probe\", \"actual\": [[6, 21], [4, 17]], \"expected\": [[6, 21], [4, 17]], \"passed\": true}, {\"check\": \"three-line drop cap\", \"actual\": [[2, 8], [1, 4], [2, 9], [3, 14]], \"expected\": [[2, 8], [1, 4], [2, 9], [3, 14]], \"passed\": true}, {\"check\": \"no cap uses indent\", \"actual\": [[2, 9], [2, 11], [1, 2]], \"expected\": [[2, 9], [2, 11], [1, 2]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[4, 17]], \"expected\": [[4, 17]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[4, 16]], \"expected\": [[4, 16]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.285,"exit_code":0,"observations":[{"actual":[[1,7],[1,7],[1,3],[1,8],[1,8],[2,10],[1,4]],"check":"regression: overwide word placement","expected":[[1,7],[1,7],[1,3],[1,8],[1,8],[2,10],[1,4]],"passed":true},{"actual":[[1,7],[2,3],[1,8],[1,3]],"check":"regression: overwide word placement","expected":[[1,7],[2,3],[1,8],[1,3]],"passed":true},{"actual":[[1,5],[1,6],[2,5],[1,1]],"check":"partial-repair probe","expected":[[1,5],[1,6],[2,5],[1,1]],"passed":true},{"actual":[[6,21],[4,17]],"check":"partial-repair probe","expected":[[6,21],[4,17]],"passed":true},{"actual":[[2,8],[1,4],[2,9],[3,14]],"check":"three-line drop cap","expected":[[2,8],[1,4],[2,9],[3,14]],"passed":true},{"actual":[[2,9],[2,11],[1,2]],"check":"no cap uses indent","expected":[[2,9],[2,11],[1,2]],"passed":true},{"actual":[[4,17]],"check":"control layout","expected":[[4,17]],"passed":true},{"actual":[[4,16]],"check":"control layout","expected":[[4,16]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: overwide word placement\", \"actual\": [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]], \"expected\": [[1, 7], [1, 7], [1, 3], [1, 8], [1, 8], [2, 10], [1, 4]], \"passed\": true}, {\"check\": \"regression: overwide word placement\", \"actual\": [[1, 7], [2, 3], [1, 8], [1, 3]], \"expected\": [[1, 7], [2, 3], [1, 8], [1, 3]], \"passed\": true}, {\"check\": \"partial-repair probe\", \"actual\": [[1, 5], [1, 6], [2, 5], [1, 1]], \"expected\": [[1, 5], [1, 6], [2, 5], [1, 1]], \"passed\": true}, {\"check\": \"partial-repair probe\", \"actual\": [[6, 21], [4, 17]], \"expected\": [[6, 21], [4, 17]], \"passed\": true}, {\"check\": \"three-line drop cap\", \"actual\": [[2, 8], [1, 4], [2, 9], [3, 14]], \"expected\": [[2, 8], [1, 4], [2, 9], [3, 14]], \"passed\": true}, {\"check\": \"no cap uses indent\", \"actual\": [[2, 9], [2, 11], [1, 2]], \"expected\": [[2, 9], [2, 11], [1, 2]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[4, 17]], \"expected\": [[4, 17]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[4, 16]], \"expected\": [[4, 16]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}