{"abstract":"Hyphenated lines overrun the measure.","category":"Typography line breaking","checks":8,"contract":"Input [words as syllables, width, zone, min word length, min chars before, min chars after, hyphenate capitals]. Greedy fill. A word that does not fit may be hyphenated only if the slack left on the line (width minus current text minus the separating space) is at least the zone, the word has at least min-word characters, and (capitals allowed or its first letter is not uppercase). Pick the latest syllable boundary with head >= min before and tail >= min after chars whose head plus \"-\" fits. Return lines.","evaluation_group":"w2-typography-line-breaking-hyphenation-zone","failed_approach":"Counting the hyphen only on empty lines still overruns lines with text.","family":"w2-typography-line-breaking-hyphenation-zone-hyphenated-head-fit","id":"FA-80236","implementations":{"attempt":{"sha256":"8800778e6340f875e26b0bb89d63465529dcb7e56872fe4378b852d9b801b33e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, width, zone, min_word, min_before, min_after, caps = x\n    lines = []\n    cur = ''\n    k = 0\n    queue = [list(w) for w in words]\n    while k < len(queue):\n        syl = queue[k]\n        token = ''.join(syl)\n        cand = token if not cur else cur + ' ' + token\n        if len(cand) <= width:\n            cur = cand\n            k += 1\n            continue\n        slack = width - len(cur) - (1 if cur else 0)\n        eligible = slack >= zone and len(token) >= min_word and (caps or not token[0].isupper())\n        cut = None\n        if eligible:\n            for c in range(len(syl) - 1, 0, -1):\n                head = ''.join(syl[:c])\n                tail = ''.join(syl[c:])\n                if len(head) < min_before or len(tail) < min_after:\n                    continue\n                fit = len(head) + 1 if not cur else len(cur) + len(head) + 1\n                if fit <= width:\n                    cut = c\n                    break\n        if cut is not None:\n            head = ''.join(syl[:cut]) + '-'\n            lines.append(head if not cur else cur + ' ' + head)\n            queue[k] = syl[cut:]\n            cur = ''\n        elif cur:\n            lines.append(cur)\n            cur = ''\n        else:\n            cur = token\n            k += 1\n    if cur:\n        lines.append(cur)\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: hyphenated head fit', [[['in', 'ter', 'na', 'tion', 'al'], ['a'], ['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['e', 'Book', 'ing'], ['set']], 11, 3, 7, 3, 2, True], ['interna-', 'tional a', 'Berlin', 'McDonald', 'eBooking', 'set']), ('regression: hyphenated head fit', [[['e', 'Book', 'ing'], ['a'], ['hy', 'phen', 'at', 'ed'], ['ty', 'po', 'gra', 'phy'], ['hy', 'phen', 'at', 'ed'], ['on', 'ly'], ['on', 'ly'], ['e', 'Book', 'ing'], ['hy', 'phen', 'at', 'ed'], ['ty', 'po', 'gra', 'phy']], 9, 3, 6, 2, 3, False], ['eBooking', 'a hyphen-', 'ated ty-', 'pography', 'hyphen-', 'ated only', 'only', 'eBooking', 'hyphen-', 'ated ty-', 'pography']), ('regression: hyphenated head fit', [[['im', 'por', 'tant'], ['im', 'por', 'tant'], ['im', 'por', 'tant'], ['im', 'por', 'tant']], 15, 2, 6, 1, 3, True], ['important im-', 'portant impor-', 'tant important']), ('regression: hyphenated head fit', [[['on', 'ly'], ['in', 'ter', 'na', 'tion', 'al'], ['in', 'ter', 'na', 'tion', 'al'], ['of'], ['in', 'ter', 'na', 'tion', 'al'], ['hy', 'phen', 'at', 'ed'], ['rag', 'ged']], 14, 2, 7, 3, 3, False], ['only interna-', 'tional inter-', 'national of', 'international', 'hyphenated', 'ragged']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('control layout', [[['the'], ['rag', 'ged'], ['set'], ['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['rag', 'ged']], 10, 3, 5, 3, 2, True], ['the ragged', 'set Berlin', 'McDonald', 'ragged']), ('control layout', [[['Ber', 'lin'], ['Ber', 'lin'], ['the'], ['Mc', 'Don', 'ald']], 14, 5, 4, 3, 3, True], ['Berlin Berlin', 'the McDonald'])], [('regression: hyphenated head fit', [[['e', 'Book', 'ing'], ['on', 'ly'], ['im', 'por', 'tant'], ['im', 'por', 'tant'], ['hy', 'phen', 'at', 'ed'], ['im', 'por', 'tant'], ['e', 'Book', 'ing'], ['im', 'por', 'tant'], ['in', 'ter', 'na', 'tion', 'al']], 15, 2, 6, 1, 2, True], ['eBooking only', 'important im-', 'portant hyphen-', 'ated important', 'eBooking impor-', 'tant interna-', 'tional']), ('regression: hyphenated head fit', [[['Mc', 'Don', 'ald'], ['in', 'ter', 'na', 'tion', 'al'], ['the'], ['im', 'por', 'tant'], ['im', 'por', 'tant'], ['a']], 15, 4, 7, 1, 2, True], ['McDonald inter-', 'national the', 'important im-', 'portant a']), ('regression: hyphenated head fit', [[['im', 'por', 'tant'], ['e', 'Book', 'ing'], ['Mc', 'Don', 'ald'], ['a']], 15, 1, 4, 1, 3, True], ['important e-', 'Booking McDon-', 'ald a']), ('regression: hyphenated head fit', [[['set'], ['Mc', 'Don', 'ald'], ['ty', 'po', 'gra', 'phy'], ['ty', 'po', 'gra', 'phy'], ['Ber', 'lin'], ['a'], ['e', 'Book', 'ing'], ['im', 'por', 'tant']], 9, 1, 7, 1, 2, True], ['set Mc-', 'Donald', 'typogra-', 'phy typo-', 'graphy', 'Berlin a', 'eBooking', 'important']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('control layout', [[['hy', 'phen', 'at', 'ed'], ['hy', 'phen', 'at', 'ed'], ['in', 'ter', 'na', 'tion', 'al'], ['a'], ['im', 'por', 'tant'], ['the'], ['Ber', 'lin'], ['set'], ['a']], 13, 2, 6, 3, 2, False], ['hyphenated', 'hyphenated', 'international', 'a important', 'the Berlin', 'set a']), ('control layout', [[['hy', 'phen', 'at', 'ed'], ['e', 'Book', 'ing'], ['im', 'por', 'tant'], ['Mc', 'Don', 'ald'], ['hy', 'phen', 'at', 'ed'], ['set'], ['on', 'ly'], ['ty', 'po', 'gra', 'phy'], ['set'], ['Ber', 'lin']], 12, 4, 4, 3, 3, False], ['hyphenated', 'eBooking', 'important', 'McDonald', 'hyphenated', 'set only', 'typography', 'set Berlin'])], [('regression: hyphenated head fit', [[['Ber', 'lin'], ['rag', 'ged'], ['ty', 'po', 'gra', 'phy'], ['on', 'ly'], ['rag', 'ged'], ['hy', 'phen', 'at', 'ed'], ['set'], ['Ber', 'lin'], ['the']], 11, 3, 5, 2, 2, True], ['Berlin rag-', 'ged typo-', 'graphy only', 'ragged hy-', 'phenated', 'set Berlin', 'the']), ('regression: hyphenated head fit', [[['set'], ['e', 'Book', 'ing'], ['Ber', 'lin'], ['the'], ['ty', 'po', 'gra', 'phy'], ['hy', 'phen', 'at', 'ed'], ['a'], ['in', 'ter', 'na', 'tion', 'al']], 15, 1, 6, 2, 2, False], ['set eBooking', 'Berlin the ty-', 'pography hy-', 'phenated a in-', 'ternational']), ('regression: hyphenated head fit', [[['a'], ['Ber', 'lin'], ['im', 'por', 'tant'], ['ty', 'po', 'gra', 'phy'], ['e', 'Book', 'ing'], ['Ber', 'lin'], ['a'], ['im', 'por', 'tant']], 14, 5, 7, 2, 2, False], ['a Berlin im-', 'portant typo-', 'graphy eBook-', 'ing Berlin a', 'important']), ('regression: hyphenated head fit', [[['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['the'], ['e', 'Book', 'ing'], ['a'], ['e', 'Book', 'ing'], ['ty', 'po', 'gra', 'phy'], ['of'], ['the']], 9, 4, 7, 3, 3, True], ['Berlin', 'McDonald', 'the', 'eBooking', 'a eBook-', 'ing typo-', 'graphy of', 'the']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('control layout', [[['e', 'Book', 'ing'], ['Mc', 'Don', 'ald'], ['e', 'Book', 'ing'], ['the'], ['on', 'ly'], ['ty', 'po', 'gra', 'phy']], 11, 3, 4, 2, 3, True], ['eBooking', 'McDonald', 'eBooking', 'the only', 'typography']), ('control layout', [[['Mc', 'Don', 'ald'], ['on', 'ly'], ['hy', 'phen', 'at', 'ed'], ['Ber', 'lin'], ['the'], ['of']], 16, 3, 4, 2, 2, False], ['McDonald only', 'hyphenated', 'Berlin the of'])], [('regression: hyphenated head fit', [[['Mc', 'Don', 'ald'], ['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['e', 'Book', 'ing'], ['on', 'ly'], ['ty', 'po', 'gra', 'phy'], ['ty', 'po', 'gra', 'phy'], ['rag', 'ged'], ['ty', 'po', 'gra', 'phy']], 9, 4, 6, 2, 3, False], ['McDonald', 'Berlin', 'McDonald', 'eBooking', 'only ty-', 'pography', 'typogra-', 'phy rag-', 'ged typo-', 'graphy']), ('regression: hyphenated head fit', [[['of'], ['im', 'por', 'tant'], ['of'], ['on', 'ly'], ['hy', 'phen', 'at', 'ed'], ['the'], ['hy', 'phen', 'at', 'ed'], ['a']], 12, 4, 7, 3, 2, True], ['of important', 'of only', 'hyphenated', 'the hyphen-', 'ated a']), ('regression: hyphenated head fit', [[['Ber', 'lin'], ['on', 'ly'], ['in', 'ter', 'na', 'tion', 'al'], ['a'], ['on', 'ly'], ['ty', 'po', 'gra', 'phy'], ['ty', 'po', 'gra', 'phy'], ['Ber', 'lin']], 11, 4, 5, 1, 3, True], ['Berlin only', 'interna-', 'tional a', 'only typo-', 'graphy ty-', 'pography', 'Berlin']), ('regression: hyphenated head fit', [[['a'], ['hy', 'phen', 'at', 'ed'], ['e', 'Book', 'ing'], ['in', 'ter', 'na', 'tion', 'al'], ['the'], ['Ber', 'lin'], ['e', 'Book', 'ing'], ['hy', 'phen', 'at', 'ed'], ['a']], 8, 2, 7, 2, 3, False], ['a hy-', 'phenated', 'eBooking', 'interna-', 'tional', 'the', 'Berlin', 'eBooking', 'hyphen-', 'ated a']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('control layout', [[['Mc', 'Don', 'ald'], ['a'], ['Mc', 'Don', 'ald'], ['of']], 9, 3, 6, 3, 2, True], ['McDonald', 'a McDon-', 'ald of']), ('control layout', [[['in', 'ter', 'na', 'tion', 'al'], ['on', 'ly'], ['a'], ['Mc', 'Don', 'ald']], 10, 1, 6, 2, 3, False], ['interna-', 'tional', 'only a', 'McDonald'])], [('regression: hyphenated head fit', [[['Mc', 'Don', 'ald'], ['a'], ['of'], ['Mc', 'Don', 'ald'], ['rag', 'ged'], ['in', 'ter', 'na', 'tion', 'al'], ['im', 'por', 'tant'], ['hy', 'phen', 'at', 'ed'], ['set']], 12, 2, 4, 2, 2, False], ['McDonald a', 'of McDonald', 'ragged in-', 'ternational', 'important', 'hyphenated', 'set']), ('regression: hyphenated head fit', [[['hy', 'phen', 'at', 'ed'], ['e', 'Book', 'ing'], ['in', 'ter', 'na', 'tion', 'al'], ['rag', 'ged']], 10, 3, 5, 3, 3, True], ['hyphenated', 'eBooking', 'interna-', 'tional', 'ragged']), ('regression: hyphenated head fit', [[['on', 'ly'], ['im', 'por', 'tant'], ['Mc', 'Don', 'ald'], ['the'], ['Ber', 'lin'], ['ty', 'po', 'gra', 'phy'], ['in', 'ter', 'na', 'tion', 'al']], 15, 4, 5, 1, 2, True], ['only important', 'McDonald the', 'Berlin typogra-', 'phy interna-', 'tional']), ('regression: hyphenated head fit', [[['hy', 'phen', 'at', 'ed'], ['the'], ['Ber', 'lin'], ['of'], ['im', 'por', 'tant'], ['of'], ['a'], ['set']], 8, 1, 5, 1, 2, True], ['hyphen-', 'ated the', 'Berlin', 'of im-', 'portant', 'of a set']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('control layout', [[['set'], ['ty', 'po', 'gra', 'phy'], ['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['on', 'ly'], ['in', 'ter', 'na', 'tion', 'al'], ['e', 'Book', 'ing']], 13, 5, 7, 1, 2, True], ['set typogra-', 'phy Berlin', 'McDonald only', 'international', 'eBooking']), ('control layout', [[['set'], ['Ber', 'lin'], ['set'], ['a']], 14, 5, 5, 2, 2, True], ['set Berlin set', 'a'])]]\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":"cab02890fe92e563462eda6b0345ee3bbeb31e5bec0ebbfab28a7f005abc1cb0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, width, zone, min_word, min_before, min_after, caps = x\n    lines = []\n    cur = ''\n    k = 0\n    queue = [list(w) for w in words]\n    while k < len(queue):\n        syl = queue[k]\n        token = ''.join(syl)\n        cand = token if not cur else cur + ' ' + token\n        if len(cand) <= width:\n            cur = cand\n            k += 1\n            continue\n        slack = width - len(cur) - (1 if cur else 0)\n        eligible = slack >= zone and len(token) >= min_word and (caps or not token[0].isupper())\n        cut = None\n        if eligible:\n            for c in range(len(syl) - 1, 0, -1):\n                head = ''.join(syl[:c])\n                tail = ''.join(syl[c:])\n                if len(head) < min_before or len(tail) < min_after:\n                    continue\n                fit = len(head) if not cur else len(cur) + len(head) + 1\n                if fit <= width:\n                    cut = c\n                    break\n        if cut is not None:\n            head = ''.join(syl[:cut]) + '-'\n            lines.append(head if not cur else cur + ' ' + head)\n            queue[k] = syl[cut:]\n            cur = ''\n        elif cur:\n            lines.append(cur)\n            cur = ''\n        else:\n            cur = token\n            k += 1\n    if cur:\n        lines.append(cur)\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: hyphenated head fit', [[['in', 'ter', 'na', 'tion', 'al'], ['a'], ['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['e', 'Book', 'ing'], ['set']], 11, 3, 7, 3, 2, True], ['interna-', 'tional a', 'Berlin', 'McDonald', 'eBooking', 'set']), ('regression: hyphenated head fit', [[['e', 'Book', 'ing'], ['a'], ['hy', 'phen', 'at', 'ed'], ['ty', 'po', 'gra', 'phy'], ['hy', 'phen', 'at', 'ed'], ['on', 'ly'], ['on', 'ly'], ['e', 'Book', 'ing'], ['hy', 'phen', 'at', 'ed'], ['ty', 'po', 'gra', 'phy']], 9, 3, 6, 2, 3, False], ['eBooking', 'a hyphen-', 'ated ty-', 'pography', 'hyphen-', 'ated only', 'only', 'eBooking', 'hyphen-', 'ated ty-', 'pography']), ('regression: hyphenated head fit', [[['im', 'por', 'tant'], ['im', 'por', 'tant'], ['im', 'por', 'tant'], ['im', 'por', 'tant']], 15, 2, 6, 1, 3, True], ['important im-', 'portant impor-', 'tant important']), ('regression: hyphenated head fit', [[['on', 'ly'], ['in', 'ter', 'na', 'tion', 'al'], ['in', 'ter', 'na', 'tion', 'al'], ['of'], ['in', 'ter', 'na', 'tion', 'al'], ['hy', 'phen', 'at', 'ed'], ['rag', 'ged']], 14, 2, 7, 3, 3, False], ['only interna-', 'tional inter-', 'national of', 'international', 'hyphenated', 'ragged']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('control layout', [[['the'], ['rag', 'ged'], ['set'], ['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['rag', 'ged']], 10, 3, 5, 3, 2, True], ['the ragged', 'set Berlin', 'McDonald', 'ragged']), ('control layout', [[['Ber', 'lin'], ['Ber', 'lin'], ['the'], ['Mc', 'Don', 'ald']], 14, 5, 4, 3, 3, True], ['Berlin Berlin', 'the McDonald'])], [('regression: hyphenated head fit', [[['e', 'Book', 'ing'], ['on', 'ly'], ['im', 'por', 'tant'], ['im', 'por', 'tant'], ['hy', 'phen', 'at', 'ed'], ['im', 'por', 'tant'], ['e', 'Book', 'ing'], ['im', 'por', 'tant'], ['in', 'ter', 'na', 'tion', 'al']], 15, 2, 6, 1, 2, True], ['eBooking only', 'important im-', 'portant hyphen-', 'ated important', 'eBooking impor-', 'tant interna-', 'tional']), ('regression: hyphenated head fit', [[['Mc', 'Don', 'ald'], ['in', 'ter', 'na', 'tion', 'al'], ['the'], ['im', 'por', 'tant'], ['im', 'por', 'tant'], ['a']], 15, 4, 7, 1, 2, True], ['McDonald inter-', 'national the', 'important im-', 'portant a']), ('regression: hyphenated head fit', [[['im', 'por', 'tant'], ['e', 'Book', 'ing'], ['Mc', 'Don', 'ald'], ['a']], 15, 1, 4, 1, 3, True], ['important e-', 'Booking McDon-', 'ald a']), ('regression: hyphenated head fit', [[['set'], ['Mc', 'Don', 'ald'], ['ty', 'po', 'gra', 'phy'], ['ty', 'po', 'gra', 'phy'], ['Ber', 'lin'], ['a'], ['e', 'Book', 'ing'], ['im', 'por', 'tant']], 9, 1, 7, 1, 2, True], ['set Mc-', 'Donald', 'typogra-', 'phy typo-', 'graphy', 'Berlin a', 'eBooking', 'important']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('control layout', [[['hy', 'phen', 'at', 'ed'], ['hy', 'phen', 'at', 'ed'], ['in', 'ter', 'na', 'tion', 'al'], ['a'], ['im', 'por', 'tant'], ['the'], ['Ber', 'lin'], ['set'], ['a']], 13, 2, 6, 3, 2, False], ['hyphenated', 'hyphenated', 'international', 'a important', 'the Berlin', 'set a']), ('control layout', [[['hy', 'phen', 'at', 'ed'], ['e', 'Book', 'ing'], ['im', 'por', 'tant'], ['Mc', 'Don', 'ald'], ['hy', 'phen', 'at', 'ed'], ['set'], ['on', 'ly'], ['ty', 'po', 'gra', 'phy'], ['set'], ['Ber', 'lin']], 12, 4, 4, 3, 3, False], ['hyphenated', 'eBooking', 'important', 'McDonald', 'hyphenated', 'set only', 'typography', 'set Berlin'])], [('regression: hyphenated head fit', [[['Ber', 'lin'], ['rag', 'ged'], ['ty', 'po', 'gra', 'phy'], ['on', 'ly'], ['rag', 'ged'], ['hy', 'phen', 'at', 'ed'], ['set'], ['Ber', 'lin'], ['the']], 11, 3, 5, 2, 2, True], ['Berlin rag-', 'ged typo-', 'graphy only', 'ragged hy-', 'phenated', 'set Berlin', 'the']), ('regression: hyphenated head fit', [[['set'], ['e', 'Book', 'ing'], ['Ber', 'lin'], ['the'], ['ty', 'po', 'gra', 'phy'], ['hy', 'phen', 'at', 'ed'], ['a'], ['in', 'ter', 'na', 'tion', 'al']], 15, 1, 6, 2, 2, False], ['set eBooking', 'Berlin the ty-', 'pography hy-', 'phenated a in-', 'ternational']), ('regression: hyphenated head fit', [[['a'], ['Ber', 'lin'], ['im', 'por', 'tant'], ['ty', 'po', 'gra', 'phy'], ['e', 'Book', 'ing'], ['Ber', 'lin'], ['a'], ['im', 'por', 'tant']], 14, 5, 7, 2, 2, False], ['a Berlin im-', 'portant typo-', 'graphy eBook-', 'ing Berlin a', 'important']), ('regression: hyphenated head fit', [[['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['the'], ['e', 'Book', 'ing'], ['a'], ['e', 'Book', 'ing'], ['ty', 'po', 'gra', 'phy'], ['of'], ['the']], 9, 4, 7, 3, 3, True], ['Berlin', 'McDonald', 'the', 'eBooking', 'a eBook-', 'ing typo-', 'graphy of', 'the']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('control layout', [[['e', 'Book', 'ing'], ['Mc', 'Don', 'ald'], ['e', 'Book', 'ing'], ['the'], ['on', 'ly'], ['ty', 'po', 'gra', 'phy']], 11, 3, 4, 2, 3, True], ['eBooking', 'McDonald', 'eBooking', 'the only', 'typography']), ('control layout', [[['Mc', 'Don', 'ald'], ['on', 'ly'], ['hy', 'phen', 'at', 'ed'], ['Ber', 'lin'], ['the'], ['of']], 16, 3, 4, 2, 2, False], ['McDonald only', 'hyphenated', 'Berlin the of'])], [('regression: hyphenated head fit', [[['Mc', 'Don', 'ald'], ['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['e', 'Book', 'ing'], ['on', 'ly'], ['ty', 'po', 'gra', 'phy'], ['ty', 'po', 'gra', 'phy'], ['rag', 'ged'], ['ty', 'po', 'gra', 'phy']], 9, 4, 6, 2, 3, False], ['McDonald', 'Berlin', 'McDonald', 'eBooking', 'only ty-', 'pography', 'typogra-', 'phy rag-', 'ged typo-', 'graphy']), ('regression: hyphenated head fit', [[['of'], ['im', 'por', 'tant'], ['of'], ['on', 'ly'], ['hy', 'phen', 'at', 'ed'], ['the'], ['hy', 'phen', 'at', 'ed'], ['a']], 12, 4, 7, 3, 2, True], ['of important', 'of only', 'hyphenated', 'the hyphen-', 'ated a']), ('regression: hyphenated head fit', [[['Ber', 'lin'], ['on', 'ly'], ['in', 'ter', 'na', 'tion', 'al'], ['a'], ['on', 'ly'], ['ty', 'po', 'gra', 'phy'], ['ty', 'po', 'gra', 'phy'], ['Ber', 'lin']], 11, 4, 5, 1, 3, True], ['Berlin only', 'interna-', 'tional a', 'only typo-', 'graphy ty-', 'pography', 'Berlin']), ('regression: hyphenated head fit', [[['a'], ['hy', 'phen', 'at', 'ed'], ['e', 'Book', 'ing'], ['in', 'ter', 'na', 'tion', 'al'], ['the'], ['Ber', 'lin'], ['e', 'Book', 'ing'], ['hy', 'phen', 'at', 'ed'], ['a']], 8, 2, 7, 2, 3, False], ['a hy-', 'phenated', 'eBooking', 'interna-', 'tional', 'the', 'Berlin', 'eBooking', 'hyphen-', 'ated a']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('control layout', [[['Mc', 'Don', 'ald'], ['a'], ['Mc', 'Don', 'ald'], ['of']], 9, 3, 6, 3, 2, True], ['McDonald', 'a McDon-', 'ald of']), ('control layout', [[['in', 'ter', 'na', 'tion', 'al'], ['on', 'ly'], ['a'], ['Mc', 'Don', 'ald']], 10, 1, 6, 2, 3, False], ['interna-', 'tional', 'only a', 'McDonald'])], [('regression: hyphenated head fit', [[['Mc', 'Don', 'ald'], ['a'], ['of'], ['Mc', 'Don', 'ald'], ['rag', 'ged'], ['in', 'ter', 'na', 'tion', 'al'], ['im', 'por', 'tant'], ['hy', 'phen', 'at', 'ed'], ['set']], 12, 2, 4, 2, 2, False], ['McDonald a', 'of McDonald', 'ragged in-', 'ternational', 'important', 'hyphenated', 'set']), ('regression: hyphenated head fit', [[['hy', 'phen', 'at', 'ed'], ['e', 'Book', 'ing'], ['in', 'ter', 'na', 'tion', 'al'], ['rag', 'ged']], 10, 3, 5, 3, 3, True], ['hyphenated', 'eBooking', 'interna-', 'tional', 'ragged']), ('regression: hyphenated head fit', [[['on', 'ly'], ['im', 'por', 'tant'], ['Mc', 'Don', 'ald'], ['the'], ['Ber', 'lin'], ['ty', 'po', 'gra', 'phy'], ['in', 'ter', 'na', 'tion', 'al']], 15, 4, 5, 1, 2, True], ['only important', 'McDonald the', 'Berlin typogra-', 'phy interna-', 'tional']), ('regression: hyphenated head fit', [[['hy', 'phen', 'at', 'ed'], ['the'], ['Ber', 'lin'], ['of'], ['im', 'por', 'tant'], ['of'], ['a'], ['set']], 8, 1, 5, 1, 2, True], ['hyphen-', 'ated the', 'Berlin', 'of im-', 'portant', 'of a set']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('control layout', [[['set'], ['ty', 'po', 'gra', 'phy'], ['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['on', 'ly'], ['in', 'ter', 'na', 'tion', 'al'], ['e', 'Book', 'ing']], 13, 5, 7, 1, 2, True], ['set typogra-', 'phy Berlin', 'McDonald only', 'international', 'eBooking']), ('control layout', [[['set'], ['Ber', 'lin'], ['set'], ['a']], 14, 5, 5, 2, 2, True], ['set Berlin set', 'a'])]]\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":"57510905eacb6c302c86934a1343eace21325c447c8ecbb96e8396ba97ca413a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, width, zone, min_word, min_before, min_after, caps = x\n    lines = []\n    cur = ''\n    k = 0\n    queue = [list(w) for w in words]\n    while k < len(queue):\n        syl = queue[k]\n        token = ''.join(syl)\n        cand = token if not cur else cur + ' ' + token\n        if len(cand) <= width:\n            cur = cand\n            k += 1\n            continue\n        slack = width - len(cur) - (1 if cur else 0)\n        eligible = slack >= zone and len(token) >= min_word and (caps or not token[0].isupper())\n        cut = None\n        if eligible:\n            for c in range(len(syl) - 1, 0, -1):\n                head = ''.join(syl[:c])\n                tail = ''.join(syl[c:])\n                if len(head) < min_before or len(tail) < min_after:\n                    continue\n                fit = len(head) + 1 if not cur else len(cur) + len(head) + 2\n                if fit <= width:\n                    cut = c\n                    break\n        if cut is not None:\n            head = ''.join(syl[:cut]) + '-'\n            lines.append(head if not cur else cur + ' ' + head)\n            queue[k] = syl[cut:]\n            cur = ''\n        elif cur:\n            lines.append(cur)\n            cur = ''\n        else:\n            cur = token\n            k += 1\n    if cur:\n        lines.append(cur)\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: hyphenated head fit', [[['in', 'ter', 'na', 'tion', 'al'], ['a'], ['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['e', 'Book', 'ing'], ['set']], 11, 3, 7, 3, 2, True], ['interna-', 'tional a', 'Berlin', 'McDonald', 'eBooking', 'set']), ('regression: hyphenated head fit', [[['e', 'Book', 'ing'], ['a'], ['hy', 'phen', 'at', 'ed'], ['ty', 'po', 'gra', 'phy'], ['hy', 'phen', 'at', 'ed'], ['on', 'ly'], ['on', 'ly'], ['e', 'Book', 'ing'], ['hy', 'phen', 'at', 'ed'], ['ty', 'po', 'gra', 'phy']], 9, 3, 6, 2, 3, False], ['eBooking', 'a hyphen-', 'ated ty-', 'pography', 'hyphen-', 'ated only', 'only', 'eBooking', 'hyphen-', 'ated ty-', 'pography']), ('regression: hyphenated head fit', [[['im', 'por', 'tant'], ['im', 'por', 'tant'], ['im', 'por', 'tant'], ['im', 'por', 'tant']], 15, 2, 6, 1, 3, True], ['important im-', 'portant impor-', 'tant important']), ('regression: hyphenated head fit', [[['on', 'ly'], ['in', 'ter', 'na', 'tion', 'al'], ['in', 'ter', 'na', 'tion', 'al'], ['of'], ['in', 'ter', 'na', 'tion', 'al'], ['hy', 'phen', 'at', 'ed'], ['rag', 'ged']], 14, 2, 7, 3, 3, False], ['only interna-', 'tional inter-', 'national of', 'international', 'hyphenated', 'ragged']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('control layout', [[['the'], ['rag', 'ged'], ['set'], ['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['rag', 'ged']], 10, 3, 5, 3, 2, True], ['the ragged', 'set Berlin', 'McDonald', 'ragged']), ('control layout', [[['Ber', 'lin'], ['Ber', 'lin'], ['the'], ['Mc', 'Don', 'ald']], 14, 5, 4, 3, 3, True], ['Berlin Berlin', 'the McDonald'])], [('regression: hyphenated head fit', [[['e', 'Book', 'ing'], ['on', 'ly'], ['im', 'por', 'tant'], ['im', 'por', 'tant'], ['hy', 'phen', 'at', 'ed'], ['im', 'por', 'tant'], ['e', 'Book', 'ing'], ['im', 'por', 'tant'], ['in', 'ter', 'na', 'tion', 'al']], 15, 2, 6, 1, 2, True], ['eBooking only', 'important im-', 'portant hyphen-', 'ated important', 'eBooking impor-', 'tant interna-', 'tional']), ('regression: hyphenated head fit', [[['Mc', 'Don', 'ald'], ['in', 'ter', 'na', 'tion', 'al'], ['the'], ['im', 'por', 'tant'], ['im', 'por', 'tant'], ['a']], 15, 4, 7, 1, 2, True], ['McDonald inter-', 'national the', 'important im-', 'portant a']), ('regression: hyphenated head fit', [[['im', 'por', 'tant'], ['e', 'Book', 'ing'], ['Mc', 'Don', 'ald'], ['a']], 15, 1, 4, 1, 3, True], ['important e-', 'Booking McDon-', 'ald a']), ('regression: hyphenated head fit', [[['set'], ['Mc', 'Don', 'ald'], ['ty', 'po', 'gra', 'phy'], ['ty', 'po', 'gra', 'phy'], ['Ber', 'lin'], ['a'], ['e', 'Book', 'ing'], ['im', 'por', 'tant']], 9, 1, 7, 1, 2, True], ['set Mc-', 'Donald', 'typogra-', 'phy typo-', 'graphy', 'Berlin a', 'eBooking', 'important']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('control layout', [[['hy', 'phen', 'at', 'ed'], ['hy', 'phen', 'at', 'ed'], ['in', 'ter', 'na', 'tion', 'al'], ['a'], ['im', 'por', 'tant'], ['the'], ['Ber', 'lin'], ['set'], ['a']], 13, 2, 6, 3, 2, False], ['hyphenated', 'hyphenated', 'international', 'a important', 'the Berlin', 'set a']), ('control layout', [[['hy', 'phen', 'at', 'ed'], ['e', 'Book', 'ing'], ['im', 'por', 'tant'], ['Mc', 'Don', 'ald'], ['hy', 'phen', 'at', 'ed'], ['set'], ['on', 'ly'], ['ty', 'po', 'gra', 'phy'], ['set'], ['Ber', 'lin']], 12, 4, 4, 3, 3, False], ['hyphenated', 'eBooking', 'important', 'McDonald', 'hyphenated', 'set only', 'typography', 'set Berlin'])], [('regression: hyphenated head fit', [[['Ber', 'lin'], ['rag', 'ged'], ['ty', 'po', 'gra', 'phy'], ['on', 'ly'], ['rag', 'ged'], ['hy', 'phen', 'at', 'ed'], ['set'], ['Ber', 'lin'], ['the']], 11, 3, 5, 2, 2, True], ['Berlin rag-', 'ged typo-', 'graphy only', 'ragged hy-', 'phenated', 'set Berlin', 'the']), ('regression: hyphenated head fit', [[['set'], ['e', 'Book', 'ing'], ['Ber', 'lin'], ['the'], ['ty', 'po', 'gra', 'phy'], ['hy', 'phen', 'at', 'ed'], ['a'], ['in', 'ter', 'na', 'tion', 'al']], 15, 1, 6, 2, 2, False], ['set eBooking', 'Berlin the ty-', 'pography hy-', 'phenated a in-', 'ternational']), ('regression: hyphenated head fit', [[['a'], ['Ber', 'lin'], ['im', 'por', 'tant'], ['ty', 'po', 'gra', 'phy'], ['e', 'Book', 'ing'], ['Ber', 'lin'], ['a'], ['im', 'por', 'tant']], 14, 5, 7, 2, 2, False], ['a Berlin im-', 'portant typo-', 'graphy eBook-', 'ing Berlin a', 'important']), ('regression: hyphenated head fit', [[['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['the'], ['e', 'Book', 'ing'], ['a'], ['e', 'Book', 'ing'], ['ty', 'po', 'gra', 'phy'], ['of'], ['the']], 9, 4, 7, 3, 3, True], ['Berlin', 'McDonald', 'the', 'eBooking', 'a eBook-', 'ing typo-', 'graphy of', 'the']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('control layout', [[['e', 'Book', 'ing'], ['Mc', 'Don', 'ald'], ['e', 'Book', 'ing'], ['the'], ['on', 'ly'], ['ty', 'po', 'gra', 'phy']], 11, 3, 4, 2, 3, True], ['eBooking', 'McDonald', 'eBooking', 'the only', 'typography']), ('control layout', [[['Mc', 'Don', 'ald'], ['on', 'ly'], ['hy', 'phen', 'at', 'ed'], ['Ber', 'lin'], ['the'], ['of']], 16, 3, 4, 2, 2, False], ['McDonald only', 'hyphenated', 'Berlin the of'])], [('regression: hyphenated head fit', [[['Mc', 'Don', 'ald'], ['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['e', 'Book', 'ing'], ['on', 'ly'], ['ty', 'po', 'gra', 'phy'], ['ty', 'po', 'gra', 'phy'], ['rag', 'ged'], ['ty', 'po', 'gra', 'phy']], 9, 4, 6, 2, 3, False], ['McDonald', 'Berlin', 'McDonald', 'eBooking', 'only ty-', 'pography', 'typogra-', 'phy rag-', 'ged typo-', 'graphy']), ('regression: hyphenated head fit', [[['of'], ['im', 'por', 'tant'], ['of'], ['on', 'ly'], ['hy', 'phen', 'at', 'ed'], ['the'], ['hy', 'phen', 'at', 'ed'], ['a']], 12, 4, 7, 3, 2, True], ['of important', 'of only', 'hyphenated', 'the hyphen-', 'ated a']), ('regression: hyphenated head fit', [[['Ber', 'lin'], ['on', 'ly'], ['in', 'ter', 'na', 'tion', 'al'], ['a'], ['on', 'ly'], ['ty', 'po', 'gra', 'phy'], ['ty', 'po', 'gra', 'phy'], ['Ber', 'lin']], 11, 4, 5, 1, 3, True], ['Berlin only', 'interna-', 'tional a', 'only typo-', 'graphy ty-', 'pography', 'Berlin']), ('regression: hyphenated head fit', [[['a'], ['hy', 'phen', 'at', 'ed'], ['e', 'Book', 'ing'], ['in', 'ter', 'na', 'tion', 'al'], ['the'], ['Ber', 'lin'], ['e', 'Book', 'ing'], ['hy', 'phen', 'at', 'ed'], ['a']], 8, 2, 7, 2, 3, False], ['a hy-', 'phenated', 'eBooking', 'interna-', 'tional', 'the', 'Berlin', 'eBooking', 'hyphen-', 'ated a']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('control layout', [[['Mc', 'Don', 'ald'], ['a'], ['Mc', 'Don', 'ald'], ['of']], 9, 3, 6, 3, 2, True], ['McDonald', 'a McDon-', 'ald of']), ('control layout', [[['in', 'ter', 'na', 'tion', 'al'], ['on', 'ly'], ['a'], ['Mc', 'Don', 'ald']], 10, 1, 6, 2, 3, False], ['interna-', 'tional', 'only a', 'McDonald'])], [('regression: hyphenated head fit', [[['Mc', 'Don', 'ald'], ['a'], ['of'], ['Mc', 'Don', 'ald'], ['rag', 'ged'], ['in', 'ter', 'na', 'tion', 'al'], ['im', 'por', 'tant'], ['hy', 'phen', 'at', 'ed'], ['set']], 12, 2, 4, 2, 2, False], ['McDonald a', 'of McDonald', 'ragged in-', 'ternational', 'important', 'hyphenated', 'set']), ('regression: hyphenated head fit', [[['hy', 'phen', 'at', 'ed'], ['e', 'Book', 'ing'], ['in', 'ter', 'na', 'tion', 'al'], ['rag', 'ged']], 10, 3, 5, 3, 3, True], ['hyphenated', 'eBooking', 'interna-', 'tional', 'ragged']), ('regression: hyphenated head fit', [[['on', 'ly'], ['im', 'por', 'tant'], ['Mc', 'Don', 'ald'], ['the'], ['Ber', 'lin'], ['ty', 'po', 'gra', 'phy'], ['in', 'ter', 'na', 'tion', 'al']], 15, 4, 5, 1, 2, True], ['only important', 'McDonald the', 'Berlin typogra-', 'phy interna-', 'tional']), ('regression: hyphenated head fit', [[['hy', 'phen', 'at', 'ed'], ['the'], ['Ber', 'lin'], ['of'], ['im', 'por', 'tant'], ['of'], ['a'], ['set']], 8, 1, 5, 1, 2, True], ['hyphen-', 'ated the', 'Berlin', 'of im-', 'portant', 'of a set']), ('capitalised word protected', [[['the'], ['Mc', 'Don', 'ald']], 10, 2, 4, 2, 2, False], ['the', 'McDonald']), ('zone exactly met', [[['the'], ['ty', 'po', 'gra', 'phy']], 10, 6, 4, 2, 2, False], ['the typo-', 'graphy']), ('control layout', [[['set'], ['ty', 'po', 'gra', 'phy'], ['Ber', 'lin'], ['Mc', 'Don', 'ald'], ['on', 'ly'], ['in', 'ter', 'na', 'tion', 'al'], ['e', 'Book', 'ing']], 13, 5, 7, 1, 2, True], ['set typogra-', 'phy Berlin', 'McDonald only', 'international', 'eBooking']), ('control layout', [[['set'], ['Ber', 'lin'], ['set'], ['a']], 14, 5, 5, 2, 2, True], ['set Berlin set', 'a'])]]\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-hyphenation-zone-hyphenated-head-fit","generated_at":"2026-09-29T14:49:52.159098+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 the hyphen when fitting the head.","root_cause":"The head fit test omits the hyphen glyph.","sha256":"0461c0f5d44af35149a4a8cfed298f27901e7e85fd7ba4c4d34396eb2599d4bd","title":"Ragged-right hyphenation zone: hyphenated head fit · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.233,"exit_code":1,"observations":[{"actual":["interna-","tional a","Berlin","McDonald","eBooking","set"],"check":"regression: hyphenated head fit","expected":["interna-","tional a","Berlin","McDonald","eBooking","set"],"passed":true},{"actual":["eBooking","a hyphen-","ated typo-","graphy","hyphen-","ated only","only","eBooking","hyphen-","ated typo-","graphy"],"check":"regression: hyphenated head fit","expected":["eBooking","a hyphen-","ated ty-","pography","hyphen-","ated only","only","eBooking","hyphen-","ated ty-","pography"],"passed":false},{"actual":["important impor-","tant important","important"],"check":"regression: hyphenated head fit","expected":["important im-","portant impor-","tant important"],"passed":false},{"actual":["only interna-","tional interna-","tional of","international","hyphenated","ragged"],"check":"regression: hyphenated head fit","expected":["only interna-","tional inter-","national of","international","hyphenated","ragged"],"passed":false},{"actual":["the","McDonald"],"check":"capitalised word protected","expected":["the","McDonald"],"passed":true},{"actual":["the typo-","graphy"],"check":"zone exactly met","expected":["the typo-","graphy"],"passed":true},{"actual":["the ragged","set Berlin","McDonald","ragged"],"check":"control layout","expected":["the ragged","set Berlin","McDonald","ragged"],"passed":true},{"actual":["Berlin Berlin","the McDonald"],"check":"control layout","expected":["Berlin Berlin","the McDonald"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: hyphenated head fit\", \"actual\": [\"interna-\", \"tional a\", \"Berlin\", \"McDonald\", \"eBooking\", \"set\"], \"expected\": [\"interna-\", \"tional a\", \"Berlin\", \"McDonald\", \"eBooking\", \"set\"], \"passed\": true}, {\"check\": \"regression: hyphenated head fit\", \"actual\": [\"eBooking\", \"a hyphen-\", \"ated typo-\", \"graphy\", \"hyphen-\", \"ated only\", \"only\", \"eBooking\", \"hyphen-\", \"ated typo-\", \"graphy\"], \"expected\": [\"eBooking\", \"a hyphen-\", \"ated ty-\", \"pography\", \"hyphen-\", \"ated only\", \"only\", \"eBooking\", \"hyphen-\", \"ated ty-\", \"pography\"], \"passed\": false}, {\"check\": \"regression: hyphenated head fit\", \"actual\": [\"important impor-\", \"tant important\", \"important\"], \"expected\": [\"important im-\", \"portant impor-\", \"tant important\"], \"passed\": false}, {\"check\": \"regression: hyphenated head fit\", \"actual\": [\"only interna-\", \"tional interna-\", \"tional of\", \"international\", \"hyphenated\", \"ragged\"], \"expected\": [\"only interna-\", \"tional inter-\", \"national of\", \"international\", \"hyphenated\", \"ragged\"], \"passed\": false}, {\"check\": \"capitalised word protected\", \"actual\": [\"the\", \"McDonald\"], \"expected\": [\"the\", \"McDonald\"], \"passed\": true}, {\"check\": \"zone exactly met\", \"actual\": [\"the typo-\", \"graphy\"], \"expected\": [\"the typo-\", \"graphy\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"the ragged\", \"set Berlin\", \"McDonald\", \"ragged\"], \"expected\": [\"the ragged\", \"set Berlin\", \"McDonald\", \"ragged\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"Berlin Berlin\", \"the McDonald\"], \"expected\": [\"Berlin Berlin\", \"the McDonald\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.46,"exit_code":1,"observations":[{"actual":["internation-","al a Berlin","McDonald","eBooking","set"],"check":"regression: hyphenated head fit","expected":["interna-","tional a","Berlin","McDonald","eBooking","set"],"passed":false},{"actual":["eBooking","a hyphen-","ated typo-","graphy","hyphen-","ated only","only","eBooking","hyphen-","ated typo-","graphy"],"check":"regression: hyphenated head fit","expected":["eBooking","a hyphen-","ated ty-","pography","hyphen-","ated only","only","eBooking","hyphen-","ated ty-","pography"],"passed":false},{"actual":["important impor-","tant important","important"],"check":"regression: hyphenated head fit","expected":["important im-","portant impor-","tant important"],"passed":false},{"actual":["only interna-","tional interna-","tional of","international","hyphenated","ragged"],"check":"regression: hyphenated head fit","expected":["only interna-","tional inter-","national of","international","hyphenated","ragged"],"passed":false},{"actual":["the","McDonald"],"check":"capitalised word protected","expected":["the","McDonald"],"passed":true},{"actual":["the typo-","graphy"],"check":"zone exactly met","expected":["the typo-","graphy"],"passed":true},{"actual":["the ragged","set Berlin","McDonald","ragged"],"check":"control layout","expected":["the ragged","set Berlin","McDonald","ragged"],"passed":true},{"actual":["Berlin Berlin","the McDonald"],"check":"control layout","expected":["Berlin Berlin","the McDonald"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: hyphenated head fit\", \"actual\": [\"internation-\", \"al a Berlin\", \"McDonald\", \"eBooking\", \"set\"], \"expected\": [\"interna-\", \"tional a\", \"Berlin\", \"McDonald\", \"eBooking\", \"set\"], \"passed\": false}, {\"check\": \"regression: hyphenated head fit\", \"actual\": [\"eBooking\", \"a hyphen-\", \"ated typo-\", \"graphy\", \"hyphen-\", \"ated only\", \"only\", \"eBooking\", \"hyphen-\", \"ated typo-\", \"graphy\"], \"expected\": [\"eBooking\", \"a hyphen-\", \"ated ty-\", \"pography\", \"hyphen-\", \"ated only\", \"only\", \"eBooking\", \"hyphen-\", \"ated ty-\", \"pography\"], \"passed\": false}, {\"check\": \"regression: hyphenated head fit\", \"actual\": [\"important impor-\", \"tant important\", \"important\"], \"expected\": [\"important im-\", \"portant impor-\", \"tant important\"], \"passed\": false}, {\"check\": \"regression: hyphenated head fit\", \"actual\": [\"only interna-\", \"tional interna-\", \"tional of\", \"international\", \"hyphenated\", \"ragged\"], \"expected\": [\"only interna-\", \"tional inter-\", \"national of\", \"international\", \"hyphenated\", \"ragged\"], \"passed\": false}, {\"check\": \"capitalised word protected\", \"actual\": [\"the\", \"McDonald\"], \"expected\": [\"the\", \"McDonald\"], \"passed\": true}, {\"check\": \"zone exactly met\", \"actual\": [\"the typo-\", \"graphy\"], \"expected\": [\"the typo-\", \"graphy\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"the ragged\", \"set Berlin\", \"McDonald\", \"ragged\"], \"expected\": [\"the ragged\", \"set Berlin\", \"McDonald\", \"ragged\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"Berlin Berlin\", \"the McDonald\"], \"expected\": [\"Berlin Berlin\", \"the McDonald\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.489,"exit_code":0,"observations":[{"actual":["interna-","tional a","Berlin","McDonald","eBooking","set"],"check":"regression: hyphenated head fit","expected":["interna-","tional a","Berlin","McDonald","eBooking","set"],"passed":true},{"actual":["eBooking","a hyphen-","ated ty-","pography","hyphen-","ated only","only","eBooking","hyphen-","ated ty-","pography"],"check":"regression: hyphenated head fit","expected":["eBooking","a hyphen-","ated ty-","pography","hyphen-","ated only","only","eBooking","hyphen-","ated ty-","pography"],"passed":true},{"actual":["important im-","portant impor-","tant important"],"check":"regression: hyphenated head fit","expected":["important im-","portant impor-","tant important"],"passed":true},{"actual":["only interna-","tional inter-","national of","international","hyphenated","ragged"],"check":"regression: hyphenated head fit","expected":["only interna-","tional inter-","national of","international","hyphenated","ragged"],"passed":true},{"actual":["the","McDonald"],"check":"capitalised word protected","expected":["the","McDonald"],"passed":true},{"actual":["the typo-","graphy"],"check":"zone exactly met","expected":["the typo-","graphy"],"passed":true},{"actual":["the ragged","set Berlin","McDonald","ragged"],"check":"control layout","expected":["the ragged","set Berlin","McDonald","ragged"],"passed":true},{"actual":["Berlin Berlin","the McDonald"],"check":"control layout","expected":["Berlin Berlin","the McDonald"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: hyphenated head fit\", \"actual\": [\"interna-\", \"tional a\", \"Berlin\", \"McDonald\", \"eBooking\", \"set\"], \"expected\": [\"interna-\", \"tional a\", \"Berlin\", \"McDonald\", \"eBooking\", \"set\"], \"passed\": true}, {\"check\": \"regression: hyphenated head fit\", \"actual\": [\"eBooking\", \"a hyphen-\", \"ated ty-\", \"pography\", \"hyphen-\", \"ated only\", \"only\", \"eBooking\", \"hyphen-\", \"ated ty-\", \"pography\"], \"expected\": [\"eBooking\", \"a hyphen-\", \"ated ty-\", \"pography\", \"hyphen-\", \"ated only\", \"only\", \"eBooking\", \"hyphen-\", \"ated ty-\", \"pography\"], \"passed\": true}, {\"check\": \"regression: hyphenated head fit\", \"actual\": [\"important im-\", \"portant impor-\", \"tant important\"], \"expected\": [\"important im-\", \"portant impor-\", \"tant important\"], \"passed\": true}, {\"check\": \"regression: hyphenated head fit\", \"actual\": [\"only interna-\", \"tional inter-\", \"national of\", \"international\", \"hyphenated\", \"ragged\"], \"expected\": [\"only interna-\", \"tional inter-\", \"national of\", \"international\", \"hyphenated\", \"ragged\"], \"passed\": true}, {\"check\": \"capitalised word protected\", \"actual\": [\"the\", \"McDonald\"], \"expected\": [\"the\", \"McDonald\"], \"passed\": true}, {\"check\": \"zone exactly met\", \"actual\": [\"the typo-\", \"graphy\"], \"expected\": [\"the typo-\", \"graphy\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"the ragged\", \"set Berlin\", \"McDonald\", \"ragged\"], \"expected\": [\"the ragged\", \"set Berlin\", \"McDonald\", \"ragged\"], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [\"Berlin Berlin\", \"the McDonald\"], \"expected\": [\"Berlin Berlin\", \"the McDonald\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}