{"abstract":"Fifteen decreases in ten rows produce \"every 0 rows\" instructions.","category":"Knitting and sewing pattern grading","checks":8,"contract":"Top-down sleeve from upper_sts to cuff_sts, decreasing 2 stitches per decrease row within rows rows. Errors: cuff wider (\"error: cuff wider than upper arm\"), odd difference (\"error: odd difference\"), rows fewer than decrease rows (\"error: not enough rows\"). pairs = difference/2; a = rows // pairs; y = rows - a*pairs decreases every a+1 rows, x = pairs-y every a rows. Return [[a, x], [a+1, y]] omitting a zero count; [] for no decreases.","evaluation_group":"w2-knitting_and_sewing_pattern_grading-sleeve-taper","failed_approach":"Rejecting only zero rows still accepts impossible short tapers.","family":"w2-knitting_and_sewing_pattern_grading-sleeve-taper-row-budget-check","id":"FA-97406","implementations":{"attempt":{"sha256":"a98df89059343014f8dba4b97ee4d3d3eccc233afb4540dab9061c87804ac9d0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(cuff_sts, upper_sts, rows):\n    diff = upper_sts - cuff_sts\n    if diff < 0:\n        return 'error: cuff wider than upper arm'\n    if diff % 2:\n        return 'error: odd difference'\n    pairs = diff // 2\n    if pairs == 0:\n        return []\n    a = rows // pairs\n    if a == 0 and rows == 0:\n        return 'error: not enough rows'\n    y = rows - a * pairs\n    x = pairs - y\n    plan = []\n    if x:\n        plan.append([a, x])\n    if y:\n        plan.append([a + 1, y])\n    return plan\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['even schedule', [48, 64, 80], [[10, 8]]], ['two rates', [44, 60, 90], [[11, 6], [12, 2]]],\n  ['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['regression: row budget check', [56, 86, 10], 'error: not enough rows'],\n  ['repair check: row budget check', [48, 68, 5], 'error: not enough rows'],\n  ['generated control 1', [40, 52, 90], [[15, 6]]],\n  ['generated control 2', [50, 57, 90], 'error: odd difference'],\n  ['generated control 3', [56, 64, 5], [[1, 3], [2, 1]]]],\n [['two rates', [44, 60, 90], [[11, 6], [12, 2]]], ['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['regression: row budget check', [60, 90, 5], 'error: not enough rows'],\n  ['repair check: row budget check', [45, 65, 5], 'error: not enough rows'],\n  ['generated control 1', [45, 45, 72], []], ['generated control 2', [50, 57, 5], 'error: odd difference'],\n  ['generated control 3', [50, 50, 40], []]],\n [['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['regression: row budget check', [40, 64, 5], 'error: not enough rows'],\n  ['repair check: row budget check', [51, 71, 5], 'error: not enough rows'],\n  ['generated control 1', [45, 52, 10], 'error: odd difference'],\n  ['generated control 2', [50, 52, 40], [[40, 1]]],\n  ['generated control 3', [45, 50, 40], 'error: odd difference']],\n [['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['even schedule', [48, 64, 80], [[10, 8]]],\n  ['regression: row budget check', [60, 90, 10], 'error: not enough rows'],\n  ['repair check: row budget check', [50, 66, 5], 'error: not enough rows'],\n  ['generated control 1', [51, 56, 72], 'error: odd difference'], ['generated control 2', [40, 40, 60], []],\n  ['generated control 3', [51, 51, 5], []]],\n [['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['even schedule', [48, 64, 80], [[10, 8]]], ['two rates', [44, 60, 90], [[11, 6], [12, 2]]],\n  ['regression: row budget check', [40, 60, 5], 'error: not enough rows'],\n  ['repair check: row budget check', [50, 74, 5], 'error: not enough rows'],\n  ['generated control 1', [60, 72, 100], [[16, 2], [17, 4]]],\n  ['generated control 2', [48, 78, 100], [[6, 5], [7, 10]]],\n  ['generated control 3', [50, 52, 60], [[60, 1]]]]]\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":"ea26197d81fea9937094639eb22412d8e6b9d4c18df764574ac8010bf822d721","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(cuff_sts, upper_sts, rows):\n    diff = upper_sts - cuff_sts\n    if diff < 0:\n        return 'error: cuff wider than upper arm'\n    if diff % 2:\n        return 'error: odd difference'\n    pairs = diff // 2\n    if pairs == 0:\n        return []\n    a = rows // pairs\n    if a < 0:\n        return 'error: not enough rows'\n    y = rows - a * pairs\n    x = pairs - y\n    plan = []\n    if x:\n        plan.append([a, x])\n    if y:\n        plan.append([a + 1, y])\n    return plan\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['even schedule', [48, 64, 80], [[10, 8]]], ['two rates', [44, 60, 90], [[11, 6], [12, 2]]],\n  ['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['regression: row budget check', [56, 86, 10], 'error: not enough rows'],\n  ['repair check: row budget check', [48, 68, 5], 'error: not enough rows'],\n  ['generated control 1', [40, 52, 90], [[15, 6]]],\n  ['generated control 2', [50, 57, 90], 'error: odd difference'],\n  ['generated control 3', [56, 64, 5], [[1, 3], [2, 1]]]],\n [['two rates', [44, 60, 90], [[11, 6], [12, 2]]], ['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['regression: row budget check', [60, 90, 5], 'error: not enough rows'],\n  ['repair check: row budget check', [45, 65, 5], 'error: not enough rows'],\n  ['generated control 1', [45, 45, 72], []], ['generated control 2', [50, 57, 5], 'error: odd difference'],\n  ['generated control 3', [50, 50, 40], []]],\n [['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['regression: row budget check', [40, 64, 5], 'error: not enough rows'],\n  ['repair check: row budget check', [51, 71, 5], 'error: not enough rows'],\n  ['generated control 1', [45, 52, 10], 'error: odd difference'],\n  ['generated control 2', [50, 52, 40], [[40, 1]]],\n  ['generated control 3', [45, 50, 40], 'error: odd difference']],\n [['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['even schedule', [48, 64, 80], [[10, 8]]],\n  ['regression: row budget check', [60, 90, 10], 'error: not enough rows'],\n  ['repair check: row budget check', [50, 66, 5], 'error: not enough rows'],\n  ['generated control 1', [51, 56, 72], 'error: odd difference'], ['generated control 2', [40, 40, 60], []],\n  ['generated control 3', [51, 51, 5], []]],\n [['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['even schedule', [48, 64, 80], [[10, 8]]], ['two rates', [44, 60, 90], [[11, 6], [12, 2]]],\n  ['regression: row budget check', [40, 60, 5], 'error: not enough rows'],\n  ['repair check: row budget check', [50, 74, 5], 'error: not enough rows'],\n  ['generated control 1', [60, 72, 100], [[16, 2], [17, 4]]],\n  ['generated control 2', [48, 78, 100], [[6, 5], [7, 10]]],\n  ['generated control 3', [50, 52, 60], [[60, 1]]]]]\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":"620114f9b94299af439b38f0b414b0806ce4b2ca5f810d37af934d7971e6514f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(cuff_sts, upper_sts, rows):\n    diff = upper_sts - cuff_sts\n    if diff < 0:\n        return 'error: cuff wider than upper arm'\n    if diff % 2:\n        return 'error: odd difference'\n    pairs = diff // 2\n    if pairs == 0:\n        return []\n    a = rows // pairs\n    if a == 0:\n        return 'error: not enough rows'\n    y = rows - a * pairs\n    x = pairs - y\n    plan = []\n    if x:\n        plan.append([a, x])\n    if y:\n        plan.append([a + 1, y])\n    return plan\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['even schedule', [48, 64, 80], [[10, 8]]], ['two rates', [44, 60, 90], [[11, 6], [12, 2]]],\n  ['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['regression: row budget check', [56, 86, 10], 'error: not enough rows'],\n  ['repair check: row budget check', [48, 68, 5], 'error: not enough rows'],\n  ['generated control 1', [40, 52, 90], [[15, 6]]],\n  ['generated control 2', [50, 57, 90], 'error: odd difference'],\n  ['generated control 3', [56, 64, 5], [[1, 3], [2, 1]]]],\n [['two rates', [44, 60, 90], [[11, 6], [12, 2]]], ['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['regression: row budget check', [60, 90, 5], 'error: not enough rows'],\n  ['repair check: row budget check', [45, 65, 5], 'error: not enough rows'],\n  ['generated control 1', [45, 45, 72], []], ['generated control 2', [50, 57, 5], 'error: odd difference'],\n  ['generated control 3', [50, 50, 40], []]],\n [['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['regression: row budget check', [40, 64, 5], 'error: not enough rows'],\n  ['repair check: row budget check', [51, 71, 5], 'error: not enough rows'],\n  ['generated control 1', [45, 52, 10], 'error: odd difference'],\n  ['generated control 2', [50, 52, 40], [[40, 1]]],\n  ['generated control 3', [45, 50, 40], 'error: odd difference']],\n [['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['even schedule', [48, 64, 80], [[10, 8]]],\n  ['regression: row budget check', [60, 90, 10], 'error: not enough rows'],\n  ['repair check: row budget check', [50, 66, 5], 'error: not enough rows'],\n  ['generated control 1', [51, 56, 72], 'error: odd difference'], ['generated control 2', [40, 40, 60], []],\n  ['generated control 3', [51, 51, 5], []]],\n [['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['even schedule', [48, 64, 80], [[10, 8]]], ['two rates', [44, 60, 90], [[11, 6], [12, 2]]],\n  ['regression: row budget check', [40, 60, 5], 'error: not enough rows'],\n  ['repair check: row budget check', [50, 74, 5], 'error: not enough rows'],\n  ['generated control 1', [60, 72, 100], [[16, 2], [17, 4]]],\n  ['generated control 2', [48, 78, 100], [[6, 5], [7, 10]]],\n  ['generated control 3', [50, 52, 60], [[60, 1]]]]]\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-sleeve-taper-row-budget-check","generated_at":"2026-09-29T14:52:31.874180+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Pattern writers turn a stitch-count change over a length into \"decrease every N rows X times\".","repair":"Reject when rows are fewer than decrease rows.","root_cause":"An interval of zero rows is not rejected.","sha256":"5c3dfa5d181a519e916941429a02e1d7d2e82d97a9061112b40243e64424ff3f","title":"Sleeve taper decrease schedule: row budget check · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.504,"exit_code":1,"observations":[{"actual":[[10,8]],"check":"even schedule","expected":[[10,8]],"passed":true},{"actual":[[11,6],[12,2]],"check":"two rates","expected":[[11,6],[12,2]],"passed":true},{"actual":"error: odd difference","check":"odd difference","expected":"error: odd difference","passed":true},{"actual":[[0,5],[1,10]],"check":"regression: row budget check","expected":"error: not enough rows","passed":false},{"actual":[[0,5],[1,5]],"check":"repair check: row budget check","expected":"error: not enough rows","passed":false},{"actual":[[15,6]],"check":"generated control 1","expected":[[15,6]],"passed":true},{"actual":"error: odd difference","check":"generated control 2","expected":"error: odd difference","passed":true},{"actual":[[1,3],[2,1]],"check":"generated control 3","expected":[[1,3],[2,1]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"even schedule\", \"actual\": [[10, 8]], \"expected\": [[10, 8]], \"passed\": true}, {\"check\": \"two rates\", \"actual\": [[11, 6], [12, 2]], \"expected\": [[11, 6], [12, 2]], \"passed\": true}, {\"check\": \"odd difference\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}, {\"check\": \"regression: row budget check\", \"actual\": [[0, 5], [1, 10]], \"expected\": \"error: not enough rows\", \"passed\": false}, {\"check\": \"repair check: row budget check\", \"actual\": [[0, 5], [1, 5]], \"expected\": \"error: not enough rows\", \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": [[15, 6]], \"expected\": [[15, 6]], \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": [[1, 3], [2, 1]], \"expected\": [[1, 3], [2, 1]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.271,"exit_code":1,"observations":[{"actual":[[10,8]],"check":"even schedule","expected":[[10,8]],"passed":true},{"actual":[[11,6],[12,2]],"check":"two rates","expected":[[11,6],[12,2]],"passed":true},{"actual":"error: odd difference","check":"odd difference","expected":"error: odd difference","passed":true},{"actual":[[0,5],[1,10]],"check":"regression: row budget check","expected":"error: not enough rows","passed":false},{"actual":[[0,5],[1,5]],"check":"repair check: row budget check","expected":"error: not enough rows","passed":false},{"actual":[[15,6]],"check":"generated control 1","expected":[[15,6]],"passed":true},{"actual":"error: odd difference","check":"generated control 2","expected":"error: odd difference","passed":true},{"actual":[[1,3],[2,1]],"check":"generated control 3","expected":[[1,3],[2,1]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"even schedule\", \"actual\": [[10, 8]], \"expected\": [[10, 8]], \"passed\": true}, {\"check\": \"two rates\", \"actual\": [[11, 6], [12, 2]], \"expected\": [[11, 6], [12, 2]], \"passed\": true}, {\"check\": \"odd difference\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}, {\"check\": \"regression: row budget check\", \"actual\": [[0, 5], [1, 10]], \"expected\": \"error: not enough rows\", \"passed\": false}, {\"check\": \"repair check: row budget check\", \"actual\": [[0, 5], [1, 5]], \"expected\": \"error: not enough rows\", \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": [[15, 6]], \"expected\": [[15, 6]], \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": [[1, 3], [2, 1]], \"expected\": [[1, 3], [2, 1]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.181,"exit_code":0,"observations":[{"actual":[[10,8]],"check":"even schedule","expected":[[10,8]],"passed":true},{"actual":[[11,6],[12,2]],"check":"two rates","expected":[[11,6],[12,2]],"passed":true},{"actual":"error: odd difference","check":"odd difference","expected":"error: odd difference","passed":true},{"actual":"error: not enough rows","check":"regression: row budget check","expected":"error: not enough rows","passed":true},{"actual":"error: not enough rows","check":"repair check: row budget check","expected":"error: not enough rows","passed":true},{"actual":[[15,6]],"check":"generated control 1","expected":[[15,6]],"passed":true},{"actual":"error: odd difference","check":"generated control 2","expected":"error: odd difference","passed":true},{"actual":[[1,3],[2,1]],"check":"generated control 3","expected":[[1,3],[2,1]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"even schedule\", \"actual\": [[10, 8]], \"expected\": [[10, 8]], \"passed\": true}, {\"check\": \"two rates\", \"actual\": [[11, 6], [12, 2]], \"expected\": [[11, 6], [12, 2]], \"passed\": true}, {\"check\": \"odd difference\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}, {\"check\": \"regression: row budget check\", \"actual\": \"error: not enough rows\", \"expected\": \"error: not enough rows\", \"passed\": true}, {\"check\": \"repair check: row budget check\", \"actual\": \"error: not enough rows\", \"expected\": \"error: not enough rows\", \"passed\": true}, {\"check\": \"generated control 1\", \"actual\": [[15, 6]], \"expected\": [[15, 6]], \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": [[1, 3], [2, 1]], \"expected\": [[1, 3], [2, 1]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}