{"abstract":"65 kcal prints as 65 instead of 70.","category":"Recipe scaling and nutrition","checks":8,"contract":"Round a panel dict to displayed strings (toy label rules, half-up): calories <5 -> 0, <=50 -> nearest 5, else nearest 10; fat g <0.5 -> 0, <5 -> nearest 0.5, else nearest 1; sodium mg <5 -> 0, <=140 -> nearest 5, else nearest 10; cholesterol mg <2 -> \"0 mg\", <5 -> \"less than 5 mg\", else nearest 5; carbs g <0.5 -> \"0 g\", <1 -> \"less than 1 g\", else nearest 1. Absent keys are omitted. Values print with %g formatting.","evaluation_group":"w2-recipe_scaling_and_nutrition-label-rounding","failed_approach":"Starting the 10-calorie step only above 100 still prints 55-100 kcal in 5 steps.","family":"w2-recipe_scaling_and_nutrition-label-rounding-calorie-coarse-band-step","id":"FA-96876","implementations":{"attempt":{"sha256":"9cab69aba784957dff9878b732581172ee8637af375ff2a66e5fec7874d2460d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(panel):\n    def near(x, step):\n        return math.floor(x / step + Fraction(1, 2)) * step\n    def show(v, unit):\n        t = format(float(v), 'g')\n        return t + ' ' + unit if unit else t\n    out = {}\n    if 'calories' in panel:\n        c = Fraction(str(panel['calories']))\n        out['calories'] = show(0 if c < 5 else near(c, 5) if c <= 50 else near(c, 10) if c > 100 else near(c, 5), '')\n    if 'fat' in panel:\n        x = Fraction(str(panel['fat']))\n        out['fat'] = show(0 if x < Fraction(1, 2) else near(x, Fraction(1, 2)) if x < 5 else near(x, 1), 'g')\n    if 'sodium' in panel:\n        x = Fraction(str(panel['sodium']))\n        out['sodium'] = show(0 if x < 5 else near(x, 5) if x <= 140 else near(x, 10), 'mg')\n    if 'cholesterol' in panel:\n        x = Fraction(str(panel['cholesterol']))\n        out['cholesterol'] = '0 mg' if x < 2 else 'less than 5 mg' if x < 5 else show(near(x, 5), 'mg')\n    if 'carbs' in panel:\n        x = Fraction(str(panel['carbs']))\n        out['carbs'] = '0 g' if x < Fraction(1, 2) else 'less than 1 g' if x < 1 else show(near(x, 1), 'g')\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['empty panel', [{}], {}],\n  ['insignificant calories', [{'calories': 4.9, 'fat': 0.4}], {'calories': '0', 'fat': '0 g'}],\n  ['mid-band sodium', [{'carbs': 0.9, 'sodium': 137.5}], {'carbs': 'less than 1 g', 'sodium': '140 mg'}],\n  ['regression: calorie coarse band step',\n   [{'calories': 136.5, 'carbs': 0.9, 'cholesterol': 3, 'fat': 3.5, 'sodium': 10.5}],\n   {'calories': '140',\n    'carbs': 'less than 1 g',\n    'cholesterol': 'less than 5 mg',\n    'fat': '3.5 g',\n    'sodium': '10 mg'}],\n  ['repair check: calorie coarse band step', [{'calories': 55, 'carbs': 1.5, 'fat': 11, 'sodium': 7.5}],\n   {'calories': '60', 'carbs': '2 g', 'fat': '11 g', 'sodium': '10 mg'}],\n  ['generated control 1', [{'cholesterol': 7.5, 'fat': 15}], {'cholesterol': '10 mg', 'fat': '15 g'}],\n  ['generated control 2', [{'calories': 43, 'fat': 2.75, 'sodium': 12.5}],\n   {'calories': '45', 'fat': '3 g', 'sodium': '15 mg'}],\n  ['generated control 3', [{'calories': 351, 'fat': 4}], {'calories': '350', 'fat': '4 g'}]],\n [['insignificant calories', [{'calories': 4.9, 'fat': 0.4}], {'calories': '0', 'fat': '0 g'}],\n  ['mid-band sodium', [{'carbs': 0.9, 'sodium': 137.5}], {'carbs': 'less than 1 g', 'sodium': '140 mg'}],\n  ['large values', [{'calories': 245, 'cholesterol': 22.5, 'fat': 12.5, 'sodium': 455}],\n   {'calories': '250', 'cholesterol': '25 mg', 'fat': '13 g', 'sodium': '460 mg'}],\n  ['regression: calorie coarse band step',\n   [{'calories': 105, 'carbs': 30.4, 'cholesterol': 22.5, 'sodium': 12.5}],\n   {'calories': '110', 'carbs': '30 g', 'cholesterol': '25 mg', 'sodium': '15 mg'}],\n  ['repair check: calorie coarse band step', [{'calories': 55, 'carbs': 12.5, 'cholesterol': 12, 'fat': 0.4}],\n   {'calories': '60', 'carbs': '13 g', 'cholesterol': '10 mg', 'fat': '0 g'}],\n  ['generated control 1', [{'calories': 45.25, 'fat': 1.25, 'sodium': 7.5}],\n   {'calories': '45', 'fat': '1.5 g', 'sodium': '10 mg'}],\n  ['generated control 2', [{'calories': 47.5, 'carbs': 12.5, 'cholesterol': 12, 'sodium': 7.5}],\n   {'calories': '50', 'carbs': '13 g', 'cholesterol': '10 mg', 'sodium': '10 mg'}],\n  ['generated control 3', [{'calories': 47.5, 'cholesterol': 4.9, 'fat': 12.25, 'sodium': 1.75}],\n   {'calories': '50', 'cholesterol': 'less than 5 mg', 'fat': '12 g', 'sodium': '0 mg'}]],\n [['mid-band sodium', [{'carbs': 0.9, 'sodium': 137.5}], {'carbs': 'less than 1 g', 'sodium': '140 mg'}],\n  ['large values', [{'calories': 245, 'cholesterol': 22.5, 'fat': 12.5, 'sodium': 455}],\n   {'calories': '250', 'cholesterol': '25 mg', 'fat': '13 g', 'sodium': '460 mg'}],\n  ['small cholesterol', [{'carbs': 12.5, 'cholesterol': 3}],\n   {'carbs': '13 g', 'cholesterol': 'less than 5 mg'}],\n  ['regression: calorie coarse band step', [{'calories': 105, 'fat': 1.25, 'sodium': 98.5}],\n   {'calories': '110', 'fat': '1.5 g', 'sodium': '100 mg'}],\n  ['repair check: calorie coarse band step',\n   [{'calories': 55, 'cholesterol': 5, 'fat': 20.25, 'sodium': 1.75}],\n   {'calories': '60', 'cholesterol': '5 mg', 'fat': '20 g', 'sodium': '0 mg'}],\n  ['generated control 1', [{'calories': 166, 'carbs': 30.4, 'fat': 18.25, 'sodium': 10.75}],\n   {'calories': '170', 'carbs': '30 g', 'fat': '18 g', 'sodium': '10 mg'}],\n  ['generated control 2', [{'carbs': 30.4, 'cholesterol': 1.5, 'fat': 10.25}],\n   {'carbs': '30 g', 'cholesterol': '0 mg', 'fat': '10 g'}],\n  ['generated control 3', [{'calories': 105, 'carbs': 1.5}], {'calories': '110', 'carbs': '2 g'}]],\n [['large values', [{'calories': 245, 'cholesterol': 22.5, 'fat': 12.5, 'sodium': 455}],\n   {'calories': '250', 'cholesterol': '25 mg', 'fat': '13 g', 'sodium': '460 mg'}],\n  ['small cholesterol', [{'carbs': 12.5, 'cholesterol': 3}],\n   {'carbs': '13 g', 'cholesterol': 'less than 5 mg'}],\n  ['empty panel', [{}], {}],\n  ['regression: calorie coarse band step',\n   [{'calories': 54.75, 'carbs': 0.9, 'cholesterol': 4.9, 'sodium': 181.5}],\n   {'calories': '50', 'carbs': 'less than 1 g', 'cholesterol': 'less than 5 mg', 'sodium': '180 mg'}],\n  ['repair check: calorie coarse band step', [{'calories': 55.25, 'cholesterol': 1.5, 'fat': 1.25}],\n   {'calories': '60', 'cholesterol': '0 mg', 'fat': '1.5 g'}],\n  ['generated control 1', [{'calories': 49.25, 'carbs': 0.9, 'cholesterol': 7.5, 'fat': 6, 'sodium': 171.5}],\n   {'calories': '50', 'carbs': 'less than 1 g', 'cholesterol': '10 mg', 'fat': '6 g', 'sodium': '170 mg'}],\n  ['generated control 2', [{'calories': 60, 'fat': 16.75, 'sodium': 8}],\n   {'calories': '60', 'fat': '17 g', 'sodium': '10 mg'}],\n  ['generated control 3', [{'carbs': 1.5, 'fat': 5.25, 'sodium': 142.5}],\n   {'carbs': '2 g', 'fat': '5 g', 'sodium': '140 mg'}]],\n [['small cholesterol', [{'carbs': 12.5, 'cholesterol': 3}],\n   {'carbs': '13 g', 'cholesterol': 'less than 5 mg'}],\n  ['empty panel', [{}], {}],\n  ['insignificant calories', [{'calories': 4.9, 'fat': 0.4}], {'calories': '0', 'fat': '0 g'}],\n  ['regression: calorie coarse band step',\n   [{'calories': 105, 'cholesterol': 12, 'fat': 1.25, 'sodium': 10.5}],\n   {'calories': '110', 'cholesterol': '10 mg', 'fat': '1.5 g', 'sodium': '10 mg'}],\n  ['repair check: calorie coarse band step', [{'calories': 55, 'fat': 2.5, 'sodium': 137.5}],\n   {'calories': '60', 'fat': '2.5 g', 'sodium': '140 mg'}],\n  ['generated control 1', [{'fat': 2.75, 'sodium': 101.5}], {'fat': '3 g', 'sodium': '100 mg'}],\n  ['generated control 2', [{'calories': 251.5, 'carbs': 12.5, 'fat': 4.75, 'sodium': 10.25}],\n   {'calories': '250', 'carbs': '13 g', 'fat': '5 g', 'sodium': '10 mg'}],\n  ['generated control 3', [{'calories': 47.5, 'carbs': 30.4, 'fat': 1.25, 'sodium': 4.25}],\n   {'calories': '50', 'carbs': '30 g', 'fat': '1.5 g', 'sodium': '0 mg'}]]]\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":"af5a25d0146de0266278d4f2e4abc367d2bf34fa3f7ed9c86914bb25c3bc8247","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(panel):\n    def near(x, step):\n        return math.floor(x / step + Fraction(1, 2)) * step\n    def show(v, unit):\n        t = format(float(v), 'g')\n        return t + ' ' + unit if unit else t\n    out = {}\n    if 'calories' in panel:\n        c = Fraction(str(panel['calories']))\n        out['calories'] = show(0 if c < 5 else near(c, 5) if c <= 50 else near(c, 5), '')\n    if 'fat' in panel:\n        x = Fraction(str(panel['fat']))\n        out['fat'] = show(0 if x < Fraction(1, 2) else near(x, Fraction(1, 2)) if x < 5 else near(x, 1), 'g')\n    if 'sodium' in panel:\n        x = Fraction(str(panel['sodium']))\n        out['sodium'] = show(0 if x < 5 else near(x, 5) if x <= 140 else near(x, 10), 'mg')\n    if 'cholesterol' in panel:\n        x = Fraction(str(panel['cholesterol']))\n        out['cholesterol'] = '0 mg' if x < 2 else 'less than 5 mg' if x < 5 else show(near(x, 5), 'mg')\n    if 'carbs' in panel:\n        x = Fraction(str(panel['carbs']))\n        out['carbs'] = '0 g' if x < Fraction(1, 2) else 'less than 1 g' if x < 1 else show(near(x, 1), 'g')\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['empty panel', [{}], {}],\n  ['insignificant calories', [{'calories': 4.9, 'fat': 0.4}], {'calories': '0', 'fat': '0 g'}],\n  ['mid-band sodium', [{'carbs': 0.9, 'sodium': 137.5}], {'carbs': 'less than 1 g', 'sodium': '140 mg'}],\n  ['regression: calorie coarse band step',\n   [{'calories': 136.5, 'carbs': 0.9, 'cholesterol': 3, 'fat': 3.5, 'sodium': 10.5}],\n   {'calories': '140',\n    'carbs': 'less than 1 g',\n    'cholesterol': 'less than 5 mg',\n    'fat': '3.5 g',\n    'sodium': '10 mg'}],\n  ['repair check: calorie coarse band step', [{'calories': 55, 'carbs': 1.5, 'fat': 11, 'sodium': 7.5}],\n   {'calories': '60', 'carbs': '2 g', 'fat': '11 g', 'sodium': '10 mg'}],\n  ['generated control 1', [{'cholesterol': 7.5, 'fat': 15}], {'cholesterol': '10 mg', 'fat': '15 g'}],\n  ['generated control 2', [{'calories': 43, 'fat': 2.75, 'sodium': 12.5}],\n   {'calories': '45', 'fat': '3 g', 'sodium': '15 mg'}],\n  ['generated control 3', [{'calories': 351, 'fat': 4}], {'calories': '350', 'fat': '4 g'}]],\n [['insignificant calories', [{'calories': 4.9, 'fat': 0.4}], {'calories': '0', 'fat': '0 g'}],\n  ['mid-band sodium', [{'carbs': 0.9, 'sodium': 137.5}], {'carbs': 'less than 1 g', 'sodium': '140 mg'}],\n  ['large values', [{'calories': 245, 'cholesterol': 22.5, 'fat': 12.5, 'sodium': 455}],\n   {'calories': '250', 'cholesterol': '25 mg', 'fat': '13 g', 'sodium': '460 mg'}],\n  ['regression: calorie coarse band step',\n   [{'calories': 105, 'carbs': 30.4, 'cholesterol': 22.5, 'sodium': 12.5}],\n   {'calories': '110', 'carbs': '30 g', 'cholesterol': '25 mg', 'sodium': '15 mg'}],\n  ['repair check: calorie coarse band step', [{'calories': 55, 'carbs': 12.5, 'cholesterol': 12, 'fat': 0.4}],\n   {'calories': '60', 'carbs': '13 g', 'cholesterol': '10 mg', 'fat': '0 g'}],\n  ['generated control 1', [{'calories': 45.25, 'fat': 1.25, 'sodium': 7.5}],\n   {'calories': '45', 'fat': '1.5 g', 'sodium': '10 mg'}],\n  ['generated control 2', [{'calories': 47.5, 'carbs': 12.5, 'cholesterol': 12, 'sodium': 7.5}],\n   {'calories': '50', 'carbs': '13 g', 'cholesterol': '10 mg', 'sodium': '10 mg'}],\n  ['generated control 3', [{'calories': 47.5, 'cholesterol': 4.9, 'fat': 12.25, 'sodium': 1.75}],\n   {'calories': '50', 'cholesterol': 'less than 5 mg', 'fat': '12 g', 'sodium': '0 mg'}]],\n [['mid-band sodium', [{'carbs': 0.9, 'sodium': 137.5}], {'carbs': 'less than 1 g', 'sodium': '140 mg'}],\n  ['large values', [{'calories': 245, 'cholesterol': 22.5, 'fat': 12.5, 'sodium': 455}],\n   {'calories': '250', 'cholesterol': '25 mg', 'fat': '13 g', 'sodium': '460 mg'}],\n  ['small cholesterol', [{'carbs': 12.5, 'cholesterol': 3}],\n   {'carbs': '13 g', 'cholesterol': 'less than 5 mg'}],\n  ['regression: calorie coarse band step', [{'calories': 105, 'fat': 1.25, 'sodium': 98.5}],\n   {'calories': '110', 'fat': '1.5 g', 'sodium': '100 mg'}],\n  ['repair check: calorie coarse band step',\n   [{'calories': 55, 'cholesterol': 5, 'fat': 20.25, 'sodium': 1.75}],\n   {'calories': '60', 'cholesterol': '5 mg', 'fat': '20 g', 'sodium': '0 mg'}],\n  ['generated control 1', [{'calories': 166, 'carbs': 30.4, 'fat': 18.25, 'sodium': 10.75}],\n   {'calories': '170', 'carbs': '30 g', 'fat': '18 g', 'sodium': '10 mg'}],\n  ['generated control 2', [{'carbs': 30.4, 'cholesterol': 1.5, 'fat': 10.25}],\n   {'carbs': '30 g', 'cholesterol': '0 mg', 'fat': '10 g'}],\n  ['generated control 3', [{'calories': 105, 'carbs': 1.5}], {'calories': '110', 'carbs': '2 g'}]],\n [['large values', [{'calories': 245, 'cholesterol': 22.5, 'fat': 12.5, 'sodium': 455}],\n   {'calories': '250', 'cholesterol': '25 mg', 'fat': '13 g', 'sodium': '460 mg'}],\n  ['small cholesterol', [{'carbs': 12.5, 'cholesterol': 3}],\n   {'carbs': '13 g', 'cholesterol': 'less than 5 mg'}],\n  ['empty panel', [{}], {}],\n  ['regression: calorie coarse band step',\n   [{'calories': 54.75, 'carbs': 0.9, 'cholesterol': 4.9, 'sodium': 181.5}],\n   {'calories': '50', 'carbs': 'less than 1 g', 'cholesterol': 'less than 5 mg', 'sodium': '180 mg'}],\n  ['repair check: calorie coarse band step', [{'calories': 55.25, 'cholesterol': 1.5, 'fat': 1.25}],\n   {'calories': '60', 'cholesterol': '0 mg', 'fat': '1.5 g'}],\n  ['generated control 1', [{'calories': 49.25, 'carbs': 0.9, 'cholesterol': 7.5, 'fat': 6, 'sodium': 171.5}],\n   {'calories': '50', 'carbs': 'less than 1 g', 'cholesterol': '10 mg', 'fat': '6 g', 'sodium': '170 mg'}],\n  ['generated control 2', [{'calories': 60, 'fat': 16.75, 'sodium': 8}],\n   {'calories': '60', 'fat': '17 g', 'sodium': '10 mg'}],\n  ['generated control 3', [{'carbs': 1.5, 'fat': 5.25, 'sodium': 142.5}],\n   {'carbs': '2 g', 'fat': '5 g', 'sodium': '140 mg'}]],\n [['small cholesterol', [{'carbs': 12.5, 'cholesterol': 3}],\n   {'carbs': '13 g', 'cholesterol': 'less than 5 mg'}],\n  ['empty panel', [{}], {}],\n  ['insignificant calories', [{'calories': 4.9, 'fat': 0.4}], {'calories': '0', 'fat': '0 g'}],\n  ['regression: calorie coarse band step',\n   [{'calories': 105, 'cholesterol': 12, 'fat': 1.25, 'sodium': 10.5}],\n   {'calories': '110', 'cholesterol': '10 mg', 'fat': '1.5 g', 'sodium': '10 mg'}],\n  ['repair check: calorie coarse band step', [{'calories': 55, 'fat': 2.5, 'sodium': 137.5}],\n   {'calories': '60', 'fat': '2.5 g', 'sodium': '140 mg'}],\n  ['generated control 1', [{'fat': 2.75, 'sodium': 101.5}], {'fat': '3 g', 'sodium': '100 mg'}],\n  ['generated control 2', [{'calories': 251.5, 'carbs': 12.5, 'fat': 4.75, 'sodium': 10.25}],\n   {'calories': '250', 'carbs': '13 g', 'fat': '5 g', 'sodium': '10 mg'}],\n  ['generated control 3', [{'calories': 47.5, 'carbs': 30.4, 'fat': 1.25, 'sodium': 4.25}],\n   {'calories': '50', 'carbs': '30 g', 'fat': '1.5 g', 'sodium': '0 mg'}]]]\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":"13a1dfdd913d5f3bef9c00ad0c7a1435e4c6785da20eef19b00ff4cdc3c5accc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(panel):\n    def near(x, step):\n        return math.floor(x / step + Fraction(1, 2)) * step\n    def show(v, unit):\n        t = format(float(v), 'g')\n        return t + ' ' + unit if unit else t\n    out = {}\n    if 'calories' in panel:\n        c = Fraction(str(panel['calories']))\n        out['calories'] = show(0 if c < 5 else near(c, 5) if c <= 50 else near(c, 10), '')\n    if 'fat' in panel:\n        x = Fraction(str(panel['fat']))\n        out['fat'] = show(0 if x < Fraction(1, 2) else near(x, Fraction(1, 2)) if x < 5 else near(x, 1), 'g')\n    if 'sodium' in panel:\n        x = Fraction(str(panel['sodium']))\n        out['sodium'] = show(0 if x < 5 else near(x, 5) if x <= 140 else near(x, 10), 'mg')\n    if 'cholesterol' in panel:\n        x = Fraction(str(panel['cholesterol']))\n        out['cholesterol'] = '0 mg' if x < 2 else 'less than 5 mg' if x < 5 else show(near(x, 5), 'mg')\n    if 'carbs' in panel:\n        x = Fraction(str(panel['carbs']))\n        out['carbs'] = '0 g' if x < Fraction(1, 2) else 'less than 1 g' if x < 1 else show(near(x, 1), 'g')\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['empty panel', [{}], {}],\n  ['insignificant calories', [{'calories': 4.9, 'fat': 0.4}], {'calories': '0', 'fat': '0 g'}],\n  ['mid-band sodium', [{'carbs': 0.9, 'sodium': 137.5}], {'carbs': 'less than 1 g', 'sodium': '140 mg'}],\n  ['regression: calorie coarse band step',\n   [{'calories': 136.5, 'carbs': 0.9, 'cholesterol': 3, 'fat': 3.5, 'sodium': 10.5}],\n   {'calories': '140',\n    'carbs': 'less than 1 g',\n    'cholesterol': 'less than 5 mg',\n    'fat': '3.5 g',\n    'sodium': '10 mg'}],\n  ['repair check: calorie coarse band step', [{'calories': 55, 'carbs': 1.5, 'fat': 11, 'sodium': 7.5}],\n   {'calories': '60', 'carbs': '2 g', 'fat': '11 g', 'sodium': '10 mg'}],\n  ['generated control 1', [{'cholesterol': 7.5, 'fat': 15}], {'cholesterol': '10 mg', 'fat': '15 g'}],\n  ['generated control 2', [{'calories': 43, 'fat': 2.75, 'sodium': 12.5}],\n   {'calories': '45', 'fat': '3 g', 'sodium': '15 mg'}],\n  ['generated control 3', [{'calories': 351, 'fat': 4}], {'calories': '350', 'fat': '4 g'}]],\n [['insignificant calories', [{'calories': 4.9, 'fat': 0.4}], {'calories': '0', 'fat': '0 g'}],\n  ['mid-band sodium', [{'carbs': 0.9, 'sodium': 137.5}], {'carbs': 'less than 1 g', 'sodium': '140 mg'}],\n  ['large values', [{'calories': 245, 'cholesterol': 22.5, 'fat': 12.5, 'sodium': 455}],\n   {'calories': '250', 'cholesterol': '25 mg', 'fat': '13 g', 'sodium': '460 mg'}],\n  ['regression: calorie coarse band step',\n   [{'calories': 105, 'carbs': 30.4, 'cholesterol': 22.5, 'sodium': 12.5}],\n   {'calories': '110', 'carbs': '30 g', 'cholesterol': '25 mg', 'sodium': '15 mg'}],\n  ['repair check: calorie coarse band step', [{'calories': 55, 'carbs': 12.5, 'cholesterol': 12, 'fat': 0.4}],\n   {'calories': '60', 'carbs': '13 g', 'cholesterol': '10 mg', 'fat': '0 g'}],\n  ['generated control 1', [{'calories': 45.25, 'fat': 1.25, 'sodium': 7.5}],\n   {'calories': '45', 'fat': '1.5 g', 'sodium': '10 mg'}],\n  ['generated control 2', [{'calories': 47.5, 'carbs': 12.5, 'cholesterol': 12, 'sodium': 7.5}],\n   {'calories': '50', 'carbs': '13 g', 'cholesterol': '10 mg', 'sodium': '10 mg'}],\n  ['generated control 3', [{'calories': 47.5, 'cholesterol': 4.9, 'fat': 12.25, 'sodium': 1.75}],\n   {'calories': '50', 'cholesterol': 'less than 5 mg', 'fat': '12 g', 'sodium': '0 mg'}]],\n [['mid-band sodium', [{'carbs': 0.9, 'sodium': 137.5}], {'carbs': 'less than 1 g', 'sodium': '140 mg'}],\n  ['large values', [{'calories': 245, 'cholesterol': 22.5, 'fat': 12.5, 'sodium': 455}],\n   {'calories': '250', 'cholesterol': '25 mg', 'fat': '13 g', 'sodium': '460 mg'}],\n  ['small cholesterol', [{'carbs': 12.5, 'cholesterol': 3}],\n   {'carbs': '13 g', 'cholesterol': 'less than 5 mg'}],\n  ['regression: calorie coarse band step', [{'calories': 105, 'fat': 1.25, 'sodium': 98.5}],\n   {'calories': '110', 'fat': '1.5 g', 'sodium': '100 mg'}],\n  ['repair check: calorie coarse band step',\n   [{'calories': 55, 'cholesterol': 5, 'fat': 20.25, 'sodium': 1.75}],\n   {'calories': '60', 'cholesterol': '5 mg', 'fat': '20 g', 'sodium': '0 mg'}],\n  ['generated control 1', [{'calories': 166, 'carbs': 30.4, 'fat': 18.25, 'sodium': 10.75}],\n   {'calories': '170', 'carbs': '30 g', 'fat': '18 g', 'sodium': '10 mg'}],\n  ['generated control 2', [{'carbs': 30.4, 'cholesterol': 1.5, 'fat': 10.25}],\n   {'carbs': '30 g', 'cholesterol': '0 mg', 'fat': '10 g'}],\n  ['generated control 3', [{'calories': 105, 'carbs': 1.5}], {'calories': '110', 'carbs': '2 g'}]],\n [['large values', [{'calories': 245, 'cholesterol': 22.5, 'fat': 12.5, 'sodium': 455}],\n   {'calories': '250', 'cholesterol': '25 mg', 'fat': '13 g', 'sodium': '460 mg'}],\n  ['small cholesterol', [{'carbs': 12.5, 'cholesterol': 3}],\n   {'carbs': '13 g', 'cholesterol': 'less than 5 mg'}],\n  ['empty panel', [{}], {}],\n  ['regression: calorie coarse band step',\n   [{'calories': 54.75, 'carbs': 0.9, 'cholesterol': 4.9, 'sodium': 181.5}],\n   {'calories': '50', 'carbs': 'less than 1 g', 'cholesterol': 'less than 5 mg', 'sodium': '180 mg'}],\n  ['repair check: calorie coarse band step', [{'calories': 55.25, 'cholesterol': 1.5, 'fat': 1.25}],\n   {'calories': '60', 'cholesterol': '0 mg', 'fat': '1.5 g'}],\n  ['generated control 1', [{'calories': 49.25, 'carbs': 0.9, 'cholesterol': 7.5, 'fat': 6, 'sodium': 171.5}],\n   {'calories': '50', 'carbs': 'less than 1 g', 'cholesterol': '10 mg', 'fat': '6 g', 'sodium': '170 mg'}],\n  ['generated control 2', [{'calories': 60, 'fat': 16.75, 'sodium': 8}],\n   {'calories': '60', 'fat': '17 g', 'sodium': '10 mg'}],\n  ['generated control 3', [{'carbs': 1.5, 'fat': 5.25, 'sodium': 142.5}],\n   {'carbs': '2 g', 'fat': '5 g', 'sodium': '140 mg'}]],\n [['small cholesterol', [{'carbs': 12.5, 'cholesterol': 3}],\n   {'carbs': '13 g', 'cholesterol': 'less than 5 mg'}],\n  ['empty panel', [{}], {}],\n  ['insignificant calories', [{'calories': 4.9, 'fat': 0.4}], {'calories': '0', 'fat': '0 g'}],\n  ['regression: calorie coarse band step',\n   [{'calories': 105, 'cholesterol': 12, 'fat': 1.25, 'sodium': 10.5}],\n   {'calories': '110', 'cholesterol': '10 mg', 'fat': '1.5 g', 'sodium': '10 mg'}],\n  ['repair check: calorie coarse band step', [{'calories': 55, 'fat': 2.5, 'sodium': 137.5}],\n   {'calories': '60', 'fat': '2.5 g', 'sodium': '140 mg'}],\n  ['generated control 1', [{'fat': 2.75, 'sodium': 101.5}], {'fat': '3 g', 'sodium': '100 mg'}],\n  ['generated control 2', [{'calories': 251.5, 'carbs': 12.5, 'fat': 4.75, 'sodium': 10.25}],\n   {'calories': '250', 'carbs': '13 g', 'fat': '5 g', 'sodium': '10 mg'}],\n  ['generated control 3', [{'calories': 47.5, 'carbs': 30.4, 'fat': 1.25, 'sodium': 4.25}],\n   {'calories': '50', 'carbs': '30 g', 'fat': '1.5 g', 'sodium': '0 mg'}]]]\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-recipe_scaling_and_nutrition-label-rounding-calorie-coarse-band-step","generated_at":"2026-09-29T14:52:26.663829+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Packaged food and meal-kit labels are generated from recipe nutrition totals with banded rounding rules that differ per nutrient.","repair":"Round calories above 50 to the nearest 10.","root_cause":"Above 50 kcal the value keeps the 5-calorie step instead of switching to the 10-calorie step.","sha256":"b92a351a86a7238b0c0f9afcf5f9fc617eb6b7dc85bee42629415083121ba8a7","title":"Nutrition label rounding: calorie coarse band step · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.311,"exit_code":1,"observations":[{"actual":{},"check":"empty panel","expected":{},"passed":true},{"actual":{"calories":"0","fat":"0 g"},"check":"insignificant calories","expected":{"calories":"0","fat":"0 g"},"passed":true},{"actual":{"carbs":"less than 1 g","sodium":"140 mg"},"check":"mid-band sodium","expected":{"carbs":"less than 1 g","sodium":"140 mg"},"passed":true},{"actual":{"calories":"140","carbs":"less than 1 g","cholesterol":"less than 5 mg","fat":"3.5 g","sodium":"10 mg"},"check":"regression: calorie coarse band step","expected":{"calories":"140","carbs":"less than 1 g","cholesterol":"less than 5 mg","fat":"3.5 g","sodium":"10 mg"},"passed":true},{"actual":{"calories":"55","carbs":"2 g","fat":"11 g","sodium":"10 mg"},"check":"repair check: calorie coarse band step","expected":{"calories":"60","carbs":"2 g","fat":"11 g","sodium":"10 mg"},"passed":false},{"actual":{"cholesterol":"10 mg","fat":"15 g"},"check":"generated control 1","expected":{"cholesterol":"10 mg","fat":"15 g"},"passed":true},{"actual":{"calories":"45","fat":"3 g","sodium":"15 mg"},"check":"generated control 2","expected":{"calories":"45","fat":"3 g","sodium":"15 mg"},"passed":true},{"actual":{"calories":"350","fat":"4 g"},"check":"generated control 3","expected":{"calories":"350","fat":"4 g"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"empty panel\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"insignificant calories\", \"actual\": {\"calories\": \"0\", \"fat\": \"0 g\"}, \"expected\": {\"calories\": \"0\", \"fat\": \"0 g\"}, \"passed\": true}, {\"check\": \"mid-band sodium\", \"actual\": {\"sodium\": \"140 mg\", \"carbs\": \"less than 1 g\"}, \"expected\": {\"carbs\": \"less than 1 g\", \"sodium\": \"140 mg\"}, \"passed\": true}, {\"check\": \"regression: calorie coarse band step\", \"actual\": {\"calories\": \"140\", \"fat\": \"3.5 g\", \"sodium\": \"10 mg\", \"cholesterol\": \"less than 5 mg\", \"carbs\": \"less than 1 g\"}, \"expected\": {\"calories\": \"140\", \"carbs\": \"less than 1 g\", \"cholesterol\": \"less than 5 mg\", \"fat\": \"3.5 g\", \"sodium\": \"10 mg\"}, \"passed\": true}, {\"check\": \"repair check: calorie coarse band step\", \"actual\": {\"calories\": \"55\", \"fat\": \"11 g\", \"sodium\": \"10 mg\", \"carbs\": \"2 g\"}, \"expected\": {\"calories\": \"60\", \"carbs\": \"2 g\", \"fat\": \"11 g\", \"sodium\": \"10 mg\"}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": {\"fat\": \"15 g\", \"cholesterol\": \"10 mg\"}, \"expected\": {\"cholesterol\": \"10 mg\", \"fat\": \"15 g\"}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"calories\": \"45\", \"fat\": \"3 g\", \"sodium\": \"15 mg\"}, \"expected\": {\"calories\": \"45\", \"fat\": \"3 g\", \"sodium\": \"15 mg\"}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"calories\": \"350\", \"fat\": \"4 g\"}, \"expected\": {\"calories\": \"350\", \"fat\": \"4 g\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.303,"exit_code":1,"observations":[{"actual":{},"check":"empty panel","expected":{},"passed":true},{"actual":{"calories":"0","fat":"0 g"},"check":"insignificant calories","expected":{"calories":"0","fat":"0 g"},"passed":true},{"actual":{"carbs":"less than 1 g","sodium":"140 mg"},"check":"mid-band sodium","expected":{"carbs":"less than 1 g","sodium":"140 mg"},"passed":true},{"actual":{"calories":"135","carbs":"less than 1 g","cholesterol":"less than 5 mg","fat":"3.5 g","sodium":"10 mg"},"check":"regression: calorie coarse band step","expected":{"calories":"140","carbs":"less than 1 g","cholesterol":"less than 5 mg","fat":"3.5 g","sodium":"10 mg"},"passed":false},{"actual":{"calories":"55","carbs":"2 g","fat":"11 g","sodium":"10 mg"},"check":"repair check: calorie coarse band step","expected":{"calories":"60","carbs":"2 g","fat":"11 g","sodium":"10 mg"},"passed":false},{"actual":{"cholesterol":"10 mg","fat":"15 g"},"check":"generated control 1","expected":{"cholesterol":"10 mg","fat":"15 g"},"passed":true},{"actual":{"calories":"45","fat":"3 g","sodium":"15 mg"},"check":"generated control 2","expected":{"calories":"45","fat":"3 g","sodium":"15 mg"},"passed":true},{"actual":{"calories":"350","fat":"4 g"},"check":"generated control 3","expected":{"calories":"350","fat":"4 g"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"empty panel\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"insignificant calories\", \"actual\": {\"calories\": \"0\", \"fat\": \"0 g\"}, \"expected\": {\"calories\": \"0\", \"fat\": \"0 g\"}, \"passed\": true}, {\"check\": \"mid-band sodium\", \"actual\": {\"sodium\": \"140 mg\", \"carbs\": \"less than 1 g\"}, \"expected\": {\"carbs\": \"less than 1 g\", \"sodium\": \"140 mg\"}, \"passed\": true}, {\"check\": \"regression: calorie coarse band step\", \"actual\": {\"calories\": \"135\", \"fat\": \"3.5 g\", \"sodium\": \"10 mg\", \"cholesterol\": \"less than 5 mg\", \"carbs\": \"less than 1 g\"}, \"expected\": {\"calories\": \"140\", \"carbs\": \"less than 1 g\", \"cholesterol\": \"less than 5 mg\", \"fat\": \"3.5 g\", \"sodium\": \"10 mg\"}, \"passed\": false}, {\"check\": \"repair check: calorie coarse band step\", \"actual\": {\"calories\": \"55\", \"fat\": \"11 g\", \"sodium\": \"10 mg\", \"carbs\": \"2 g\"}, \"expected\": {\"calories\": \"60\", \"carbs\": \"2 g\", \"fat\": \"11 g\", \"sodium\": \"10 mg\"}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": {\"fat\": \"15 g\", \"cholesterol\": \"10 mg\"}, \"expected\": {\"cholesterol\": \"10 mg\", \"fat\": \"15 g\"}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"calories\": \"45\", \"fat\": \"3 g\", \"sodium\": \"15 mg\"}, \"expected\": {\"calories\": \"45\", \"fat\": \"3 g\", \"sodium\": \"15 mg\"}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"calories\": \"350\", \"fat\": \"4 g\"}, \"expected\": {\"calories\": \"350\", \"fat\": \"4 g\"}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.365,"exit_code":0,"observations":[{"actual":{},"check":"empty panel","expected":{},"passed":true},{"actual":{"calories":"0","fat":"0 g"},"check":"insignificant calories","expected":{"calories":"0","fat":"0 g"},"passed":true},{"actual":{"carbs":"less than 1 g","sodium":"140 mg"},"check":"mid-band sodium","expected":{"carbs":"less than 1 g","sodium":"140 mg"},"passed":true},{"actual":{"calories":"140","carbs":"less than 1 g","cholesterol":"less than 5 mg","fat":"3.5 g","sodium":"10 mg"},"check":"regression: calorie coarse band step","expected":{"calories":"140","carbs":"less than 1 g","cholesterol":"less than 5 mg","fat":"3.5 g","sodium":"10 mg"},"passed":true},{"actual":{"calories":"60","carbs":"2 g","fat":"11 g","sodium":"10 mg"},"check":"repair check: calorie coarse band step","expected":{"calories":"60","carbs":"2 g","fat":"11 g","sodium":"10 mg"},"passed":true},{"actual":{"cholesterol":"10 mg","fat":"15 g"},"check":"generated control 1","expected":{"cholesterol":"10 mg","fat":"15 g"},"passed":true},{"actual":{"calories":"45","fat":"3 g","sodium":"15 mg"},"check":"generated control 2","expected":{"calories":"45","fat":"3 g","sodium":"15 mg"},"passed":true},{"actual":{"calories":"350","fat":"4 g"},"check":"generated control 3","expected":{"calories":"350","fat":"4 g"},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"empty panel\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"insignificant calories\", \"actual\": {\"calories\": \"0\", \"fat\": \"0 g\"}, \"expected\": {\"calories\": \"0\", \"fat\": \"0 g\"}, \"passed\": true}, {\"check\": \"mid-band sodium\", \"actual\": {\"sodium\": \"140 mg\", \"carbs\": \"less than 1 g\"}, \"expected\": {\"carbs\": \"less than 1 g\", \"sodium\": \"140 mg\"}, \"passed\": true}, {\"check\": \"regression: calorie coarse band step\", \"actual\": {\"calories\": \"140\", \"fat\": \"3.5 g\", \"sodium\": \"10 mg\", \"cholesterol\": \"less than 5 mg\", \"carbs\": \"less than 1 g\"}, \"expected\": {\"calories\": \"140\", \"carbs\": \"less than 1 g\", \"cholesterol\": \"less than 5 mg\", \"fat\": \"3.5 g\", \"sodium\": \"10 mg\"}, \"passed\": true}, {\"check\": \"repair check: calorie coarse band step\", \"actual\": {\"calories\": \"60\", \"fat\": \"11 g\", \"sodium\": \"10 mg\", \"carbs\": \"2 g\"}, \"expected\": {\"calories\": \"60\", \"carbs\": \"2 g\", \"fat\": \"11 g\", \"sodium\": \"10 mg\"}, \"passed\": true}, {\"check\": \"generated control 1\", \"actual\": {\"fat\": \"15 g\", \"cholesterol\": \"10 mg\"}, \"expected\": {\"cholesterol\": \"10 mg\", \"fat\": \"15 g\"}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"calories\": \"45\", \"fat\": \"3 g\", \"sodium\": \"15 mg\"}, \"expected\": {\"calories\": \"45\", \"fat\": \"3 g\", \"sodium\": \"15 mg\"}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"calories\": \"350\", \"fat\": \"4 g\"}, \"expected\": {\"calories\": \"350\", \"fat\": \"4 g\"}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}