{"abstract":"A 22-row edge picks 16 stitches instead of 17.","category":"Knitting and sewing pattern grading","checks":8,"contract":"Edges [kind, count]: vertical picks up 3 per 4 rows, diagonal 9 per 10 rows, each rounded half-up per edge; horizontal picks 1 per stitch; other kinds -> \"error: edge\". The rib needs a count of multiple*k + plus; adjust the total up to the next such count (unchanged if already valid). Return [raw_total, adjusted].","evaluation_group":"w2-knitting_and_sewing_pattern_grading-pick-up-stitches","failed_approach":"Rounding up adds a stitch whenever there is any fraction.","family":"w2-knitting_and_sewing_pattern_grading-pick-up-stitches-per-edge-rounding","id":"FA-97496","implementations":{"attempt":{"sha256":"fde5d8f6291dc29728bbad4b8665aa7449922d3ea4fa2874d3b09636757f8a10","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(edges, multiple, plus):\n    total = 0\n    for kind, n in edges:\n        if kind == 'vertical':\n            total += math.ceil(Fraction(3 * n, 4))\n        elif kind == 'horizontal':\n            total += n\n        elif kind == 'diagonal':\n            total += math.floor(Fraction(9 * n, 10) + Fraction(1, 2))\n        else:\n            return 'error: edge'\n    r = (total - plus) % multiple\n    adjusted = total if r == 0 else total + (multiple - r)\n    return [total, adjusted]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['front neck', [[['vertical', 40], ['horizontal', 22], ['vertical', 40]], 4, 2], [82, 82]],\n  ['already valid', [[['horizontal', 22]], 4, 2], [22, 22]],\n  ['diagonal edge', [[['diagonal', 13]], 2, 0], [12, 12]],\n  ['regression: per-edge rounding',\n   [[['vertical', 30], ['diagonal', 7], ['vertical', 30], ['diagonal', 7]], 4, 0], [58, 60]],\n  ['repair check: per-edge rounding', [[['vertical', 7], ['horizontal', 60], ['vertical', 22]], 6, 0],\n   [82, 84]],\n  ['generated control 1', [[['vertical', 20]], 1, 1], [15, 15]],\n  ['generated control 2', [[['horizontal', 30], ['vertical', 10]], 6, 3], [38, 39]],\n  ['generated control 3', [[['vertical', 20], ['diagonal', 18], ['vertical', 41]], 6, 0], [62, 66]]],\n [['already valid', [[['horizontal', 22]], 4, 2], [22, 22]],\n  ['diagonal edge', [[['diagonal', 13]], 2, 0], [12, 12]],\n  ['unknown edge', [[['curve', 10]], 2, 0], 'error: edge'],\n  ['regression: per-edge rounding', [[['vertical', 10], ['vertical', 7], ['vertical', 13]], 4, 2], [23, 26]],\n  ['repair check: per-edge rounding', [[['vertical', 18], ['vertical', 7], ['diagonal', 60]], 1, 1],\n   [73, 73]],\n  ['generated control 1', [[['horizontal', 13]], 1, 2], [13, 13]],\n  ['generated control 2', [[['vertical', 10], ['vertical', 10]], 4, 2], [16, 18]],\n  ['generated control 3', [[['diagonal', 22], ['vertical', 30], ['vertical', 22], ['vertical', 18]], 6, 0],\n   [74, 78]]],\n [['diagonal edge', [[['diagonal', 13]], 2, 0], [12, 12]],\n  ['unknown edge', [[['curve', 10]], 2, 0], 'error: edge'],\n  ['front neck', [[['vertical', 40], ['horizontal', 22], ['vertical', 40]], 4, 2], [82, 82]],\n  ['regression: per-edge rounding', [[['vertical', 30], ['vertical', 7]], 1, 0], [28, 28]],\n  ['repair check: per-edge rounding', [[['vertical', 7], ['horizontal', 13], ['horizontal', 41]], 1, 3],\n   [59, 59]],\n  ['generated control 1', [[['vertical', 41], ['diagonal', 41], ['vertical', 22], ['vertical', 10]], 4, 1],\n   [93, 93]],\n  ['generated control 2', [[['horizontal', 30], ['diagonal', 7], ['horizontal', 60], ['vertical', 41]], 6, 1],\n   [127, 127]],\n  ['generated control 3', [[['vertical', 18], ['diagonal', 41], ['vertical', 41], ['vertical', 22]], 6, 3],\n   [99, 99]]],\n [['unknown edge', [[['curve', 10]], 2, 0], 'error: edge'],\n  ['front neck', [[['vertical', 40], ['horizontal', 22], ['vertical', 40]], 4, 2], [82, 82]],\n  ['already valid', [[['horizontal', 22]], 4, 2], [22, 22]],\n  ['regression: per-edge rounding',\n   [[['vertical', 13], ['horizontal', 30], ['vertical', 18], ['vertical', 7]], 6, 2], [59, 62]],\n  ['repair check: per-edge rounding', [[['vertical', 20], ['vertical', 7]], 2, 0], [20, 20]],\n  ['generated control 1', [[['diagonal', 7]], 1, 1], [6, 6]],\n  ['generated control 2', [[['diagonal', 18], ['horizontal', 18]], 1, 3], [34, 34]],\n  ['generated control 3', [[['diagonal', 18]], 2, 1], [16, 17]]],\n [['front neck', [[['vertical', 40], ['horizontal', 22], ['vertical', 40]], 4, 2], [82, 82]],\n  ['already valid', [[['horizontal', 22]], 4, 2], [22, 22]],\n  ['diagonal edge', [[['diagonal', 13]], 2, 0], [12, 12]],\n  ['regression: per-edge rounding', [[['vertical', 30], ['diagonal', 7]], 4, 1], [29, 29]],\n  ['repair check: per-edge rounding', [[['vertical', 7], ['vertical', 18], ['vertical', 60]], 2, 2],\n   [64, 64]],\n  ['generated control 1',\n   [[['vertical', 22], ['diagonal', 18], ['horizontal', 41], ['horizontal', 10]], 2, 3], [84, 85]],\n  ['generated control 2', [[['vertical', 22]], 6, 2], [17, 20]],\n  ['generated control 3', [[['diagonal', 22], ['horizontal', 41], ['vertical', 22]], 4, 3], [78, 79]]]]\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":"623b70cea598772f614b03a7acc198f21aae44991c69a28245c89241bf90e30f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(edges, multiple, plus):\n    total = 0\n    for kind, n in edges:\n        if kind == 'vertical':\n            total += 3 * n // 4\n        elif kind == 'horizontal':\n            total += n\n        elif kind == 'diagonal':\n            total += math.floor(Fraction(9 * n, 10) + Fraction(1, 2))\n        else:\n            return 'error: edge'\n    r = (total - plus) % multiple\n    adjusted = total if r == 0 else total + (multiple - r)\n    return [total, adjusted]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['front neck', [[['vertical', 40], ['horizontal', 22], ['vertical', 40]], 4, 2], [82, 82]],\n  ['already valid', [[['horizontal', 22]], 4, 2], [22, 22]],\n  ['diagonal edge', [[['diagonal', 13]], 2, 0], [12, 12]],\n  ['regression: per-edge rounding',\n   [[['vertical', 30], ['diagonal', 7], ['vertical', 30], ['diagonal', 7]], 4, 0], [58, 60]],\n  ['repair check: per-edge rounding', [[['vertical', 7], ['horizontal', 60], ['vertical', 22]], 6, 0],\n   [82, 84]],\n  ['generated control 1', [[['vertical', 20]], 1, 1], [15, 15]],\n  ['generated control 2', [[['horizontal', 30], ['vertical', 10]], 6, 3], [38, 39]],\n  ['generated control 3', [[['vertical', 20], ['diagonal', 18], ['vertical', 41]], 6, 0], [62, 66]]],\n [['already valid', [[['horizontal', 22]], 4, 2], [22, 22]],\n  ['diagonal edge', [[['diagonal', 13]], 2, 0], [12, 12]],\n  ['unknown edge', [[['curve', 10]], 2, 0], 'error: edge'],\n  ['regression: per-edge rounding', [[['vertical', 10], ['vertical', 7], ['vertical', 13]], 4, 2], [23, 26]],\n  ['repair check: per-edge rounding', [[['vertical', 18], ['vertical', 7], ['diagonal', 60]], 1, 1],\n   [73, 73]],\n  ['generated control 1', [[['horizontal', 13]], 1, 2], [13, 13]],\n  ['generated control 2', [[['vertical', 10], ['vertical', 10]], 4, 2], [16, 18]],\n  ['generated control 3', [[['diagonal', 22], ['vertical', 30], ['vertical', 22], ['vertical', 18]], 6, 0],\n   [74, 78]]],\n [['diagonal edge', [[['diagonal', 13]], 2, 0], [12, 12]],\n  ['unknown edge', [[['curve', 10]], 2, 0], 'error: edge'],\n  ['front neck', [[['vertical', 40], ['horizontal', 22], ['vertical', 40]], 4, 2], [82, 82]],\n  ['regression: per-edge rounding', [[['vertical', 30], ['vertical', 7]], 1, 0], [28, 28]],\n  ['repair check: per-edge rounding', [[['vertical', 7], ['horizontal', 13], ['horizontal', 41]], 1, 3],\n   [59, 59]],\n  ['generated control 1', [[['vertical', 41], ['diagonal', 41], ['vertical', 22], ['vertical', 10]], 4, 1],\n   [93, 93]],\n  ['generated control 2', [[['horizontal', 30], ['diagonal', 7], ['horizontal', 60], ['vertical', 41]], 6, 1],\n   [127, 127]],\n  ['generated control 3', [[['vertical', 18], ['diagonal', 41], ['vertical', 41], ['vertical', 22]], 6, 3],\n   [99, 99]]],\n [['unknown edge', [[['curve', 10]], 2, 0], 'error: edge'],\n  ['front neck', [[['vertical', 40], ['horizontal', 22], ['vertical', 40]], 4, 2], [82, 82]],\n  ['already valid', [[['horizontal', 22]], 4, 2], [22, 22]],\n  ['regression: per-edge rounding',\n   [[['vertical', 13], ['horizontal', 30], ['vertical', 18], ['vertical', 7]], 6, 2], [59, 62]],\n  ['repair check: per-edge rounding', [[['vertical', 20], ['vertical', 7]], 2, 0], [20, 20]],\n  ['generated control 1', [[['diagonal', 7]], 1, 1], [6, 6]],\n  ['generated control 2', [[['diagonal', 18], ['horizontal', 18]], 1, 3], [34, 34]],\n  ['generated control 3', [[['diagonal', 18]], 2, 1], [16, 17]]],\n [['front neck', [[['vertical', 40], ['horizontal', 22], ['vertical', 40]], 4, 2], [82, 82]],\n  ['already valid', [[['horizontal', 22]], 4, 2], [22, 22]],\n  ['diagonal edge', [[['diagonal', 13]], 2, 0], [12, 12]],\n  ['regression: per-edge rounding', [[['vertical', 30], ['diagonal', 7]], 4, 1], [29, 29]],\n  ['repair check: per-edge rounding', [[['vertical', 7], ['vertical', 18], ['vertical', 60]], 2, 2],\n   [64, 64]],\n  ['generated control 1',\n   [[['vertical', 22], ['diagonal', 18], ['horizontal', 41], ['horizontal', 10]], 2, 3], [84, 85]],\n  ['generated control 2', [[['vertical', 22]], 6, 2], [17, 20]],\n  ['generated control 3', [[['diagonal', 22], ['horizontal', 41], ['vertical', 22]], 4, 3], [78, 79]]]]\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":"be024df7b42ad714f7c6076bb8dada618d2222ad5619b5c1896a622bdd972fd5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(edges, multiple, plus):\n    total = 0\n    for kind, n in edges:\n        if kind == 'vertical':\n            total += math.floor(Fraction(3 * n, 4) + Fraction(1, 2))\n        elif kind == 'horizontal':\n            total += n\n        elif kind == 'diagonal':\n            total += math.floor(Fraction(9 * n, 10) + Fraction(1, 2))\n        else:\n            return 'error: edge'\n    r = (total - plus) % multiple\n    adjusted = total if r == 0 else total + (multiple - r)\n    return [total, adjusted]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['front neck', [[['vertical', 40], ['horizontal', 22], ['vertical', 40]], 4, 2], [82, 82]],\n  ['already valid', [[['horizontal', 22]], 4, 2], [22, 22]],\n  ['diagonal edge', [[['diagonal', 13]], 2, 0], [12, 12]],\n  ['regression: per-edge rounding',\n   [[['vertical', 30], ['diagonal', 7], ['vertical', 30], ['diagonal', 7]], 4, 0], [58, 60]],\n  ['repair check: per-edge rounding', [[['vertical', 7], ['horizontal', 60], ['vertical', 22]], 6, 0],\n   [82, 84]],\n  ['generated control 1', [[['vertical', 20]], 1, 1], [15, 15]],\n  ['generated control 2', [[['horizontal', 30], ['vertical', 10]], 6, 3], [38, 39]],\n  ['generated control 3', [[['vertical', 20], ['diagonal', 18], ['vertical', 41]], 6, 0], [62, 66]]],\n [['already valid', [[['horizontal', 22]], 4, 2], [22, 22]],\n  ['diagonal edge', [[['diagonal', 13]], 2, 0], [12, 12]],\n  ['unknown edge', [[['curve', 10]], 2, 0], 'error: edge'],\n  ['regression: per-edge rounding', [[['vertical', 10], ['vertical', 7], ['vertical', 13]], 4, 2], [23, 26]],\n  ['repair check: per-edge rounding', [[['vertical', 18], ['vertical', 7], ['diagonal', 60]], 1, 1],\n   [73, 73]],\n  ['generated control 1', [[['horizontal', 13]], 1, 2], [13, 13]],\n  ['generated control 2', [[['vertical', 10], ['vertical', 10]], 4, 2], [16, 18]],\n  ['generated control 3', [[['diagonal', 22], ['vertical', 30], ['vertical', 22], ['vertical', 18]], 6, 0],\n   [74, 78]]],\n [['diagonal edge', [[['diagonal', 13]], 2, 0], [12, 12]],\n  ['unknown edge', [[['curve', 10]], 2, 0], 'error: edge'],\n  ['front neck', [[['vertical', 40], ['horizontal', 22], ['vertical', 40]], 4, 2], [82, 82]],\n  ['regression: per-edge rounding', [[['vertical', 30], ['vertical', 7]], 1, 0], [28, 28]],\n  ['repair check: per-edge rounding', [[['vertical', 7], ['horizontal', 13], ['horizontal', 41]], 1, 3],\n   [59, 59]],\n  ['generated control 1', [[['vertical', 41], ['diagonal', 41], ['vertical', 22], ['vertical', 10]], 4, 1],\n   [93, 93]],\n  ['generated control 2', [[['horizontal', 30], ['diagonal', 7], ['horizontal', 60], ['vertical', 41]], 6, 1],\n   [127, 127]],\n  ['generated control 3', [[['vertical', 18], ['diagonal', 41], ['vertical', 41], ['vertical', 22]], 6, 3],\n   [99, 99]]],\n [['unknown edge', [[['curve', 10]], 2, 0], 'error: edge'],\n  ['front neck', [[['vertical', 40], ['horizontal', 22], ['vertical', 40]], 4, 2], [82, 82]],\n  ['already valid', [[['horizontal', 22]], 4, 2], [22, 22]],\n  ['regression: per-edge rounding',\n   [[['vertical', 13], ['horizontal', 30], ['vertical', 18], ['vertical', 7]], 6, 2], [59, 62]],\n  ['repair check: per-edge rounding', [[['vertical', 20], ['vertical', 7]], 2, 0], [20, 20]],\n  ['generated control 1', [[['diagonal', 7]], 1, 1], [6, 6]],\n  ['generated control 2', [[['diagonal', 18], ['horizontal', 18]], 1, 3], [34, 34]],\n  ['generated control 3', [[['diagonal', 18]], 2, 1], [16, 17]]],\n [['front neck', [[['vertical', 40], ['horizontal', 22], ['vertical', 40]], 4, 2], [82, 82]],\n  ['already valid', [[['horizontal', 22]], 4, 2], [22, 22]],\n  ['diagonal edge', [[['diagonal', 13]], 2, 0], [12, 12]],\n  ['regression: per-edge rounding', [[['vertical', 30], ['diagonal', 7]], 4, 1], [29, 29]],\n  ['repair check: per-edge rounding', [[['vertical', 7], ['vertical', 18], ['vertical', 60]], 2, 2],\n   [64, 64]],\n  ['generated control 1',\n   [[['vertical', 22], ['diagonal', 18], ['horizontal', 41], ['horizontal', 10]], 2, 3], [84, 85]],\n  ['generated control 2', [[['vertical', 22]], 6, 2], [17, 20]],\n  ['generated control 3', [[['diagonal', 22], ['horizontal', 41], ['vertical', 22]], 4, 3], [78, 79]]]]\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 contract stated in full here; it is a bounded teaching model, not an authoritative reference or standards implementation. 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-knitting_and_sewing_pattern_grading-pick-up-stitches-per-edge-rounding","generated_at":"2026-09-29T14:52:32.793740+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Neckbands and button bands pick up stitches at edge ratios and must fit the rib repeat.","repair":"Round each vertical edge half-up.","root_cause":"Vertical pick-ups truncate instead of rounding half-up per edge.","sha256":"93ac6721b9edb9003cec2ce3c0b1557c8ced0e05889eaa77dfe62f1882303d9c","title":"Neckband pick-up counter: per-edge rounding · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.626,"exit_code":1,"observations":[{"actual":[82,82],"check":"front neck","expected":[82,82],"passed":true},{"actual":[22,22],"check":"already valid","expected":[22,22],"passed":true},{"actual":[12,12],"check":"diagonal edge","expected":[12,12],"passed":true},{"actual":[58,60],"check":"regression: per-edge rounding","expected":[58,60],"passed":true},{"actual":[83,84],"check":"repair check: per-edge rounding","expected":[82,84],"passed":false},{"actual":[15,15],"check":"generated control 1","expected":[15,15],"passed":true},{"actual":[38,39],"check":"generated control 2","expected":[38,39],"passed":true},{"actual":[62,66],"check":"generated control 3","expected":[62,66],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"front neck\", \"actual\": [82, 82], \"expected\": [82, 82], \"passed\": true}, {\"check\": \"already valid\", \"actual\": [22, 22], \"expected\": [22, 22], \"passed\": true}, {\"check\": \"diagonal edge\", \"actual\": [12, 12], \"expected\": [12, 12], \"passed\": true}, {\"check\": \"regression: per-edge rounding\", \"actual\": [58, 60], \"expected\": [58, 60], \"passed\": true}, {\"check\": \"repair check: per-edge rounding\", \"actual\": [83, 84], \"expected\": [82, 84], \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": [15, 15], \"expected\": [15, 15], \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": [38, 39], \"expected\": [38, 39], \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": [62, 66], \"expected\": [62, 66], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.035,"exit_code":1,"observations":[{"actual":[82,82],"check":"front neck","expected":[82,82],"passed":true},{"actual":[22,22],"check":"already valid","expected":[22,22],"passed":true},{"actual":[12,12],"check":"diagonal edge","expected":[12,12],"passed":true},{"actual":[56,56],"check":"regression: per-edge rounding","expected":[58,60],"passed":false},{"actual":[81,84],"check":"repair check: per-edge rounding","expected":[82,84],"passed":false},{"actual":[15,15],"check":"generated control 1","expected":[15,15],"passed":true},{"actual":[37,39],"check":"generated control 2","expected":[38,39],"passed":false},{"actual":[61,66],"check":"generated control 3","expected":[62,66],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"front neck\", \"actual\": [82, 82], \"expected\": [82, 82], \"passed\": true}, {\"check\": \"already valid\", \"actual\": [22, 22], \"expected\": [22, 22], \"passed\": true}, {\"check\": \"diagonal edge\", \"actual\": [12, 12], \"expected\": [12, 12], \"passed\": true}, {\"check\": \"regression: per-edge rounding\", \"actual\": [56, 56], \"expected\": [58, 60], \"passed\": false}, {\"check\": \"repair check: per-edge rounding\", \"actual\": [81, 84], \"expected\": [82, 84], \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": [15, 15], \"expected\": [15, 15], \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": [37, 39], \"expected\": [38, 39], \"passed\": false}, {\"check\": \"generated control 3\", \"actual\": [61, 66], \"expected\": [62, 66], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.462,"exit_code":0,"observations":[{"actual":[82,82],"check":"front neck","expected":[82,82],"passed":true},{"actual":[22,22],"check":"already valid","expected":[22,22],"passed":true},{"actual":[12,12],"check":"diagonal edge","expected":[12,12],"passed":true},{"actual":[58,60],"check":"regression: per-edge rounding","expected":[58,60],"passed":true},{"actual":[82,84],"check":"repair check: per-edge rounding","expected":[82,84],"passed":true},{"actual":[15,15],"check":"generated control 1","expected":[15,15],"passed":true},{"actual":[38,39],"check":"generated control 2","expected":[38,39],"passed":true},{"actual":[62,66],"check":"generated control 3","expected":[62,66],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"front neck\", \"actual\": [82, 82], \"expected\": [82, 82], \"passed\": true}, {\"check\": \"already valid\", \"actual\": [22, 22], \"expected\": [22, 22], \"passed\": true}, {\"check\": \"diagonal edge\", \"actual\": [12, 12], \"expected\": [12, 12], \"passed\": true}, {\"check\": \"regression: per-edge rounding\", \"actual\": [58, 60], \"expected\": [58, 60], \"passed\": true}, {\"check\": \"repair check: per-edge rounding\", \"actual\": [82, 84], \"expected\": [82, 84], \"passed\": true}, {\"check\": \"generated control 1\", \"actual\": [15, 15], \"expected\": [15, 15], \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": [38, 39], \"expected\": [38, 39], \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": [62, 66], \"expected\": [62, 66], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}