{"abstract":"Socks come out 10% larger than the foot and sag.","category":"Knitting and sewing pattern grading","checks":8,"contract":"Leg stitches = foot_circ*(1 - neg_ease/100)*gauge/10 rounded to the nearest multiple of `multiple` (half-up). Heel flap = half the stitches; flap rows = heel stitches; gusset pick-up per side = flap rows/2 + 1. Return {cast_on, heel_sts, flap_rows, pickup}.","evaluation_group":"w2-knitting_and_sewing_pattern_grading-sock-fit","failed_approach":"Dividing by 10 applies ten times the ease.","family":"w2-knitting_and_sewing_pattern_grading-sock-fit-negative-ease-direction","id":"FA-97821","implementations":{"attempt":{"sha256":"e7ccd8dfe8ff4991eacf656d16e7245b227b0877ca87aa84d1f18cfb2f232a24","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(foot_circ, sts_per_10cm, neg_ease_pct, multiple):\n    raw = Fraction(str(foot_circ)) * (1 - Fraction(str(neg_ease_pct)) / 10) * Fraction(sts_per_10cm) / 10\n    cast = multiple * math.floor(raw / multiple + Fraction(1, 2))\n    heel = cast // 2\n    flap = heel\n    pickup = flap // 2 + 1\n    return {'cast_on': cast, 'heel_sts': heel, 'flap_rows': flap, 'pickup': pickup}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['regression: negative ease direction', [20, '28', 12.5, 3],\n   {'cast_on': 48, 'flap_rows': 24, 'heel_sts': 24, 'pickup': 13}],\n  ['repair check: negative ease direction', [24, '28', 12.5, 3],\n   {'cast_on': 60, 'flap_rows': 30, 'heel_sts': 30, 'pickup': 16}],\n  ['generated control 1', [25.5, '30', 12.5, 1],\n   {'cast_on': 67, 'flap_rows': 33, 'heel_sts': 33, 'pickup': 17}],\n  ['generated control 2', [24, '28', 5, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['generated control 3', [22, '28', 10, 4], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}]],\n [['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['regression: negative ease direction', [21.5, '36', 5, 2],\n   {'cast_on': 74, 'flap_rows': 37, 'heel_sts': 37, 'pickup': 19}],\n  ['repair check: negative ease direction', [24, '30', 10, 1],\n   {'cast_on': 65, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['generated control 1', [20, '30', 0, 1], {'cast_on': 60, 'flap_rows': 30, 'heel_sts': 30, 'pickup': 16}],\n  ['generated control 2', [23, '32', 12.5, 3],\n   {'cast_on': 63, 'flap_rows': 31, 'heel_sts': 31, 'pickup': 16}],\n  ['generated control 3', [25.5, '36', 0, 2],\n   {'cast_on': 92, 'flap_rows': 46, 'heel_sts': 46, 'pickup': 24}]],\n [['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['regression: negative ease direction', [24, '30', 10, 2],\n   {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['repair check: negative ease direction', [20, '28', 12.5, 4],\n   {'cast_on': 48, 'flap_rows': 24, 'heel_sts': 24, 'pickup': 13}],\n  ['generated control 1', [23, '28', 0, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['generated control 2', [23, '28', 12.5, 2],\n   {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['generated control 3', [20, '30', 5, 4], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}]],\n [['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['regression: negative ease direction', [24, '28', 5, 3],\n   {'cast_on': 63, 'flap_rows': 31, 'heel_sts': 31, 'pickup': 16}],\n  ['repair check: negative ease direction', [23, '30', 12.5, 3],\n   {'cast_on': 60, 'flap_rows': 30, 'heel_sts': 30, 'pickup': 16}],\n  ['generated control 1', [24, '30', 0, 4], {'cast_on': 72, 'flap_rows': 36, 'heel_sts': 36, 'pickup': 19}],\n  ['generated control 2', [24, '30', 12.5, 2],\n   {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['generated control 3', [23, '28', 0, 3], {'cast_on': 63, 'flap_rows': 31, 'heel_sts': 31, 'pickup': 16}]],\n [['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['regression: negative ease direction', [20, '30', 10, 1],\n   {'cast_on': 54, 'flap_rows': 27, 'heel_sts': 27, 'pickup': 14}],\n  ['repair check: negative ease direction', [22, '30', 10, 3],\n   {'cast_on': 60, 'flap_rows': 30, 'heel_sts': 30, 'pickup': 16}],\n  ['generated control 1', [23, '36', 5, 1], {'cast_on': 79, 'flap_rows': 39, 'heel_sts': 39, 'pickup': 20}],\n  ['generated control 2', [23, '28', 10, 3], {'cast_on': 57, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['generated control 3', [21.5, '32', 5, 1],\n   {'cast_on': 65, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}]]]\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":"2d3afaaced0968a94e4c5e24eaad9689e0100b3c37ac82207d63b1e9bbc2e53f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(foot_circ, sts_per_10cm, neg_ease_pct, multiple):\n    raw = Fraction(str(foot_circ)) * (1 + Fraction(str(neg_ease_pct)) / 100) * Fraction(sts_per_10cm) / 10\n    cast = multiple * math.floor(raw / multiple + Fraction(1, 2))\n    heel = cast // 2\n    flap = heel\n    pickup = flap // 2 + 1\n    return {'cast_on': cast, 'heel_sts': heel, 'flap_rows': flap, 'pickup': pickup}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['regression: negative ease direction', [20, '28', 12.5, 3],\n   {'cast_on': 48, 'flap_rows': 24, 'heel_sts': 24, 'pickup': 13}],\n  ['repair check: negative ease direction', [24, '28', 12.5, 3],\n   {'cast_on': 60, 'flap_rows': 30, 'heel_sts': 30, 'pickup': 16}],\n  ['generated control 1', [25.5, '30', 12.5, 1],\n   {'cast_on': 67, 'flap_rows': 33, 'heel_sts': 33, 'pickup': 17}],\n  ['generated control 2', [24, '28', 5, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['generated control 3', [22, '28', 10, 4], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}]],\n [['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['regression: negative ease direction', [21.5, '36', 5, 2],\n   {'cast_on': 74, 'flap_rows': 37, 'heel_sts': 37, 'pickup': 19}],\n  ['repair check: negative ease direction', [24, '30', 10, 1],\n   {'cast_on': 65, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['generated control 1', [20, '30', 0, 1], {'cast_on': 60, 'flap_rows': 30, 'heel_sts': 30, 'pickup': 16}],\n  ['generated control 2', [23, '32', 12.5, 3],\n   {'cast_on': 63, 'flap_rows': 31, 'heel_sts': 31, 'pickup': 16}],\n  ['generated control 3', [25.5, '36', 0, 2],\n   {'cast_on': 92, 'flap_rows': 46, 'heel_sts': 46, 'pickup': 24}]],\n [['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['regression: negative ease direction', [24, '30', 10, 2],\n   {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['repair check: negative ease direction', [20, '28', 12.5, 4],\n   {'cast_on': 48, 'flap_rows': 24, 'heel_sts': 24, 'pickup': 13}],\n  ['generated control 1', [23, '28', 0, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['generated control 2', [23, '28', 12.5, 2],\n   {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['generated control 3', [20, '30', 5, 4], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}]],\n [['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['regression: negative ease direction', [24, '28', 5, 3],\n   {'cast_on': 63, 'flap_rows': 31, 'heel_sts': 31, 'pickup': 16}],\n  ['repair check: negative ease direction', [23, '30', 12.5, 3],\n   {'cast_on': 60, 'flap_rows': 30, 'heel_sts': 30, 'pickup': 16}],\n  ['generated control 1', [24, '30', 0, 4], {'cast_on': 72, 'flap_rows': 36, 'heel_sts': 36, 'pickup': 19}],\n  ['generated control 2', [24, '30', 12.5, 2],\n   {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['generated control 3', [23, '28', 0, 3], {'cast_on': 63, 'flap_rows': 31, 'heel_sts': 31, 'pickup': 16}]],\n [['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['regression: negative ease direction', [20, '30', 10, 1],\n   {'cast_on': 54, 'flap_rows': 27, 'heel_sts': 27, 'pickup': 14}],\n  ['repair check: negative ease direction', [22, '30', 10, 3],\n   {'cast_on': 60, 'flap_rows': 30, 'heel_sts': 30, 'pickup': 16}],\n  ['generated control 1', [23, '36', 5, 1], {'cast_on': 79, 'flap_rows': 39, 'heel_sts': 39, 'pickup': 20}],\n  ['generated control 2', [23, '28', 10, 3], {'cast_on': 57, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['generated control 3', [21.5, '32', 5, 1],\n   {'cast_on': 65, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}]]]\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":"21499b6bbf28d661a15adf4d403d1ce3ba458e3581831522f8dd996a925ecdba","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(foot_circ, sts_per_10cm, neg_ease_pct, multiple):\n    raw = Fraction(str(foot_circ)) * (1 - Fraction(str(neg_ease_pct)) / 100) * Fraction(sts_per_10cm) / 10\n    cast = multiple * math.floor(raw / multiple + Fraction(1, 2))\n    heel = cast // 2\n    flap = heel\n    pickup = flap // 2 + 1\n    return {'cast_on': cast, 'heel_sts': heel, 'flap_rows': flap, 'pickup': pickup}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['regression: negative ease direction', [20, '28', 12.5, 3],\n   {'cast_on': 48, 'flap_rows': 24, 'heel_sts': 24, 'pickup': 13}],\n  ['repair check: negative ease direction', [24, '28', 12.5, 3],\n   {'cast_on': 60, 'flap_rows': 30, 'heel_sts': 30, 'pickup': 16}],\n  ['generated control 1', [25.5, '30', 12.5, 1],\n   {'cast_on': 67, 'flap_rows': 33, 'heel_sts': 33, 'pickup': 17}],\n  ['generated control 2', [24, '28', 5, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['generated control 3', [22, '28', 10, 4], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}]],\n [['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['regression: negative ease direction', [21.5, '36', 5, 2],\n   {'cast_on': 74, 'flap_rows': 37, 'heel_sts': 37, 'pickup': 19}],\n  ['repair check: negative ease direction', [24, '30', 10, 1],\n   {'cast_on': 65, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['generated control 1', [20, '30', 0, 1], {'cast_on': 60, 'flap_rows': 30, 'heel_sts': 30, 'pickup': 16}],\n  ['generated control 2', [23, '32', 12.5, 3],\n   {'cast_on': 63, 'flap_rows': 31, 'heel_sts': 31, 'pickup': 16}],\n  ['generated control 3', [25.5, '36', 0, 2],\n   {'cast_on': 92, 'flap_rows': 46, 'heel_sts': 46, 'pickup': 24}]],\n [['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['regression: negative ease direction', [24, '30', 10, 2],\n   {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['repair check: negative ease direction', [20, '28', 12.5, 4],\n   {'cast_on': 48, 'flap_rows': 24, 'heel_sts': 24, 'pickup': 13}],\n  ['generated control 1', [23, '28', 0, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['generated control 2', [23, '28', 12.5, 2],\n   {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['generated control 3', [20, '30', 5, 4], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}]],\n [['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['regression: negative ease direction', [24, '28', 5, 3],\n   {'cast_on': 63, 'flap_rows': 31, 'heel_sts': 31, 'pickup': 16}],\n  ['repair check: negative ease direction', [23, '30', 12.5, 3],\n   {'cast_on': 60, 'flap_rows': 30, 'heel_sts': 30, 'pickup': 16}],\n  ['generated control 1', [24, '30', 0, 4], {'cast_on': 72, 'flap_rows': 36, 'heel_sts': 36, 'pickup': 19}],\n  ['generated control 2', [24, '30', 12.5, 2],\n   {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['generated control 3', [23, '28', 0, 3], {'cast_on': 63, 'flap_rows': 31, 'heel_sts': 31, 'pickup': 16}]],\n [['no ease', [20, '28', 0, 2], {'cast_on': 56, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['wide foot', [25.5, '36', 12.5, 4], {'cast_on': 80, 'flap_rows': 40, 'heel_sts': 40, 'pickup': 21}],\n  ['standard sock', [22, '32', 10, 4], {'cast_on': 64, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}],\n  ['regression: negative ease direction', [20, '30', 10, 1],\n   {'cast_on': 54, 'flap_rows': 27, 'heel_sts': 27, 'pickup': 14}],\n  ['repair check: negative ease direction', [22, '30', 10, 3],\n   {'cast_on': 60, 'flap_rows': 30, 'heel_sts': 30, 'pickup': 16}],\n  ['generated control 1', [23, '36', 5, 1], {'cast_on': 79, 'flap_rows': 39, 'heel_sts': 39, 'pickup': 20}],\n  ['generated control 2', [23, '28', 10, 3], {'cast_on': 57, 'flap_rows': 28, 'heel_sts': 28, 'pickup': 15}],\n  ['generated control 3', [21.5, '32', 5, 1],\n   {'cast_on': 65, 'flap_rows': 32, 'heel_sts': 32, 'pickup': 17}]]]\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-sock-fit-negative-ease-direction","generated_at":"2026-09-29T14:52:35.922546+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Sock patterns size with negative ease and derive heel flap and gusset counts.","repair":"Multiply by (1 - ease/100).","root_cause":"Negative ease is added instead of removed.","sha256":"960e90e9a707b7d0d37f6682cfc020c1c30c5349319cf3a8c02b46870af14abf","title":"Top-down sock fit calculator: negative ease direction · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.235,"exit_code":1,"observations":[{"actual":{"cast_on":0,"flap_rows":0,"heel_sts":0,"pickup":1},"check":"standard sock","expected":{"cast_on":64,"flap_rows":32,"heel_sts":32,"pickup":17},"passed":false},{"actual":{"cast_on":56,"flap_rows":28,"heel_sts":28,"pickup":15},"check":"no ease","expected":{"cast_on":56,"flap_rows":28,"heel_sts":28,"pickup":15},"passed":true},{"actual":{"cast_on":-24,"flap_rows":-12,"heel_sts":-12,"pickup":-5},"check":"wide foot","expected":{"cast_on":80,"flap_rows":40,"heel_sts":40,"pickup":21},"passed":false},{"actual":{"cast_on":-15,"flap_rows":-8,"heel_sts":-8,"pickup":-3},"check":"regression: negative ease direction","expected":{"cast_on":48,"flap_rows":24,"heel_sts":24,"pickup":13},"passed":false},{"actual":{"cast_on":-18,"flap_rows":-9,"heel_sts":-9,"pickup":-4},"check":"repair check: negative ease direction","expected":{"cast_on":60,"flap_rows":30,"heel_sts":30,"pickup":16},"passed":false},{"actual":{"cast_on":-19,"flap_rows":-10,"heel_sts":-10,"pickup":-4},"check":"generated control 1","expected":{"cast_on":67,"flap_rows":33,"heel_sts":33,"pickup":17},"passed":false},{"actual":{"cast_on":32,"flap_rows":16,"heel_sts":16,"pickup":9},"check":"generated control 2","expected":{"cast_on":64,"flap_rows":32,"heel_sts":32,"pickup":17},"passed":false},{"actual":{"cast_on":0,"flap_rows":0,"heel_sts":0,"pickup":1},"check":"generated control 3","expected":{"cast_on":56,"flap_rows":28,"heel_sts":28,"pickup":15},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"standard sock\", \"actual\": {\"cast_on\": 0, \"heel_sts\": 0, \"flap_rows\": 0, \"pickup\": 1}, \"expected\": {\"cast_on\": 64, \"flap_rows\": 32, \"heel_sts\": 32, \"pickup\": 17}, \"passed\": false}, {\"check\": \"no ease\", \"actual\": {\"cast_on\": 56, \"heel_sts\": 28, \"flap_rows\": 28, \"pickup\": 15}, \"expected\": {\"cast_on\": 56, \"flap_rows\": 28, \"heel_sts\": 28, \"pickup\": 15}, \"passed\": true}, {\"check\": \"wide foot\", \"actual\": {\"cast_on\": -24, \"heel_sts\": -12, \"flap_rows\": -12, \"pickup\": -5}, \"expected\": {\"cast_on\": 80, \"flap_rows\": 40, \"heel_sts\": 40, \"pickup\": 21}, \"passed\": false}, {\"check\": \"regression: negative ease direction\", \"actual\": {\"cast_on\": -15, \"heel_sts\": -8, \"flap_rows\": -8, \"pickup\": -3}, \"expected\": {\"cast_on\": 48, \"flap_rows\": 24, \"heel_sts\": 24, \"pickup\": 13}, \"passed\": false}, {\"check\": \"repair check: negative ease direction\", \"actual\": {\"cast_on\": -18, \"heel_sts\": -9, \"flap_rows\": -9, \"pickup\": -4}, \"expected\": {\"cast_on\": 60, \"flap_rows\": 30, \"heel_sts\": 30, \"pickup\": 16}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": {\"cast_on\": -19, \"heel_sts\": -10, \"flap_rows\": -10, \"pickup\": -4}, \"expected\": {\"cast_on\": 67, \"flap_rows\": 33, \"heel_sts\": 33, \"pickup\": 17}, \"passed\": false}, {\"check\": \"generated control 2\", \"actual\": {\"cast_on\": 32, \"heel_sts\": 16, \"flap_rows\": 16, \"pickup\": 9}, \"expected\": {\"cast_on\": 64, \"flap_rows\": 32, \"heel_sts\": 32, \"pickup\": 17}, \"passed\": false}, {\"check\": \"generated control 3\", \"actual\": {\"cast_on\": 0, \"heel_sts\": 0, \"flap_rows\": 0, \"pickup\": 1}, \"expected\": {\"cast_on\": 56, \"flap_rows\": 28, \"heel_sts\": 28, \"pickup\": 15}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.223,"exit_code":1,"observations":[{"actual":{"cast_on":76,"flap_rows":38,"heel_sts":38,"pickup":20},"check":"standard sock","expected":{"cast_on":64,"flap_rows":32,"heel_sts":32,"pickup":17},"passed":false},{"actual":{"cast_on":56,"flap_rows":28,"heel_sts":28,"pickup":15},"check":"no ease","expected":{"cast_on":56,"flap_rows":28,"heel_sts":28,"pickup":15},"passed":true},{"actual":{"cast_on":104,"flap_rows":52,"heel_sts":52,"pickup":27},"check":"wide foot","expected":{"cast_on":80,"flap_rows":40,"heel_sts":40,"pickup":21},"passed":false},{"actual":{"cast_on":63,"flap_rows":31,"heel_sts":31,"pickup":16},"check":"regression: negative ease direction","expected":{"cast_on":48,"flap_rows":24,"heel_sts":24,"pickup":13},"passed":false},{"actual":{"cast_on":75,"flap_rows":37,"heel_sts":37,"pickup":19},"check":"repair check: negative ease direction","expected":{"cast_on":60,"flap_rows":30,"heel_sts":30,"pickup":16},"passed":false},{"actual":{"cast_on":86,"flap_rows":43,"heel_sts":43,"pickup":22},"check":"generated control 1","expected":{"cast_on":67,"flap_rows":33,"heel_sts":33,"pickup":17},"passed":false},{"actual":{"cast_on":72,"flap_rows":36,"heel_sts":36,"pickup":19},"check":"generated control 2","expected":{"cast_on":64,"flap_rows":32,"heel_sts":32,"pickup":17},"passed":false},{"actual":{"cast_on":68,"flap_rows":34,"heel_sts":34,"pickup":18},"check":"generated control 3","expected":{"cast_on":56,"flap_rows":28,"heel_sts":28,"pickup":15},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"standard sock\", \"actual\": {\"cast_on\": 76, \"heel_sts\": 38, \"flap_rows\": 38, \"pickup\": 20}, \"expected\": {\"cast_on\": 64, \"flap_rows\": 32, \"heel_sts\": 32, \"pickup\": 17}, \"passed\": false}, {\"check\": \"no ease\", \"actual\": {\"cast_on\": 56, \"heel_sts\": 28, \"flap_rows\": 28, \"pickup\": 15}, \"expected\": {\"cast_on\": 56, \"flap_rows\": 28, \"heel_sts\": 28, \"pickup\": 15}, \"passed\": true}, {\"check\": \"wide foot\", \"actual\": {\"cast_on\": 104, \"heel_sts\": 52, \"flap_rows\": 52, \"pickup\": 27}, \"expected\": {\"cast_on\": 80, \"flap_rows\": 40, \"heel_sts\": 40, \"pickup\": 21}, \"passed\": false}, {\"check\": \"regression: negative ease direction\", \"actual\": {\"cast_on\": 63, \"heel_sts\": 31, \"flap_rows\": 31, \"pickup\": 16}, \"expected\": {\"cast_on\": 48, \"flap_rows\": 24, \"heel_sts\": 24, \"pickup\": 13}, \"passed\": false}, {\"check\": \"repair check: negative ease direction\", \"actual\": {\"cast_on\": 75, \"heel_sts\": 37, \"flap_rows\": 37, \"pickup\": 19}, \"expected\": {\"cast_on\": 60, \"flap_rows\": 30, \"heel_sts\": 30, \"pickup\": 16}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": {\"cast_on\": 86, \"heel_sts\": 43, \"flap_rows\": 43, \"pickup\": 22}, \"expected\": {\"cast_on\": 67, \"flap_rows\": 33, \"heel_sts\": 33, \"pickup\": 17}, \"passed\": false}, {\"check\": \"generated control 2\", \"actual\": {\"cast_on\": 72, \"heel_sts\": 36, \"flap_rows\": 36, \"pickup\": 19}, \"expected\": {\"cast_on\": 64, \"flap_rows\": 32, \"heel_sts\": 32, \"pickup\": 17}, \"passed\": false}, {\"check\": \"generated control 3\", \"actual\": {\"cast_on\": 68, \"heel_sts\": 34, \"flap_rows\": 34, \"pickup\": 18}, \"expected\": {\"cast_on\": 56, \"flap_rows\": 28, \"heel_sts\": 28, \"pickup\": 15}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.695,"exit_code":0,"observations":[{"actual":{"cast_on":64,"flap_rows":32,"heel_sts":32,"pickup":17},"check":"standard sock","expected":{"cast_on":64,"flap_rows":32,"heel_sts":32,"pickup":17},"passed":true},{"actual":{"cast_on":56,"flap_rows":28,"heel_sts":28,"pickup":15},"check":"no ease","expected":{"cast_on":56,"flap_rows":28,"heel_sts":28,"pickup":15},"passed":true},{"actual":{"cast_on":80,"flap_rows":40,"heel_sts":40,"pickup":21},"check":"wide foot","expected":{"cast_on":80,"flap_rows":40,"heel_sts":40,"pickup":21},"passed":true},{"actual":{"cast_on":48,"flap_rows":24,"heel_sts":24,"pickup":13},"check":"regression: negative ease direction","expected":{"cast_on":48,"flap_rows":24,"heel_sts":24,"pickup":13},"passed":true},{"actual":{"cast_on":60,"flap_rows":30,"heel_sts":30,"pickup":16},"check":"repair check: negative ease direction","expected":{"cast_on":60,"flap_rows":30,"heel_sts":30,"pickup":16},"passed":true},{"actual":{"cast_on":67,"flap_rows":33,"heel_sts":33,"pickup":17},"check":"generated control 1","expected":{"cast_on":67,"flap_rows":33,"heel_sts":33,"pickup":17},"passed":true},{"actual":{"cast_on":64,"flap_rows":32,"heel_sts":32,"pickup":17},"check":"generated control 2","expected":{"cast_on":64,"flap_rows":32,"heel_sts":32,"pickup":17},"passed":true},{"actual":{"cast_on":56,"flap_rows":28,"heel_sts":28,"pickup":15},"check":"generated control 3","expected":{"cast_on":56,"flap_rows":28,"heel_sts":28,"pickup":15},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"standard sock\", \"actual\": {\"cast_on\": 64, \"heel_sts\": 32, \"flap_rows\": 32, \"pickup\": 17}, \"expected\": {\"cast_on\": 64, \"flap_rows\": 32, \"heel_sts\": 32, \"pickup\": 17}, \"passed\": true}, {\"check\": \"no ease\", \"actual\": {\"cast_on\": 56, \"heel_sts\": 28, \"flap_rows\": 28, \"pickup\": 15}, \"expected\": {\"cast_on\": 56, \"flap_rows\": 28, \"heel_sts\": 28, \"pickup\": 15}, \"passed\": true}, {\"check\": \"wide foot\", \"actual\": {\"cast_on\": 80, \"heel_sts\": 40, \"flap_rows\": 40, \"pickup\": 21}, \"expected\": {\"cast_on\": 80, \"flap_rows\": 40, \"heel_sts\": 40, \"pickup\": 21}, \"passed\": true}, {\"check\": \"regression: negative ease direction\", \"actual\": {\"cast_on\": 48, \"heel_sts\": 24, \"flap_rows\": 24, \"pickup\": 13}, \"expected\": {\"cast_on\": 48, \"flap_rows\": 24, \"heel_sts\": 24, \"pickup\": 13}, \"passed\": true}, {\"check\": \"repair check: negative ease direction\", \"actual\": {\"cast_on\": 60, \"heel_sts\": 30, \"flap_rows\": 30, \"pickup\": 16}, \"expected\": {\"cast_on\": 60, \"flap_rows\": 30, \"heel_sts\": 30, \"pickup\": 16}, \"passed\": true}, {\"check\": \"generated control 1\", \"actual\": {\"cast_on\": 67, \"heel_sts\": 33, \"flap_rows\": 33, \"pickup\": 17}, \"expected\": {\"cast_on\": 67, \"flap_rows\": 33, \"heel_sts\": 33, \"pickup\": 17}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"cast_on\": 64, \"heel_sts\": 32, \"flap_rows\": 32, \"pickup\": 17}, \"expected\": {\"cast_on\": 64, \"flap_rows\": 32, \"heel_sts\": 32, \"pickup\": 17}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"cast_on\": 56, \"heel_sts\": 28, \"flap_rows\": 28, \"pickup\": 15}, \"expected\": {\"cast_on\": 56, \"flap_rows\": 28, \"heel_sts\": 28, \"pickup\": 15}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}