{"abstract":"Extra spacing units cluster on the left side of the line.","category":"Typography line breaking","checks":8,"contract":"Input [word widths, target width, is_last, natural space, min space, max space]. Last lines and single-word lines are set ragged with natural spaces. Otherwise distribute target-sum(words) over the gaps: equal share with the remainder units added to the rightmost gaps; a share below min space is [\"overfull\"]; if any gap would exceed max space fall back to ragged. Return word x positions.","evaluation_group":"w2-typography-line-breaking-justify-spaces","failed_approach":"Using > instead of >= shifts the remainder one gap too far right and loses a unit.","family":"w2-typography-line-breaking-justify-spaces-remainder-placement","id":"FA-80071","implementations":{"attempt":{"sha256":"9af26c2d0adc6834006f2f08e20c4250de86643c533a1098a2225822ff86403f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, target, is_last, sp, lo, hi = x\n    n = len(words)\n    gaps = n - 1\n    def natural():\n        pos, xx = [], 0\n        for w in words:\n            pos.append(xx)\n            xx += w + sp\n        return pos\n    if is_last or gaps == 0:\n        return natural()\n    space = target - sum(words)\n    per, rem = divmod(space, gaps)\n    if per < lo:\n        return ['overfull']\n    if per + (1 if rem else 0) > hi:\n        return natural()\n    pos, xx = [], 0\n    for k, w in enumerate(words):\n        pos.append(xx)\n        if k < gaps:\n            xx += w + per + (1 if k > gaps - rem else 0)\n    return pos\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: remainder placement', [[7, 2, 8, 4, 4], 46, False, 2, 2, 6], [0, 12, 19, 32, 42]), ('regression: remainder placement', [[6, 4, 4, 7, 3, 5], 38, False, 3, 1, 6], [0, 7, 13, 19, 28, 33]), ('regression: remainder placement', [[8, 9, 2, 3, 5], 46, False, 2, 1, 5], [0, 12, 26, 33, 41]), ('regression: remainder placement', [[8, 9, 7, 2, 9, 4], 53, False, 3, 1, 7], [0, 10, 22, 32, 37, 49]), ('exactly minimum share', [[3, 3, 3], 11, False, 2, 1, 4], [0, 4, 8]), ('remainder goes to right gaps', [[3, 4, 5, 2], 20, False, 2, 1, 4], [0, 5, 11, 18]), ('control layout', [[2, 9, 6, 3], 32, True, 3, 2, 5], [0, 5, 17, 26]), ('control layout', [[8, 3, 3, 2], 22, False, 3, 1, 4], [0, 10, 15, 20])], [('regression: remainder placement', [[2, 7, 5], 25, False, 2, 2, 6], [0, 7, 20]), ('regression: remainder placement', [[6, 8, 5], 24, False, 3, 1, 4], [0, 8, 19]), ('regression: remainder placement', [[3, 2, 5, 8], 31, False, 3, 2, 5], [0, 7, 13, 23]), ('regression: remainder placement', [[5, 9, 8, 2, 7, 4], 58, False, 3, 1, 7], [0, 9, 22, 35, 42, 54]), ('remainder goes to right gaps', [[3, 4, 5, 2], 20, False, 2, 1, 4], [0, 5, 11, 18]), ('single word line', [[7], 20, False, 2, 1, 4], [0]), ('control layout', [[2, 7, 7], 18, False, 2, 2, 3], ['overfull']), ('control layout', [[9, 8, 3, 8], 40, False, 2, 1, 3], [0, 11, 21, 26])], [('regression: remainder placement', [[2, 4, 6], 25, False, 3, 2, 7], [0, 8, 19]), ('regression: remainder placement', [[9, 8, 8, 9], 41, False, 2, 1, 4], [0, 11, 21, 32]), ('regression: remainder placement', [[4, 9, 9], 29, False, 2, 2, 4], [0, 7, 20]), ('regression: remainder placement', [[8, 7, 2, 8, 4, 4], 56, False, 3, 2, 7], [0, 12, 23, 30, 43, 52]), ('single word line', [[7], 20, False, 2, 1, 4], [0]), ('exactly minimum share', [[3, 3, 3], 11, False, 2, 1, 4], [0, 4, 8]), ('last line ragged', [[3, 4, 5], 20, True, 2, 1, 6], [0, 5, 11]), ('control layout', [[7, 9], 21, False, 3, 3, 7], [0, 12])], [('regression: remainder placement', [[5, 5, 4, 8, 7, 9], 51, False, 3, 1, 5], [0, 7, 14, 21, 32, 42]), ('regression: remainder placement', [[8, 7, 2, 8, 4, 4], 56, False, 3, 2, 7], [0, 12, 23, 30, 43, 52]), ('regression: remainder placement', [[8, 9, 3, 7, 9, 8], 51, False, 2, 1, 5], [0, 9, 19, 23, 32, 43]), ('regression: remainder placement', [[6, 3, 2], 14, False, 2, 1, 5], [0, 7, 12]), ('remainder goes to right gaps', [[3, 4, 5, 2], 20, False, 2, 1, 4], [0, 5, 11, 18]), ('exactly minimum share', [[3, 3, 3], 11, False, 2, 1, 4], [0, 4, 8]), ('control layout', [[2, 6, 8, 6, 6, 9], 75, False, 2, 1, 6], [0, 4, 12, 22, 30, 38]), ('control layout', [[9, 3], 15, False, 2, 2, 5], [0, 12])], [('regression: remainder placement', [[7, 3, 6, 6, 7], 36, False, 2, 1, 6], [0, 8, 13, 21, 29]), ('regression: remainder placement', [[3, 9, 4, 9, 4, 4], 44, False, 2, 2, 3], [0, 5, 16, 22, 33, 40]), ('regression: remainder placement', [[8, 8, 5, 6], 34, False, 2, 2, 5], [0, 10, 20, 28]), ('regression: remainder placement', [[8, 9, 2, 3, 5], 46, False, 2, 1, 5], [0, 12, 26, 33, 41]), ('remainder goes to right gaps', [[3, 4, 5, 2], 20, False, 2, 1, 4], [0, 5, 11, 18]), ('single word line', [[7], 20, False, 2, 1, 4], [0]), ('control layout', [[6, 3, 9, 8, 2], 48, False, 3, 3, 7], [0, 11, 19, 33, 46]), ('control layout', [[7, 2, 9, 2, 8], 29, False, 3, 3, 4], ['overfull'])]]\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":"5cdfc7d4ce457dded518e2fcf92334ba17fb831606723c1fe20c75460d4e244d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, target, is_last, sp, lo, hi = x\n    n = len(words)\n    gaps = n - 1\n    def natural():\n        pos, xx = [], 0\n        for w in words:\n            pos.append(xx)\n            xx += w + sp\n        return pos\n    if is_last or gaps == 0:\n        return natural()\n    space = target - sum(words)\n    per, rem = divmod(space, gaps)\n    if per < lo:\n        return ['overfull']\n    if per + (1 if rem else 0) > hi:\n        return natural()\n    pos, xx = [], 0\n    for k, w in enumerate(words):\n        pos.append(xx)\n        if k < gaps:\n            xx += w + per + (1 if k < rem else 0)\n    return pos\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: remainder placement', [[7, 2, 8, 4, 4], 46, False, 2, 2, 6], [0, 12, 19, 32, 42]), ('regression: remainder placement', [[6, 4, 4, 7, 3, 5], 38, False, 3, 1, 6], [0, 7, 13, 19, 28, 33]), ('regression: remainder placement', [[8, 9, 2, 3, 5], 46, False, 2, 1, 5], [0, 12, 26, 33, 41]), ('regression: remainder placement', [[8, 9, 7, 2, 9, 4], 53, False, 3, 1, 7], [0, 10, 22, 32, 37, 49]), ('exactly minimum share', [[3, 3, 3], 11, False, 2, 1, 4], [0, 4, 8]), ('remainder goes to right gaps', [[3, 4, 5, 2], 20, False, 2, 1, 4], [0, 5, 11, 18]), ('control layout', [[2, 9, 6, 3], 32, True, 3, 2, 5], [0, 5, 17, 26]), ('control layout', [[8, 3, 3, 2], 22, False, 3, 1, 4], [0, 10, 15, 20])], [('regression: remainder placement', [[2, 7, 5], 25, False, 2, 2, 6], [0, 7, 20]), ('regression: remainder placement', [[6, 8, 5], 24, False, 3, 1, 4], [0, 8, 19]), ('regression: remainder placement', [[3, 2, 5, 8], 31, False, 3, 2, 5], [0, 7, 13, 23]), ('regression: remainder placement', [[5, 9, 8, 2, 7, 4], 58, False, 3, 1, 7], [0, 9, 22, 35, 42, 54]), ('remainder goes to right gaps', [[3, 4, 5, 2], 20, False, 2, 1, 4], [0, 5, 11, 18]), ('single word line', [[7], 20, False, 2, 1, 4], [0]), ('control layout', [[2, 7, 7], 18, False, 2, 2, 3], ['overfull']), ('control layout', [[9, 8, 3, 8], 40, False, 2, 1, 3], [0, 11, 21, 26])], [('regression: remainder placement', [[2, 4, 6], 25, False, 3, 2, 7], [0, 8, 19]), ('regression: remainder placement', [[9, 8, 8, 9], 41, False, 2, 1, 4], [0, 11, 21, 32]), ('regression: remainder placement', [[4, 9, 9], 29, False, 2, 2, 4], [0, 7, 20]), ('regression: remainder placement', [[8, 7, 2, 8, 4, 4], 56, False, 3, 2, 7], [0, 12, 23, 30, 43, 52]), ('single word line', [[7], 20, False, 2, 1, 4], [0]), ('exactly minimum share', [[3, 3, 3], 11, False, 2, 1, 4], [0, 4, 8]), ('last line ragged', [[3, 4, 5], 20, True, 2, 1, 6], [0, 5, 11]), ('control layout', [[7, 9], 21, False, 3, 3, 7], [0, 12])], [('regression: remainder placement', [[5, 5, 4, 8, 7, 9], 51, False, 3, 1, 5], [0, 7, 14, 21, 32, 42]), ('regression: remainder placement', [[8, 7, 2, 8, 4, 4], 56, False, 3, 2, 7], [0, 12, 23, 30, 43, 52]), ('regression: remainder placement', [[8, 9, 3, 7, 9, 8], 51, False, 2, 1, 5], [0, 9, 19, 23, 32, 43]), ('regression: remainder placement', [[6, 3, 2], 14, False, 2, 1, 5], [0, 7, 12]), ('remainder goes to right gaps', [[3, 4, 5, 2], 20, False, 2, 1, 4], [0, 5, 11, 18]), ('exactly minimum share', [[3, 3, 3], 11, False, 2, 1, 4], [0, 4, 8]), ('control layout', [[2, 6, 8, 6, 6, 9], 75, False, 2, 1, 6], [0, 4, 12, 22, 30, 38]), ('control layout', [[9, 3], 15, False, 2, 2, 5], [0, 12])], [('regression: remainder placement', [[7, 3, 6, 6, 7], 36, False, 2, 1, 6], [0, 8, 13, 21, 29]), ('regression: remainder placement', [[3, 9, 4, 9, 4, 4], 44, False, 2, 2, 3], [0, 5, 16, 22, 33, 40]), ('regression: remainder placement', [[8, 8, 5, 6], 34, False, 2, 2, 5], [0, 10, 20, 28]), ('regression: remainder placement', [[8, 9, 2, 3, 5], 46, False, 2, 1, 5], [0, 12, 26, 33, 41]), ('remainder goes to right gaps', [[3, 4, 5, 2], 20, False, 2, 1, 4], [0, 5, 11, 18]), ('single word line', [[7], 20, False, 2, 1, 4], [0]), ('control layout', [[6, 3, 9, 8, 2], 48, False, 3, 3, 7], [0, 11, 19, 33, 46]), ('control layout', [[7, 2, 9, 2, 8], 29, False, 3, 3, 4], ['overfull'])]]\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":"c3b492e194998dc91126d6077acbfd44639eb514295bccf585598f60a03fabe1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, target, is_last, sp, lo, hi = x\n    n = len(words)\n    gaps = n - 1\n    def natural():\n        pos, xx = [], 0\n        for w in words:\n            pos.append(xx)\n            xx += w + sp\n        return pos\n    if is_last or gaps == 0:\n        return natural()\n    space = target - sum(words)\n    per, rem = divmod(space, gaps)\n    if per < lo:\n        return ['overfull']\n    if per + (1 if rem else 0) > hi:\n        return natural()\n    pos, xx = [], 0\n    for k, w in enumerate(words):\n        pos.append(xx)\n        if k < gaps:\n            xx += w + per + (1 if k >= gaps - rem else 0)\n    return pos\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: remainder placement', [[7, 2, 8, 4, 4], 46, False, 2, 2, 6], [0, 12, 19, 32, 42]), ('regression: remainder placement', [[6, 4, 4, 7, 3, 5], 38, False, 3, 1, 6], [0, 7, 13, 19, 28, 33]), ('regression: remainder placement', [[8, 9, 2, 3, 5], 46, False, 2, 1, 5], [0, 12, 26, 33, 41]), ('regression: remainder placement', [[8, 9, 7, 2, 9, 4], 53, False, 3, 1, 7], [0, 10, 22, 32, 37, 49]), ('exactly minimum share', [[3, 3, 3], 11, False, 2, 1, 4], [0, 4, 8]), ('remainder goes to right gaps', [[3, 4, 5, 2], 20, False, 2, 1, 4], [0, 5, 11, 18]), ('control layout', [[2, 9, 6, 3], 32, True, 3, 2, 5], [0, 5, 17, 26]), ('control layout', [[8, 3, 3, 2], 22, False, 3, 1, 4], [0, 10, 15, 20])], [('regression: remainder placement', [[2, 7, 5], 25, False, 2, 2, 6], [0, 7, 20]), ('regression: remainder placement', [[6, 8, 5], 24, False, 3, 1, 4], [0, 8, 19]), ('regression: remainder placement', [[3, 2, 5, 8], 31, False, 3, 2, 5], [0, 7, 13, 23]), ('regression: remainder placement', [[5, 9, 8, 2, 7, 4], 58, False, 3, 1, 7], [0, 9, 22, 35, 42, 54]), ('remainder goes to right gaps', [[3, 4, 5, 2], 20, False, 2, 1, 4], [0, 5, 11, 18]), ('single word line', [[7], 20, False, 2, 1, 4], [0]), ('control layout', [[2, 7, 7], 18, False, 2, 2, 3], ['overfull']), ('control layout', [[9, 8, 3, 8], 40, False, 2, 1, 3], [0, 11, 21, 26])], [('regression: remainder placement', [[2, 4, 6], 25, False, 3, 2, 7], [0, 8, 19]), ('regression: remainder placement', [[9, 8, 8, 9], 41, False, 2, 1, 4], [0, 11, 21, 32]), ('regression: remainder placement', [[4, 9, 9], 29, False, 2, 2, 4], [0, 7, 20]), ('regression: remainder placement', [[8, 7, 2, 8, 4, 4], 56, False, 3, 2, 7], [0, 12, 23, 30, 43, 52]), ('single word line', [[7], 20, False, 2, 1, 4], [0]), ('exactly minimum share', [[3, 3, 3], 11, False, 2, 1, 4], [0, 4, 8]), ('last line ragged', [[3, 4, 5], 20, True, 2, 1, 6], [0, 5, 11]), ('control layout', [[7, 9], 21, False, 3, 3, 7], [0, 12])], [('regression: remainder placement', [[5, 5, 4, 8, 7, 9], 51, False, 3, 1, 5], [0, 7, 14, 21, 32, 42]), ('regression: remainder placement', [[8, 7, 2, 8, 4, 4], 56, False, 3, 2, 7], [0, 12, 23, 30, 43, 52]), ('regression: remainder placement', [[8, 9, 3, 7, 9, 8], 51, False, 2, 1, 5], [0, 9, 19, 23, 32, 43]), ('regression: remainder placement', [[6, 3, 2], 14, False, 2, 1, 5], [0, 7, 12]), ('remainder goes to right gaps', [[3, 4, 5, 2], 20, False, 2, 1, 4], [0, 5, 11, 18]), ('exactly minimum share', [[3, 3, 3], 11, False, 2, 1, 4], [0, 4, 8]), ('control layout', [[2, 6, 8, 6, 6, 9], 75, False, 2, 1, 6], [0, 4, 12, 22, 30, 38]), ('control layout', [[9, 3], 15, False, 2, 2, 5], [0, 12])], [('regression: remainder placement', [[7, 3, 6, 6, 7], 36, False, 2, 1, 6], [0, 8, 13, 21, 29]), ('regression: remainder placement', [[3, 9, 4, 9, 4, 4], 44, False, 2, 2, 3], [0, 5, 16, 22, 33, 40]), ('regression: remainder placement', [[8, 8, 5, 6], 34, False, 2, 2, 5], [0, 10, 20, 28]), ('regression: remainder placement', [[8, 9, 2, 3, 5], 46, False, 2, 1, 5], [0, 12, 26, 33, 41]), ('remainder goes to right gaps', [[3, 4, 5, 2], 20, False, 2, 1, 4], [0, 5, 11, 18]), ('single word line', [[7], 20, False, 2, 1, 4], [0]), ('control layout', [[6, 3, 9, 8, 2], 48, False, 3, 3, 7], [0, 11, 19, 33, 46]), ('control layout', [[7, 2, 9, 2, 8], 29, False, 3, 3, 4], ['overfull'])]]\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-justify-spaces-remainder-placement","generated_at":"2026-09-29T14:49:50.337651+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":"Give the remainder units to the rightmost gaps.","root_cause":"Remainder units are given to the leftmost gaps.","sha256":"65515c64ad49a170d9aee4b16fc5558c6f61a856969ce6cd4bca51e88770c2db","title":"Justified interword spacing: remainder placement · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.118,"exit_code":1,"observations":[{"actual":[0,12,19,32,41],"check":"regression: remainder placement","expected":[0,12,19,32,42],"passed":false},{"actual":[0,7,12,18,27,32],"check":"regression: remainder placement","expected":[0,7,13,19,28,33],"passed":false},{"actual":[0,12,25,32,40],"check":"regression: remainder placement","expected":[0,12,26,33,41],"passed":false},{"actual":[0,10,21,31,36,48],"check":"regression: remainder placement","expected":[0,10,22,32,37,49],"passed":false},{"actual":[0,4,8],"check":"exactly minimum share","expected":[0,4,8],"passed":true},{"actual":[0,5,11,18],"check":"remainder goes to right gaps","expected":[0,5,11,18],"passed":true},{"actual":[0,5,17,26],"check":"control layout","expected":[0,5,17,26],"passed":true},{"actual":[0,10,15,20],"check":"control layout","expected":[0,10,15,20],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: remainder placement\", \"actual\": [0, 12, 19, 32, 41], \"expected\": [0, 12, 19, 32, 42], \"passed\": false}, {\"check\": \"regression: remainder placement\", \"actual\": [0, 7, 12, 18, 27, 32], \"expected\": [0, 7, 13, 19, 28, 33], \"passed\": false}, {\"check\": \"regression: remainder placement\", \"actual\": [0, 12, 25, 32, 40], \"expected\": [0, 12, 26, 33, 41], \"passed\": false}, {\"check\": \"regression: remainder placement\", \"actual\": [0, 10, 21, 31, 36, 48], \"expected\": [0, 10, 22, 32, 37, 49], \"passed\": false}, {\"check\": \"exactly minimum share\", \"actual\": [0, 4, 8], \"expected\": [0, 4, 8], \"passed\": true}, {\"check\": \"remainder goes to right gaps\", \"actual\": [0, 5, 11, 18], \"expected\": [0, 5, 11, 18], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [0, 5, 17, 26], \"expected\": [0, 5, 17, 26], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [0, 10, 15, 20], \"expected\": [0, 10, 15, 20], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.935,"exit_code":1,"observations":[{"actual":[0,13,20,33,42],"check":"regression: remainder placement","expected":[0,12,19,32,42],"passed":false},{"actual":[0,8,14,20,29,33],"check":"regression: remainder placement","expected":[0,7,13,19,28,33],"passed":false},{"actual":[0,13,27,34,41],"check":"regression: remainder placement","expected":[0,12,26,33,41],"passed":false},{"actual":[0,11,23,33,38,49],"check":"regression: remainder placement","expected":[0,10,22,32,37,49],"passed":false},{"actual":[0,4,8],"check":"exactly minimum share","expected":[0,4,8],"passed":true},{"actual":[0,5,11,18],"check":"remainder goes to right gaps","expected":[0,5,11,18],"passed":true},{"actual":[0,5,17,26],"check":"control layout","expected":[0,5,17,26],"passed":true},{"actual":[0,10,15,20],"check":"control layout","expected":[0,10,15,20],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: remainder placement\", \"actual\": [0, 13, 20, 33, 42], \"expected\": [0, 12, 19, 32, 42], \"passed\": false}, {\"check\": \"regression: remainder placement\", \"actual\": [0, 8, 14, 20, 29, 33], \"expected\": [0, 7, 13, 19, 28, 33], \"passed\": false}, {\"check\": \"regression: remainder placement\", \"actual\": [0, 13, 27, 34, 41], \"expected\": [0, 12, 26, 33, 41], \"passed\": false}, {\"check\": \"regression: remainder placement\", \"actual\": [0, 11, 23, 33, 38, 49], \"expected\": [0, 10, 22, 32, 37, 49], \"passed\": false}, {\"check\": \"exactly minimum share\", \"actual\": [0, 4, 8], \"expected\": [0, 4, 8], \"passed\": true}, {\"check\": \"remainder goes to right gaps\", \"actual\": [0, 5, 11, 18], \"expected\": [0, 5, 11, 18], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [0, 5, 17, 26], \"expected\": [0, 5, 17, 26], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [0, 10, 15, 20], \"expected\": [0, 10, 15, 20], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.995,"exit_code":0,"observations":[{"actual":[0,12,19,32,42],"check":"regression: remainder placement","expected":[0,12,19,32,42],"passed":true},{"actual":[0,7,13,19,28,33],"check":"regression: remainder placement","expected":[0,7,13,19,28,33],"passed":true},{"actual":[0,12,26,33,41],"check":"regression: remainder placement","expected":[0,12,26,33,41],"passed":true},{"actual":[0,10,22,32,37,49],"check":"regression: remainder placement","expected":[0,10,22,32,37,49],"passed":true},{"actual":[0,4,8],"check":"exactly minimum share","expected":[0,4,8],"passed":true},{"actual":[0,5,11,18],"check":"remainder goes to right gaps","expected":[0,5,11,18],"passed":true},{"actual":[0,5,17,26],"check":"control layout","expected":[0,5,17,26],"passed":true},{"actual":[0,10,15,20],"check":"control layout","expected":[0,10,15,20],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: remainder placement\", \"actual\": [0, 12, 19, 32, 42], \"expected\": [0, 12, 19, 32, 42], \"passed\": true}, {\"check\": \"regression: remainder placement\", \"actual\": [0, 7, 13, 19, 28, 33], \"expected\": [0, 7, 13, 19, 28, 33], \"passed\": true}, {\"check\": \"regression: remainder placement\", \"actual\": [0, 12, 26, 33, 41], \"expected\": [0, 12, 26, 33, 41], \"passed\": true}, {\"check\": \"regression: remainder placement\", \"actual\": [0, 10, 22, 32, 37, 49], \"expected\": [0, 10, 22, 32, 37, 49], \"passed\": true}, {\"check\": \"exactly minimum share\", \"actual\": [0, 4, 8], \"expected\": [0, 4, 8], \"passed\": true}, {\"check\": \"remainder goes to right gaps\", \"actual\": [0, 5, 11, 18], \"expected\": [0, 5, 11, 18], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [0, 5, 17, 26], \"expected\": [0, 5, 17, 26], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [0, 10, 15, 20], \"expected\": [0, 10, 15, 20], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}