{"abstract":"A bay leaf removed before serving still adds weight and calories.","category":"Recipe scaling and nutrition","checks":8,"contract":"Rows [name, raw_g, kcal_per_100g, sodium_mg_per_100g, use]; use \"eat\" counts fully, \"marinade\" retains 1/5 of its weight and nutrients, \"discard\" contributes nothing. Cooked weight = retained raw weight * yield_pct/100 (moisture loss changes weight, not energy or sodium). Return half-up integers: serving_g = cooked/servings, kcal and sodium_mg per serving, kcal_per_100g of cooked dish (0 if nothing is retained). servings < 1 returns an error string.","evaluation_group":"w2-recipe_scaling_and_nutrition-cooked-yield-nutrition","failed_approach":"Skipping only light discards still counts a 20 g lemon rind that is removed.","family":"w2-recipe_scaling_and_nutrition-cooked-yield-nutrition-discarded-aromatics","id":"FA-96971","implementations":{"attempt":{"sha256":"8c02b0430849012041a450989dbd9ddf48c574ff8a574a2a23f7896e5902ef57","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(ingredients, yield_pct, servings):\n    if servings < 1:\n        return 'error: servings'\n    kcal = Fraction(0)\n    na = Fraction(0)\n    raw = Fraction(0)\n    for name, g, k, s, use in ingredients:\n        if use == 'discard' and g < 10:\n            continue\n        share = Fraction(1, 5) if use == 'marinade' else Fraction(1)\n        grams = Fraction(g) * share\n        raw += grams\n        kcal += grams * k / 100\n        na += grams * s / 100\n    cooked = raw * Fraction(yield_pct, 100)\n    def r(x):\n        return math.floor(x + Fraction(1, 2))\n    return {'serving_g': r(cooked / servings), 'kcal': r(kcal / servings), 'sodium_mg': r(na / servings),\n            'kcal_per_100g': r(kcal * 100 / cooked) if cooked else 0}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['plain dish', [[['rice', 300, 130, 1, 'eat']], 100, 3],\n   {'kcal': 130, 'kcal_per_100g': 130, 'serving_g': 100, 'sodium_mg': 1}],\n  ['zero servings', [[['rice', 300, 130, 1, 'eat']], 80, 0], 'error: servings'],\n  ['only discarded aromatics', [[['bay leaf', 2, 313, 23, 'discard']], 90, 2],\n   {'kcal': 0, 'kcal_per_100g': 0, 'serving_g': 0, 'sodium_mg': 0}],\n  ['regression: discarded aromatics',\n   [[['rice', 300, 130, 1, 'eat'], ['stock', 525, 10, 350, 'eat'], ['lemon rind', 45, 47, 6, 'discard'],\n     ['onion', 175, 40, 4, 'eat'], ['soy marinade', 210, 60, 5500, 'marinade']],\n    90, 4],\n   {'kcal': 134, 'kcal_per_100g': 57, 'serving_g': 234, 'sodium_mg': 1039}],\n  ['repair check: discarded aromatics',\n   [[['bay leaf', 12, 313, 23, 'discard'], ['oil', 30, 884, 0, 'marinade']], 75, 2],\n   {'kcal': 27, 'kcal_per_100g': 1179, 'serving_g': 2, 'sodium_mg': 0}],\n  ['generated control 1',\n   [[['onion', 175, 40, 4, 'eat'], ['stock', 525, 10, 350, 'eat'], ['oil', 30, 884, 0, 'eat']], 100, 1],\n   {'kcal': 388, 'kcal_per_100g': 53, 'serving_g': 730, 'sodium_mg': 1845}],\n  ['generated control 2', [[['oil', 30, 884, 0, 'marinade'], ['onion', 160, 40, 4, 'eat']], 75, 2],\n   {'kcal': 59, 'kcal_per_100g': 94, 'serving_g': 62, 'sodium_mg': 3}],\n  ['generated control 3',\n   [[['onion', 150, 40, 4, 'eat'], ['lemon rind', 30, 47, 6, 'discard'], ['rice', 310, 130, 1, 'eat'],\n     ['chicken', 610, 165, 70, 'eat'], ['bay leaf', 27, 313, 23, 'discard']],\n    75, 5],\n   {'kcal': 294, 'kcal_per_100g': 183, 'serving_g': 161, 'sodium_mg': 87}]],\n [['zero servings', [[['rice', 300, 130, 1, 'eat']], 80, 0], 'error: servings'],\n  ['only discarded aromatics', [[['bay leaf', 2, 313, 23, 'discard']], 90, 2],\n   {'kcal': 0, 'kcal_per_100g': 0, 'serving_g': 0, 'sodium_mg': 0}],\n  ['marinated chicken',\n   [[['chicken', 600, 165, 70, 'eat'], ['soy marinade', 200, 60, 5500, 'marinade']], 75, 4],\n   {'kcal': 254, 'kcal_per_100g': 211, 'serving_g': 120, 'sodium_mg': 655}],\n  ['regression: discarded aromatics',\n   [[['bay leaf', 2, 313, 23, 'eat'], ['chicken', 610, 165, 70, 'eat'], ['lemon rind', 45, 47, 6, 'discard'],\n     ['oil', 55, 884, 0, 'eat']],\n    80, 2],\n   {'kcal': 749, 'kcal_per_100g': 281, 'serving_g': 267, 'sodium_mg': 214}],\n  ['repair check: discarded aromatics',\n   [[['lemon rind', 20, 47, 6, 'discard'], ['chicken', 610, 165, 70, 'eat']], 60, 1],\n   {'kcal': 1007, 'kcal_per_100g': 275, 'serving_g': 366, 'sodium_mg': 427}],\n  ['generated control 1',\n   [[['chicken', 610, 165, 70, 'eat'], ['soy marinade', 210, 60, 5500, 'marinade']], 70, 5],\n   {'kcal': 206, 'kcal_per_100g': 226, 'serving_g': 91, 'sodium_mg': 547}],\n  ['generated control 2',\n   [[['lemon rind', 45, 47, 6, 'eat'], ['soy marinade', 210, 60, 5500, 'marinade'],\n     ['rice', 310, 130, 1, 'eat'], ['chicken', 625, 165, 70, 'eat'], ['bay leaf', 12, 313, 23, 'eat']],\n    70, 6],\n   {'kcal': 253, 'kcal_per_100g': 210, 'serving_g': 121, 'sodium_mg': 459}],\n  ['generated control 3',\n   [[['bay leaf', 2, 313, 23, 'marinade'], ['lemon rind', 30, 47, 6, 'eat'],\n     ['chicken', 600, 165, 70, 'eat']],\n    90, 4],\n   {'kcal': 251, 'kcal_per_100g': 177, 'serving_g': 142, 'sodium_mg': 105}]],\n [['only discarded aromatics', [[['bay leaf', 2, 313, 23, 'discard']], 90, 2],\n   {'kcal': 0, 'kcal_per_100g': 0, 'serving_g': 0, 'sodium_mg': 0}],\n  ['marinated chicken',\n   [[['chicken', 600, 165, 70, 'eat'], ['soy marinade', 200, 60, 5500, 'marinade']], 75, 4],\n   {'kcal': 254, 'kcal_per_100g': 211, 'serving_g': 120, 'sodium_mg': 655}],\n  ['plain dish', [[['rice', 300, 130, 1, 'eat']], 100, 3],\n   {'kcal': 130, 'kcal_per_100g': 130, 'serving_g': 100, 'sodium_mg': 1}],\n  ['regression: discarded aromatics',\n   [[['rice', 300, 130, 1, 'eat'], ['bay leaf', 2, 313, 23, 'discard'], ['oil', 30, 884, 0, 'eat'],\n     ['chicken', 625, 165, 70, 'eat']],\n    75, 4],\n   {'kcal': 422, 'kcal_per_100g': 235, 'serving_g': 179, 'sodium_mg': 110}],\n  ['repair check: discarded aromatics',\n   [[['chicken', 600, 165, 70, 'eat'], ['stock', 500, 10, 350, 'eat'], ['onion', 175, 40, 4, 'eat'],\n     ['soy marinade', 210, 60, 5500, 'marinade'], ['lemon rind', 30, 47, 6, 'discard']],\n    80, 6],\n   {'kcal': 189, 'kcal_per_100g': 108, 'serving_g': 176, 'sodium_mg': 748}],\n  ['generated control 1',\n   [[['stock', 525, 10, 350, 'eat'], ['oil', 30, 884, 0, 'eat'], ['bay leaf', 2, 313, 23, 'discard'],\n     ['rice', 310, 130, 1, 'eat'], ['chicken', 600, 165, 70, 'eat']],\n    60, 4],\n   {'kcal': 428, 'kcal_per_100g': 195, 'serving_g': 220, 'sodium_mg': 565}],\n  ['generated control 2',\n   [[['stock', 510, 10, 350, 'eat'], ['onion', 175, 40, 4, 'eat'], ['rice', 325, 130, 1, 'eat'],\n     ['bay leaf', 2, 313, 23, 'discard'], ['soy marinade', 225, 60, 5500, 'marinade']],\n    75, 5],\n   {'kcal': 114, 'kcal_per_100g': 72, 'serving_g': 158, 'sodium_mg': 854}],\n  ['generated control 3',\n   [[['oil', 30, 884, 0, 'eat'], ['bay leaf', 2, 313, 23, 'discard'],\n     ['soy marinade', 200, 60, 5500, 'marinade']],\n    60, 6],\n   {'kcal': 48, 'kcal_per_100g': 689, 'serving_g': 7, 'sodium_mg': 367}]],\n [['marinated chicken',\n   [[['chicken', 600, 165, 70, 'eat'], ['soy marinade', 200, 60, 5500, 'marinade']], 75, 4],\n   {'kcal': 254, 'kcal_per_100g': 211, 'serving_g': 120, 'sodium_mg': 655}],\n  ['plain dish', [[['rice', 300, 130, 1, 'eat']], 100, 3],\n   {'kcal': 130, 'kcal_per_100g': 130, 'serving_g': 100, 'sodium_mg': 1}],\n  ['zero servings', [[['rice', 300, 130, 1, 'eat']], 80, 0], 'error: servings'],\n  ['regression: discarded aromatics',\n   [[['chicken', 610, 165, 70, 'eat'], ['bay leaf', 2, 313, 23, 'discard'],\n     ['soy marinade', 200, 60, 5500, 'marinade'], ['oil', 40, 884, 0, 'eat'], ['rice', 310, 130, 1, 'eat']],\n    70, 4],\n   {'kcal': 447, 'kcal_per_100g': 255, 'serving_g': 175, 'sodium_mg': 658}],\n  ['repair check: discarded aromatics',\n   [[['stock', 500, 10, 350, 'eat'], ['lemon rind', 30, 47, 6, 'discard']], 60, 2],\n   {'kcal': 25, 'kcal_per_100g': 17, 'serving_g': 150, 'sodium_mg': 875}],\n  ['generated control 1',\n   [[['lemon rind', 45, 47, 6, 'eat'], ['soy marinade', 210, 60, 5500, 'marinade'],\n     ['rice', 310, 130, 1, 'eat']],\n    100, 5],\n   {'kcal': 90, 'kcal_per_100g': 113, 'serving_g': 79, 'sodium_mg': 463}],\n  ['generated control 2',\n   [[['lemon rind', 45, 47, 6, 'eat'], ['bay leaf', 12, 313, 23, 'eat'], ['chicken', 600, 165, 70, 'eat'],\n     ['oil', 30, 884, 0, 'eat'], ['stock', 510, 10, 350, 'eat']],\n    80, 1],\n   {'kcal': 1365, 'kcal_per_100g': 143, 'serving_g': 958, 'sodium_mg': 2210}],\n  ['generated control 3',\n   [[['stock', 500, 10, 350, 'eat'], ['rice', 300, 130, 1, 'eat'], ['oil', 30, 884, 0, 'eat']], 110, 1],\n   {'kcal': 705, 'kcal_per_100g': 77, 'serving_g': 913, 'sodium_mg': 1753}]],\n [['plain dish', [[['rice', 300, 130, 1, 'eat']], 100, 3],\n   {'kcal': 130, 'kcal_per_100g': 130, 'serving_g': 100, 'sodium_mg': 1}],\n  ['zero servings', [[['rice', 300, 130, 1, 'eat']], 80, 0], 'error: servings'],\n  ['only discarded aromatics', [[['bay leaf', 2, 313, 23, 'discard']], 90, 2],\n   {'kcal': 0, 'kcal_per_100g': 0, 'serving_g': 0, 'sodium_mg': 0}],\n  ['regression: discarded aromatics',\n   [[['bay leaf', 27, 313, 23, 'discard'], ['onion', 175, 40, 4, 'eat'], ['stock', 510, 10, 350, 'eat'],\n     ['rice', 310, 130, 1, 'eat']],\n    110, 2],\n   {'kcal': 262, 'kcal_per_100g': 48, 'serving_g': 547, 'sodium_mg': 898}],\n  ['repair check: discarded aromatics',\n   [[['bay leaf', 27, 313, 23, 'discard'], ['rice', 310, 130, 1, 'eat'], ['onion', 150, 40, 4, 'eat']], 70,\n    2],\n   {'kcal': 232, 'kcal_per_100g': 144, 'serving_g': 161, 'sodium_mg': 5}],\n  ['generated control 1',\n   [[['oil', 30, 884, 0, 'eat'], ['rice', 310, 130, 1, 'eat'], ['onion', 160, 40, 4, 'eat']], 90, 5],\n   {'kcal': 146, 'kcal_per_100g': 163, 'serving_g': 90, 'sodium_mg': 2}],\n  ['generated control 2',\n   [[['chicken', 625, 165, 70, 'eat'], ['soy marinade', 200, 60, 5500, 'marinade']], 75, 6],\n   {'kcal': 176, 'kcal_per_100g': 212, 'serving_g': 83, 'sodium_mg': 440}],\n  ['generated control 3',\n   [[['bay leaf', 12, 313, 23, 'discard'], ['onion', 160, 40, 4, 'eat'],\n     ['soy marinade', 200, 60, 5500, 'marinade'], ['stock', 525, 10, 350, 'marinade'],\n     ['oil', 30, 884, 0, 'eat']],\n    70, 2],\n   {'kcal': 182, 'kcal_per_100g': 155, 'serving_g': 117, 'sodium_mg': 1287}]]]\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":"d74dd37569db9641029e68b1253df0cb6c41e46f1d1a6f342c1ee1cb9c73afb5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(ingredients, yield_pct, servings):\n    if servings < 1:\n        return 'error: servings'\n    kcal = Fraction(0)\n    na = Fraction(0)\n    raw = Fraction(0)\n    for name, g, k, s, use in ingredients:\n        if use == 'discard' and k == 0:\n            continue\n        share = Fraction(1, 5) if use == 'marinade' else Fraction(1)\n        grams = Fraction(g) * share\n        raw += grams\n        kcal += grams * k / 100\n        na += grams * s / 100\n    cooked = raw * Fraction(yield_pct, 100)\n    def r(x):\n        return math.floor(x + Fraction(1, 2))\n    return {'serving_g': r(cooked / servings), 'kcal': r(kcal / servings), 'sodium_mg': r(na / servings),\n            'kcal_per_100g': r(kcal * 100 / cooked) if cooked else 0}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['plain dish', [[['rice', 300, 130, 1, 'eat']], 100, 3],\n   {'kcal': 130, 'kcal_per_100g': 130, 'serving_g': 100, 'sodium_mg': 1}],\n  ['zero servings', [[['rice', 300, 130, 1, 'eat']], 80, 0], 'error: servings'],\n  ['only discarded aromatics', [[['bay leaf', 2, 313, 23, 'discard']], 90, 2],\n   {'kcal': 0, 'kcal_per_100g': 0, 'serving_g': 0, 'sodium_mg': 0}],\n  ['regression: discarded aromatics',\n   [[['rice', 300, 130, 1, 'eat'], ['stock', 525, 10, 350, 'eat'], ['lemon rind', 45, 47, 6, 'discard'],\n     ['onion', 175, 40, 4, 'eat'], ['soy marinade', 210, 60, 5500, 'marinade']],\n    90, 4],\n   {'kcal': 134, 'kcal_per_100g': 57, 'serving_g': 234, 'sodium_mg': 1039}],\n  ['repair check: discarded aromatics',\n   [[['bay leaf', 12, 313, 23, 'discard'], ['oil', 30, 884, 0, 'marinade']], 75, 2],\n   {'kcal': 27, 'kcal_per_100g': 1179, 'serving_g': 2, 'sodium_mg': 0}],\n  ['generated control 1',\n   [[['onion', 175, 40, 4, 'eat'], ['stock', 525, 10, 350, 'eat'], ['oil', 30, 884, 0, 'eat']], 100, 1],\n   {'kcal': 388, 'kcal_per_100g': 53, 'serving_g': 730, 'sodium_mg': 1845}],\n  ['generated control 2', [[['oil', 30, 884, 0, 'marinade'], ['onion', 160, 40, 4, 'eat']], 75, 2],\n   {'kcal': 59, 'kcal_per_100g': 94, 'serving_g': 62, 'sodium_mg': 3}],\n  ['generated control 3',\n   [[['onion', 150, 40, 4, 'eat'], ['lemon rind', 30, 47, 6, 'discard'], ['rice', 310, 130, 1, 'eat'],\n     ['chicken', 610, 165, 70, 'eat'], ['bay leaf', 27, 313, 23, 'discard']],\n    75, 5],\n   {'kcal': 294, 'kcal_per_100g': 183, 'serving_g': 161, 'sodium_mg': 87}]],\n [['zero servings', [[['rice', 300, 130, 1, 'eat']], 80, 0], 'error: servings'],\n  ['only discarded aromatics', [[['bay leaf', 2, 313, 23, 'discard']], 90, 2],\n   {'kcal': 0, 'kcal_per_100g': 0, 'serving_g': 0, 'sodium_mg': 0}],\n  ['marinated chicken',\n   [[['chicken', 600, 165, 70, 'eat'], ['soy marinade', 200, 60, 5500, 'marinade']], 75, 4],\n   {'kcal': 254, 'kcal_per_100g': 211, 'serving_g': 120, 'sodium_mg': 655}],\n  ['regression: discarded aromatics',\n   [[['bay leaf', 2, 313, 23, 'eat'], ['chicken', 610, 165, 70, 'eat'], ['lemon rind', 45, 47, 6, 'discard'],\n     ['oil', 55, 884, 0, 'eat']],\n    80, 2],\n   {'kcal': 749, 'kcal_per_100g': 281, 'serving_g': 267, 'sodium_mg': 214}],\n  ['repair check: discarded aromatics',\n   [[['lemon rind', 20, 47, 6, 'discard'], ['chicken', 610, 165, 70, 'eat']], 60, 1],\n   {'kcal': 1007, 'kcal_per_100g': 275, 'serving_g': 366, 'sodium_mg': 427}],\n  ['generated control 1',\n   [[['chicken', 610, 165, 70, 'eat'], ['soy marinade', 210, 60, 5500, 'marinade']], 70, 5],\n   {'kcal': 206, 'kcal_per_100g': 226, 'serving_g': 91, 'sodium_mg': 547}],\n  ['generated control 2',\n   [[['lemon rind', 45, 47, 6, 'eat'], ['soy marinade', 210, 60, 5500, 'marinade'],\n     ['rice', 310, 130, 1, 'eat'], ['chicken', 625, 165, 70, 'eat'], ['bay leaf', 12, 313, 23, 'eat']],\n    70, 6],\n   {'kcal': 253, 'kcal_per_100g': 210, 'serving_g': 121, 'sodium_mg': 459}],\n  ['generated control 3',\n   [[['bay leaf', 2, 313, 23, 'marinade'], ['lemon rind', 30, 47, 6, 'eat'],\n     ['chicken', 600, 165, 70, 'eat']],\n    90, 4],\n   {'kcal': 251, 'kcal_per_100g': 177, 'serving_g': 142, 'sodium_mg': 105}]],\n [['only discarded aromatics', [[['bay leaf', 2, 313, 23, 'discard']], 90, 2],\n   {'kcal': 0, 'kcal_per_100g': 0, 'serving_g': 0, 'sodium_mg': 0}],\n  ['marinated chicken',\n   [[['chicken', 600, 165, 70, 'eat'], ['soy marinade', 200, 60, 5500, 'marinade']], 75, 4],\n   {'kcal': 254, 'kcal_per_100g': 211, 'serving_g': 120, 'sodium_mg': 655}],\n  ['plain dish', [[['rice', 300, 130, 1, 'eat']], 100, 3],\n   {'kcal': 130, 'kcal_per_100g': 130, 'serving_g': 100, 'sodium_mg': 1}],\n  ['regression: discarded aromatics',\n   [[['rice', 300, 130, 1, 'eat'], ['bay leaf', 2, 313, 23, 'discard'], ['oil', 30, 884, 0, 'eat'],\n     ['chicken', 625, 165, 70, 'eat']],\n    75, 4],\n   {'kcal': 422, 'kcal_per_100g': 235, 'serving_g': 179, 'sodium_mg': 110}],\n  ['repair check: discarded aromatics',\n   [[['chicken', 600, 165, 70, 'eat'], ['stock', 500, 10, 350, 'eat'], ['onion', 175, 40, 4, 'eat'],\n     ['soy marinade', 210, 60, 5500, 'marinade'], ['lemon rind', 30, 47, 6, 'discard']],\n    80, 6],\n   {'kcal': 189, 'kcal_per_100g': 108, 'serving_g': 176, 'sodium_mg': 748}],\n  ['generated control 1',\n   [[['stock', 525, 10, 350, 'eat'], ['oil', 30, 884, 0, 'eat'], ['bay leaf', 2, 313, 23, 'discard'],\n     ['rice', 310, 130, 1, 'eat'], ['chicken', 600, 165, 70, 'eat']],\n    60, 4],\n   {'kcal': 428, 'kcal_per_100g': 195, 'serving_g': 220, 'sodium_mg': 565}],\n  ['generated control 2',\n   [[['stock', 510, 10, 350, 'eat'], ['onion', 175, 40, 4, 'eat'], ['rice', 325, 130, 1, 'eat'],\n     ['bay leaf', 2, 313, 23, 'discard'], ['soy marinade', 225, 60, 5500, 'marinade']],\n    75, 5],\n   {'kcal': 114, 'kcal_per_100g': 72, 'serving_g': 158, 'sodium_mg': 854}],\n  ['generated control 3',\n   [[['oil', 30, 884, 0, 'eat'], ['bay leaf', 2, 313, 23, 'discard'],\n     ['soy marinade', 200, 60, 5500, 'marinade']],\n    60, 6],\n   {'kcal': 48, 'kcal_per_100g': 689, 'serving_g': 7, 'sodium_mg': 367}]],\n [['marinated chicken',\n   [[['chicken', 600, 165, 70, 'eat'], ['soy marinade', 200, 60, 5500, 'marinade']], 75, 4],\n   {'kcal': 254, 'kcal_per_100g': 211, 'serving_g': 120, 'sodium_mg': 655}],\n  ['plain dish', [[['rice', 300, 130, 1, 'eat']], 100, 3],\n   {'kcal': 130, 'kcal_per_100g': 130, 'serving_g': 100, 'sodium_mg': 1}],\n  ['zero servings', [[['rice', 300, 130, 1, 'eat']], 80, 0], 'error: servings'],\n  ['regression: discarded aromatics',\n   [[['chicken', 610, 165, 70, 'eat'], ['bay leaf', 2, 313, 23, 'discard'],\n     ['soy marinade', 200, 60, 5500, 'marinade'], ['oil', 40, 884, 0, 'eat'], ['rice', 310, 130, 1, 'eat']],\n    70, 4],\n   {'kcal': 447, 'kcal_per_100g': 255, 'serving_g': 175, 'sodium_mg': 658}],\n  ['repair check: discarded aromatics',\n   [[['stock', 500, 10, 350, 'eat'], ['lemon rind', 30, 47, 6, 'discard']], 60, 2],\n   {'kcal': 25, 'kcal_per_100g': 17, 'serving_g': 150, 'sodium_mg': 875}],\n  ['generated control 1',\n   [[['lemon rind', 45, 47, 6, 'eat'], ['soy marinade', 210, 60, 5500, 'marinade'],\n     ['rice', 310, 130, 1, 'eat']],\n    100, 5],\n   {'kcal': 90, 'kcal_per_100g': 113, 'serving_g': 79, 'sodium_mg': 463}],\n  ['generated control 2',\n   [[['lemon rind', 45, 47, 6, 'eat'], ['bay leaf', 12, 313, 23, 'eat'], ['chicken', 600, 165, 70, 'eat'],\n     ['oil', 30, 884, 0, 'eat'], ['stock', 510, 10, 350, 'eat']],\n    80, 1],\n   {'kcal': 1365, 'kcal_per_100g': 143, 'serving_g': 958, 'sodium_mg': 2210}],\n  ['generated control 3',\n   [[['stock', 500, 10, 350, 'eat'], ['rice', 300, 130, 1, 'eat'], ['oil', 30, 884, 0, 'eat']], 110, 1],\n   {'kcal': 705, 'kcal_per_100g': 77, 'serving_g': 913, 'sodium_mg': 1753}]],\n [['plain dish', [[['rice', 300, 130, 1, 'eat']], 100, 3],\n   {'kcal': 130, 'kcal_per_100g': 130, 'serving_g': 100, 'sodium_mg': 1}],\n  ['zero servings', [[['rice', 300, 130, 1, 'eat']], 80, 0], 'error: servings'],\n  ['only discarded aromatics', [[['bay leaf', 2, 313, 23, 'discard']], 90, 2],\n   {'kcal': 0, 'kcal_per_100g': 0, 'serving_g': 0, 'sodium_mg': 0}],\n  ['regression: discarded aromatics',\n   [[['bay leaf', 27, 313, 23, 'discard'], ['onion', 175, 40, 4, 'eat'], ['stock', 510, 10, 350, 'eat'],\n     ['rice', 310, 130, 1, 'eat']],\n    110, 2],\n   {'kcal': 262, 'kcal_per_100g': 48, 'serving_g': 547, 'sodium_mg': 898}],\n  ['repair check: discarded aromatics',\n   [[['bay leaf', 27, 313, 23, 'discard'], ['rice', 310, 130, 1, 'eat'], ['onion', 150, 40, 4, 'eat']], 70,\n    2],\n   {'kcal': 232, 'kcal_per_100g': 144, 'serving_g': 161, 'sodium_mg': 5}],\n  ['generated control 1',\n   [[['oil', 30, 884, 0, 'eat'], ['rice', 310, 130, 1, 'eat'], ['onion', 160, 40, 4, 'eat']], 90, 5],\n   {'kcal': 146, 'kcal_per_100g': 163, 'serving_g': 90, 'sodium_mg': 2}],\n  ['generated control 2',\n   [[['chicken', 625, 165, 70, 'eat'], ['soy marinade', 200, 60, 5500, 'marinade']], 75, 6],\n   {'kcal': 176, 'kcal_per_100g': 212, 'serving_g': 83, 'sodium_mg': 440}],\n  ['generated control 3',\n   [[['bay leaf', 12, 313, 23, 'discard'], ['onion', 160, 40, 4, 'eat'],\n     ['soy marinade', 200, 60, 5500, 'marinade'], ['stock', 525, 10, 350, 'marinade'],\n     ['oil', 30, 884, 0, 'eat']],\n    70, 2],\n   {'kcal': 182, 'kcal_per_100g': 155, 'serving_g': 117, 'sodium_mg': 1287}]]]\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":"cd24f10cffb95e6e1a77e61a07bd51569185e7da7a131d759b2f0efcd1f3b200","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(ingredients, yield_pct, servings):\n    if servings < 1:\n        return 'error: servings'\n    kcal = Fraction(0)\n    na = Fraction(0)\n    raw = Fraction(0)\n    for name, g, k, s, use in ingredients:\n        if use == 'discard':\n            continue\n        share = Fraction(1, 5) if use == 'marinade' else Fraction(1)\n        grams = Fraction(g) * share\n        raw += grams\n        kcal += grams * k / 100\n        na += grams * s / 100\n    cooked = raw * Fraction(yield_pct, 100)\n    def r(x):\n        return math.floor(x + Fraction(1, 2))\n    return {'serving_g': r(cooked / servings), 'kcal': r(kcal / servings), 'sodium_mg': r(na / servings),\n            'kcal_per_100g': r(kcal * 100 / cooked) if cooked else 0}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['plain dish', [[['rice', 300, 130, 1, 'eat']], 100, 3],\n   {'kcal': 130, 'kcal_per_100g': 130, 'serving_g': 100, 'sodium_mg': 1}],\n  ['zero servings', [[['rice', 300, 130, 1, 'eat']], 80, 0], 'error: servings'],\n  ['only discarded aromatics', [[['bay leaf', 2, 313, 23, 'discard']], 90, 2],\n   {'kcal': 0, 'kcal_per_100g': 0, 'serving_g': 0, 'sodium_mg': 0}],\n  ['regression: discarded aromatics',\n   [[['rice', 300, 130, 1, 'eat'], ['stock', 525, 10, 350, 'eat'], ['lemon rind', 45, 47, 6, 'discard'],\n     ['onion', 175, 40, 4, 'eat'], ['soy marinade', 210, 60, 5500, 'marinade']],\n    90, 4],\n   {'kcal': 134, 'kcal_per_100g': 57, 'serving_g': 234, 'sodium_mg': 1039}],\n  ['repair check: discarded aromatics',\n   [[['bay leaf', 12, 313, 23, 'discard'], ['oil', 30, 884, 0, 'marinade']], 75, 2],\n   {'kcal': 27, 'kcal_per_100g': 1179, 'serving_g': 2, 'sodium_mg': 0}],\n  ['generated control 1',\n   [[['onion', 175, 40, 4, 'eat'], ['stock', 525, 10, 350, 'eat'], ['oil', 30, 884, 0, 'eat']], 100, 1],\n   {'kcal': 388, 'kcal_per_100g': 53, 'serving_g': 730, 'sodium_mg': 1845}],\n  ['generated control 2', [[['oil', 30, 884, 0, 'marinade'], ['onion', 160, 40, 4, 'eat']], 75, 2],\n   {'kcal': 59, 'kcal_per_100g': 94, 'serving_g': 62, 'sodium_mg': 3}],\n  ['generated control 3',\n   [[['onion', 150, 40, 4, 'eat'], ['lemon rind', 30, 47, 6, 'discard'], ['rice', 310, 130, 1, 'eat'],\n     ['chicken', 610, 165, 70, 'eat'], ['bay leaf', 27, 313, 23, 'discard']],\n    75, 5],\n   {'kcal': 294, 'kcal_per_100g': 183, 'serving_g': 161, 'sodium_mg': 87}]],\n [['zero servings', [[['rice', 300, 130, 1, 'eat']], 80, 0], 'error: servings'],\n  ['only discarded aromatics', [[['bay leaf', 2, 313, 23, 'discard']], 90, 2],\n   {'kcal': 0, 'kcal_per_100g': 0, 'serving_g': 0, 'sodium_mg': 0}],\n  ['marinated chicken',\n   [[['chicken', 600, 165, 70, 'eat'], ['soy marinade', 200, 60, 5500, 'marinade']], 75, 4],\n   {'kcal': 254, 'kcal_per_100g': 211, 'serving_g': 120, 'sodium_mg': 655}],\n  ['regression: discarded aromatics',\n   [[['bay leaf', 2, 313, 23, 'eat'], ['chicken', 610, 165, 70, 'eat'], ['lemon rind', 45, 47, 6, 'discard'],\n     ['oil', 55, 884, 0, 'eat']],\n    80, 2],\n   {'kcal': 749, 'kcal_per_100g': 281, 'serving_g': 267, 'sodium_mg': 214}],\n  ['repair check: discarded aromatics',\n   [[['lemon rind', 20, 47, 6, 'discard'], ['chicken', 610, 165, 70, 'eat']], 60, 1],\n   {'kcal': 1007, 'kcal_per_100g': 275, 'serving_g': 366, 'sodium_mg': 427}],\n  ['generated control 1',\n   [[['chicken', 610, 165, 70, 'eat'], ['soy marinade', 210, 60, 5500, 'marinade']], 70, 5],\n   {'kcal': 206, 'kcal_per_100g': 226, 'serving_g': 91, 'sodium_mg': 547}],\n  ['generated control 2',\n   [[['lemon rind', 45, 47, 6, 'eat'], ['soy marinade', 210, 60, 5500, 'marinade'],\n     ['rice', 310, 130, 1, 'eat'], ['chicken', 625, 165, 70, 'eat'], ['bay leaf', 12, 313, 23, 'eat']],\n    70, 6],\n   {'kcal': 253, 'kcal_per_100g': 210, 'serving_g': 121, 'sodium_mg': 459}],\n  ['generated control 3',\n   [[['bay leaf', 2, 313, 23, 'marinade'], ['lemon rind', 30, 47, 6, 'eat'],\n     ['chicken', 600, 165, 70, 'eat']],\n    90, 4],\n   {'kcal': 251, 'kcal_per_100g': 177, 'serving_g': 142, 'sodium_mg': 105}]],\n [['only discarded aromatics', [[['bay leaf', 2, 313, 23, 'discard']], 90, 2],\n   {'kcal': 0, 'kcal_per_100g': 0, 'serving_g': 0, 'sodium_mg': 0}],\n  ['marinated chicken',\n   [[['chicken', 600, 165, 70, 'eat'], ['soy marinade', 200, 60, 5500, 'marinade']], 75, 4],\n   {'kcal': 254, 'kcal_per_100g': 211, 'serving_g': 120, 'sodium_mg': 655}],\n  ['plain dish', [[['rice', 300, 130, 1, 'eat']], 100, 3],\n   {'kcal': 130, 'kcal_per_100g': 130, 'serving_g': 100, 'sodium_mg': 1}],\n  ['regression: discarded aromatics',\n   [[['rice', 300, 130, 1, 'eat'], ['bay leaf', 2, 313, 23, 'discard'], ['oil', 30, 884, 0, 'eat'],\n     ['chicken', 625, 165, 70, 'eat']],\n    75, 4],\n   {'kcal': 422, 'kcal_per_100g': 235, 'serving_g': 179, 'sodium_mg': 110}],\n  ['repair check: discarded aromatics',\n   [[['chicken', 600, 165, 70, 'eat'], ['stock', 500, 10, 350, 'eat'], ['onion', 175, 40, 4, 'eat'],\n     ['soy marinade', 210, 60, 5500, 'marinade'], ['lemon rind', 30, 47, 6, 'discard']],\n    80, 6],\n   {'kcal': 189, 'kcal_per_100g': 108, 'serving_g': 176, 'sodium_mg': 748}],\n  ['generated control 1',\n   [[['stock', 525, 10, 350, 'eat'], ['oil', 30, 884, 0, 'eat'], ['bay leaf', 2, 313, 23, 'discard'],\n     ['rice', 310, 130, 1, 'eat'], ['chicken', 600, 165, 70, 'eat']],\n    60, 4],\n   {'kcal': 428, 'kcal_per_100g': 195, 'serving_g': 220, 'sodium_mg': 565}],\n  ['generated control 2',\n   [[['stock', 510, 10, 350, 'eat'], ['onion', 175, 40, 4, 'eat'], ['rice', 325, 130, 1, 'eat'],\n     ['bay leaf', 2, 313, 23, 'discard'], ['soy marinade', 225, 60, 5500, 'marinade']],\n    75, 5],\n   {'kcal': 114, 'kcal_per_100g': 72, 'serving_g': 158, 'sodium_mg': 854}],\n  ['generated control 3',\n   [[['oil', 30, 884, 0, 'eat'], ['bay leaf', 2, 313, 23, 'discard'],\n     ['soy marinade', 200, 60, 5500, 'marinade']],\n    60, 6],\n   {'kcal': 48, 'kcal_per_100g': 689, 'serving_g': 7, 'sodium_mg': 367}]],\n [['marinated chicken',\n   [[['chicken', 600, 165, 70, 'eat'], ['soy marinade', 200, 60, 5500, 'marinade']], 75, 4],\n   {'kcal': 254, 'kcal_per_100g': 211, 'serving_g': 120, 'sodium_mg': 655}],\n  ['plain dish', [[['rice', 300, 130, 1, 'eat']], 100, 3],\n   {'kcal': 130, 'kcal_per_100g': 130, 'serving_g': 100, 'sodium_mg': 1}],\n  ['zero servings', [[['rice', 300, 130, 1, 'eat']], 80, 0], 'error: servings'],\n  ['regression: discarded aromatics',\n   [[['chicken', 610, 165, 70, 'eat'], ['bay leaf', 2, 313, 23, 'discard'],\n     ['soy marinade', 200, 60, 5500, 'marinade'], ['oil', 40, 884, 0, 'eat'], ['rice', 310, 130, 1, 'eat']],\n    70, 4],\n   {'kcal': 447, 'kcal_per_100g': 255, 'serving_g': 175, 'sodium_mg': 658}],\n  ['repair check: discarded aromatics',\n   [[['stock', 500, 10, 350, 'eat'], ['lemon rind', 30, 47, 6, 'discard']], 60, 2],\n   {'kcal': 25, 'kcal_per_100g': 17, 'serving_g': 150, 'sodium_mg': 875}],\n  ['generated control 1',\n   [[['lemon rind', 45, 47, 6, 'eat'], ['soy marinade', 210, 60, 5500, 'marinade'],\n     ['rice', 310, 130, 1, 'eat']],\n    100, 5],\n   {'kcal': 90, 'kcal_per_100g': 113, 'serving_g': 79, 'sodium_mg': 463}],\n  ['generated control 2',\n   [[['lemon rind', 45, 47, 6, 'eat'], ['bay leaf', 12, 313, 23, 'eat'], ['chicken', 600, 165, 70, 'eat'],\n     ['oil', 30, 884, 0, 'eat'], ['stock', 510, 10, 350, 'eat']],\n    80, 1],\n   {'kcal': 1365, 'kcal_per_100g': 143, 'serving_g': 958, 'sodium_mg': 2210}],\n  ['generated control 3',\n   [[['stock', 500, 10, 350, 'eat'], ['rice', 300, 130, 1, 'eat'], ['oil', 30, 884, 0, 'eat']], 110, 1],\n   {'kcal': 705, 'kcal_per_100g': 77, 'serving_g': 913, 'sodium_mg': 1753}]],\n [['plain dish', [[['rice', 300, 130, 1, 'eat']], 100, 3],\n   {'kcal': 130, 'kcal_per_100g': 130, 'serving_g': 100, 'sodium_mg': 1}],\n  ['zero servings', [[['rice', 300, 130, 1, 'eat']], 80, 0], 'error: servings'],\n  ['only discarded aromatics', [[['bay leaf', 2, 313, 23, 'discard']], 90, 2],\n   {'kcal': 0, 'kcal_per_100g': 0, 'serving_g': 0, 'sodium_mg': 0}],\n  ['regression: discarded aromatics',\n   [[['bay leaf', 27, 313, 23, 'discard'], ['onion', 175, 40, 4, 'eat'], ['stock', 510, 10, 350, 'eat'],\n     ['rice', 310, 130, 1, 'eat']],\n    110, 2],\n   {'kcal': 262, 'kcal_per_100g': 48, 'serving_g': 547, 'sodium_mg': 898}],\n  ['repair check: discarded aromatics',\n   [[['bay leaf', 27, 313, 23, 'discard'], ['rice', 310, 130, 1, 'eat'], ['onion', 150, 40, 4, 'eat']], 70,\n    2],\n   {'kcal': 232, 'kcal_per_100g': 144, 'serving_g': 161, 'sodium_mg': 5}],\n  ['generated control 1',\n   [[['oil', 30, 884, 0, 'eat'], ['rice', 310, 130, 1, 'eat'], ['onion', 160, 40, 4, 'eat']], 90, 5],\n   {'kcal': 146, 'kcal_per_100g': 163, 'serving_g': 90, 'sodium_mg': 2}],\n  ['generated control 2',\n   [[['chicken', 625, 165, 70, 'eat'], ['soy marinade', 200, 60, 5500, 'marinade']], 75, 6],\n   {'kcal': 176, 'kcal_per_100g': 212, 'serving_g': 83, 'sodium_mg': 440}],\n  ['generated control 3',\n   [[['bay leaf', 12, 313, 23, 'discard'], ['onion', 160, 40, 4, 'eat'],\n     ['soy marinade', 200, 60, 5500, 'marinade'], ['stock', 525, 10, 350, 'marinade'],\n     ['oil', 30, 884, 0, 'eat']],\n    70, 2],\n   {'kcal': 182, 'kcal_per_100g': 155, 'serving_g': 117, 'sodium_mg': 1287}]]]\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-cooked-yield-nutrition-discarded-aromatics","generated_at":"2026-09-29T14:52:27.606821+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Recipe nutrition must account for cooking moisture loss and for marinades and aromatics that are not eaten.","repair":"Skip every discard row regardless of its values.","root_cause":"Discarded rows are skipped only when they have zero energy.","sha256":"07d29edac874b6f1292deac816c38d4cf627a4c2dc3448e268041e0ca8f06f88","title":"Cooked-yield nutrition per serving: discarded aromatics · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.406,"exit_code":1,"observations":[{"actual":{"kcal":130,"kcal_per_100g":130,"serving_g":100,"sodium_mg":1},"check":"plain dish","expected":{"kcal":130,"kcal_per_100g":130,"serving_g":100,"sodium_mg":1},"passed":true},{"actual":"error: servings","check":"zero servings","expected":"error: servings","passed":true},{"actual":{"kcal":0,"kcal_per_100g":0,"serving_g":0,"sodium_mg":0},"check":"only discarded aromatics","expected":{"kcal":0,"kcal_per_100g":0,"serving_g":0,"sodium_mg":0},"passed":true},{"actual":{"kcal":140,"kcal_per_100g":57,"serving_g":245,"sodium_mg":1040},"check":"regression: discarded aromatics","expected":{"kcal":134,"kcal_per_100g":57,"serving_g":234,"sodium_mg":1039},"passed":false},{"actual":{"kcal":45,"kcal_per_100g":671,"serving_g":7,"sodium_mg":1},"check":"repair check: discarded aromatics","expected":{"kcal":27,"kcal_per_100g":1179,"serving_g":2,"sodium_mg":0},"passed":false},{"actual":{"kcal":388,"kcal_per_100g":53,"serving_g":730,"sodium_mg":1845},"check":"generated control 1","expected":{"kcal":388,"kcal_per_100g":53,"serving_g":730,"sodium_mg":1845},"passed":true},{"actual":{"kcal":59,"kcal_per_100g":94,"serving_g":62,"sodium_mg":3},"check":"generated control 2","expected":{"kcal":59,"kcal_per_100g":94,"serving_g":62,"sodium_mg":3},"passed":true},{"actual":{"kcal":314,"kcal_per_100g":186,"serving_g":169,"sodium_mg":89},"check":"generated control 3","expected":{"kcal":294,"kcal_per_100g":183,"serving_g":161,"sodium_mg":87},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"plain dish\", \"actual\": {\"serving_g\": 100, \"kcal\": 130, \"sodium_mg\": 1, \"kcal_per_100g\": 130}, \"expected\": {\"kcal\": 130, \"kcal_per_100g\": 130, \"serving_g\": 100, \"sodium_mg\": 1}, \"passed\": true}, {\"check\": \"zero servings\", \"actual\": \"error: servings\", \"expected\": \"error: servings\", \"passed\": true}, {\"check\": \"only discarded aromatics\", \"actual\": {\"serving_g\": 0, \"kcal\": 0, \"sodium_mg\": 0, \"kcal_per_100g\": 0}, \"expected\": {\"kcal\": 0, \"kcal_per_100g\": 0, \"serving_g\": 0, \"sodium_mg\": 0}, \"passed\": true}, {\"check\": \"regression: discarded aromatics\", \"actual\": {\"serving_g\": 245, \"kcal\": 140, \"sodium_mg\": 1040, \"kcal_per_100g\": 57}, \"expected\": {\"kcal\": 134, \"kcal_per_100g\": 57, \"serving_g\": 234, \"sodium_mg\": 1039}, \"passed\": false}, {\"check\": \"repair check: discarded aromatics\", \"actual\": {\"serving_g\": 7, \"kcal\": 45, \"sodium_mg\": 1, \"kcal_per_100g\": 671}, \"expected\": {\"kcal\": 27, \"kcal_per_100g\": 1179, \"serving_g\": 2, \"sodium_mg\": 0}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": {\"serving_g\": 730, \"kcal\": 388, \"sodium_mg\": 1845, \"kcal_per_100g\": 53}, \"expected\": {\"kcal\": 388, \"kcal_per_100g\": 53, \"serving_g\": 730, \"sodium_mg\": 1845}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"serving_g\": 62, \"kcal\": 59, \"sodium_mg\": 3, \"kcal_per_100g\": 94}, \"expected\": {\"kcal\": 59, \"kcal_per_100g\": 94, \"serving_g\": 62, \"sodium_mg\": 3}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"serving_g\": 169, \"kcal\": 314, \"sodium_mg\": 89, \"kcal_per_100g\": 186}, \"expected\": {\"kcal\": 294, \"kcal_per_100g\": 183, \"serving_g\": 161, \"sodium_mg\": 87}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.47,"exit_code":1,"observations":[{"actual":{"kcal":130,"kcal_per_100g":130,"serving_g":100,"sodium_mg":1},"check":"plain dish","expected":{"kcal":130,"kcal_per_100g":130,"serving_g":100,"sodium_mg":1},"passed":true},{"actual":"error: servings","check":"zero servings","expected":"error: servings","passed":true},{"actual":{"kcal":3,"kcal_per_100g":348,"serving_g":1,"sodium_mg":0},"check":"only discarded aromatics","expected":{"kcal":0,"kcal_per_100g":0,"serving_g":0,"sodium_mg":0},"passed":false},{"actual":{"kcal":140,"kcal_per_100g":57,"serving_g":245,"sodium_mg":1040},"check":"regression: discarded aromatics","expected":{"kcal":134,"kcal_per_100g":57,"serving_g":234,"sodium_mg":1039},"passed":false},{"actual":{"kcal":45,"kcal_per_100g":671,"serving_g":7,"sodium_mg":1},"check":"repair check: discarded aromatics","expected":{"kcal":27,"kcal_per_100g":1179,"serving_g":2,"sodium_mg":0},"passed":false},{"actual":{"kcal":388,"kcal_per_100g":53,"serving_g":730,"sodium_mg":1845},"check":"generated control 1","expected":{"kcal":388,"kcal_per_100g":53,"serving_g":730,"sodium_mg":1845},"passed":true},{"actual":{"kcal":59,"kcal_per_100g":94,"serving_g":62,"sodium_mg":3},"check":"generated control 2","expected":{"kcal":59,"kcal_per_100g":94,"serving_g":62,"sodium_mg":3},"passed":true},{"actual":{"kcal":314,"kcal_per_100g":186,"serving_g":169,"sodium_mg":89},"check":"generated control 3","expected":{"kcal":294,"kcal_per_100g":183,"serving_g":161,"sodium_mg":87},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"plain dish\", \"actual\": {\"serving_g\": 100, \"kcal\": 130, \"sodium_mg\": 1, \"kcal_per_100g\": 130}, \"expected\": {\"kcal\": 130, \"kcal_per_100g\": 130, \"serving_g\": 100, \"sodium_mg\": 1}, \"passed\": true}, {\"check\": \"zero servings\", \"actual\": \"error: servings\", \"expected\": \"error: servings\", \"passed\": true}, {\"check\": \"only discarded aromatics\", \"actual\": {\"serving_g\": 1, \"kcal\": 3, \"sodium_mg\": 0, \"kcal_per_100g\": 348}, \"expected\": {\"kcal\": 0, \"kcal_per_100g\": 0, \"serving_g\": 0, \"sodium_mg\": 0}, \"passed\": false}, {\"check\": \"regression: discarded aromatics\", \"actual\": {\"serving_g\": 245, \"kcal\": 140, \"sodium_mg\": 1040, \"kcal_per_100g\": 57}, \"expected\": {\"kcal\": 134, \"kcal_per_100g\": 57, \"serving_g\": 234, \"sodium_mg\": 1039}, \"passed\": false}, {\"check\": \"repair check: discarded aromatics\", \"actual\": {\"serving_g\": 7, \"kcal\": 45, \"sodium_mg\": 1, \"kcal_per_100g\": 671}, \"expected\": {\"kcal\": 27, \"kcal_per_100g\": 1179, \"serving_g\": 2, \"sodium_mg\": 0}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": {\"serving_g\": 730, \"kcal\": 388, \"sodium_mg\": 1845, \"kcal_per_100g\": 53}, \"expected\": {\"kcal\": 388, \"kcal_per_100g\": 53, \"serving_g\": 730, \"sodium_mg\": 1845}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"serving_g\": 62, \"kcal\": 59, \"sodium_mg\": 3, \"kcal_per_100g\": 94}, \"expected\": {\"kcal\": 59, \"kcal_per_100g\": 94, \"serving_g\": 62, \"sodium_mg\": 3}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"serving_g\": 169, \"kcal\": 314, \"sodium_mg\": 89, \"kcal_per_100g\": 186}, \"expected\": {\"kcal\": 294, \"kcal_per_100g\": 183, \"serving_g\": 161, \"sodium_mg\": 87}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.422,"exit_code":0,"observations":[{"actual":{"kcal":130,"kcal_per_100g":130,"serving_g":100,"sodium_mg":1},"check":"plain dish","expected":{"kcal":130,"kcal_per_100g":130,"serving_g":100,"sodium_mg":1},"passed":true},{"actual":"error: servings","check":"zero servings","expected":"error: servings","passed":true},{"actual":{"kcal":0,"kcal_per_100g":0,"serving_g":0,"sodium_mg":0},"check":"only discarded aromatics","expected":{"kcal":0,"kcal_per_100g":0,"serving_g":0,"sodium_mg":0},"passed":true},{"actual":{"kcal":134,"kcal_per_100g":57,"serving_g":234,"sodium_mg":1039},"check":"regression: discarded aromatics","expected":{"kcal":134,"kcal_per_100g":57,"serving_g":234,"sodium_mg":1039},"passed":true},{"actual":{"kcal":27,"kcal_per_100g":1179,"serving_g":2,"sodium_mg":0},"check":"repair check: discarded aromatics","expected":{"kcal":27,"kcal_per_100g":1179,"serving_g":2,"sodium_mg":0},"passed":true},{"actual":{"kcal":388,"kcal_per_100g":53,"serving_g":730,"sodium_mg":1845},"check":"generated control 1","expected":{"kcal":388,"kcal_per_100g":53,"serving_g":730,"sodium_mg":1845},"passed":true},{"actual":{"kcal":59,"kcal_per_100g":94,"serving_g":62,"sodium_mg":3},"check":"generated control 2","expected":{"kcal":59,"kcal_per_100g":94,"serving_g":62,"sodium_mg":3},"passed":true},{"actual":{"kcal":294,"kcal_per_100g":183,"serving_g":161,"sodium_mg":87},"check":"generated control 3","expected":{"kcal":294,"kcal_per_100g":183,"serving_g":161,"sodium_mg":87},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"plain dish\", \"actual\": {\"serving_g\": 100, \"kcal\": 130, \"sodium_mg\": 1, \"kcal_per_100g\": 130}, \"expected\": {\"kcal\": 130, \"kcal_per_100g\": 130, \"serving_g\": 100, \"sodium_mg\": 1}, \"passed\": true}, {\"check\": \"zero servings\", \"actual\": \"error: servings\", \"expected\": \"error: servings\", \"passed\": true}, {\"check\": \"only discarded aromatics\", \"actual\": {\"serving_g\": 0, \"kcal\": 0, \"sodium_mg\": 0, \"kcal_per_100g\": 0}, \"expected\": {\"kcal\": 0, \"kcal_per_100g\": 0, \"serving_g\": 0, \"sodium_mg\": 0}, \"passed\": true}, {\"check\": \"regression: discarded aromatics\", \"actual\": {\"serving_g\": 234, \"kcal\": 134, \"sodium_mg\": 1039, \"kcal_per_100g\": 57}, \"expected\": {\"kcal\": 134, \"kcal_per_100g\": 57, \"serving_g\": 234, \"sodium_mg\": 1039}, \"passed\": true}, {\"check\": \"repair check: discarded aromatics\", \"actual\": {\"serving_g\": 2, \"kcal\": 27, \"sodium_mg\": 0, \"kcal_per_100g\": 1179}, \"expected\": {\"kcal\": 27, \"kcal_per_100g\": 1179, \"serving_g\": 2, \"sodium_mg\": 0}, \"passed\": true}, {\"check\": \"generated control 1\", \"actual\": {\"serving_g\": 730, \"kcal\": 388, \"sodium_mg\": 1845, \"kcal_per_100g\": 53}, \"expected\": {\"kcal\": 388, \"kcal_per_100g\": 53, \"serving_g\": 730, \"sodium_mg\": 1845}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"serving_g\": 62, \"kcal\": 59, \"sodium_mg\": 3, \"kcal_per_100g\": 94}, \"expected\": {\"kcal\": 59, \"kcal_per_100g\": 94, \"serving_g\": 62, \"sodium_mg\": 3}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"serving_g\": 161, \"kcal\": 294, \"sodium_mg\": 87, \"kcal_per_100g\": 183}, \"expected\": {\"kcal\": 294, \"kcal_per_100g\": 183, \"serving_g\": 161, \"sodium_mg\": 87}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}