{"abstract":"Milk-based doughs report hydration as if milk were pure water.","category":"Recipe scaling and nutrition","checks":8,"contract":"Rows [name, grams, role], role in flour/water/milk/egg/starter/other. Total flour = all flour rows plus half of starter weight (100% hydration levain). Each row gets grams/total_flour*100 as \"d.d\" rounded half-up. Hydration counts water fully, milk at 87%, egg at 75% and half the starter. No flour returns an error string.","evaluation_group":"w2-recipe_scaling_and_nutrition-bakers-percentage","failed_approach":"Using 13% counts the milk solids instead of its water.","family":"w2-recipe_scaling_and_nutrition-bakers-percentage-milk-water-content","id":"FA-96946","implementations":{"attempt":{"sha256":"30bbdade416a0f2da8c70e80a116324114a6568f338dea52c25e18e6aa3c21a2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(ingredients):\n    starter = sum((Fraction(str(g)) for n, g, r in ingredients if r == 'starter'), Fraction(0))\n    flour = sum(Fraction(str(g)) for n, g, r in ingredients if r == 'flour') + starter / 2\n    if flour == 0:\n        return 'error: no flour'\n    def pct(x):\n        v = math.floor(x * 1000 / flour + Fraction(1, 2))\n        return '%d.%d' % divmod(v, 10)\n    rows = [[n, pct(Fraction(str(g)))] for n, g, r in ingredients]\n    water = Fraction(0)\n    for n, g, r in ingredients:\n        if r == 'water':\n            water += Fraction(str(g))\n        elif r == 'milk':\n            water += Fraction(str(g)) * Fraction(13, 100)\n        elif r == 'egg':\n            water += Fraction(str(g)) * Fraction(3, 4)\n        elif r == 'starter':\n            water += Fraction(str(g)) / 2\n    return {'flour_total': str(flour), 'percentages': rows, 'hydration': pct(water)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['lean dough control', [[['flour', 500, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['flour', '100.0'], ['water', '70.0'], ['salt', '2.0']]}],\n  ['no flour', [[['water', 100, 'water']]], 'error: no flour'],\n  ['enriched dough', [[['flour', 400, 'flour'], ['milk', 200, 'milk'], ['egg', 100, 'egg']]],\n   {'flour_total': '400',\n    'hydration': '62.3',\n    'percentages': [['flour', '100.0'], ['milk', '50.0'], ['egg', '25.0']]}],\n  ['regression: milk water content',\n   [[['rye0', 200, 'flour'], ['salt', 9, 'other'], ['milk', 100, 'milk'], ['water', 150, 'water'],\n     ['egg', 50, 'egg']]],\n   {'flour_total': '200',\n    'hydration': '137.3',\n    'percentages': [['rye0', '100.0'], ['salt', '4.5'], ['milk', '50.0'], ['water', '75.0'],\n                    ['egg', '25.0']]}],\n  ['repair check: milk water content',\n   [[['bread flour1', 100, 'flour'], ['rye0', 250, 'flour'], ['whole wheat2', 300, 'flour'],\n     ['water', 200, 'water'], ['levain', 100, 'starter'], ['salt', 10, 'other'], ['milk', 100, 'milk']]],\n   {'flour_total': '700',\n    'hydration': '48.1',\n    'percentages': [['bread flour1', '14.3'], ['rye0', '35.7'], ['whole wheat2', '42.9'], ['water', '28.6'],\n                    ['levain', '14.3'], ['salt', '1.4'], ['milk', '14.3']]}],\n  ['generated control 1', [[['salt', 10, 'other'], ['spelt0', 333, 'flour'], ['whole wheat1', 333, 'flour']]],\n   {'flour_total': '666',\n    'hydration': '0.0',\n    'percentages': [['salt', '1.5'], ['spelt0', '50.0'], ['whole wheat1', '50.0']]}],\n  ['generated control 2',\n   [[['whole wheat1', 200, 'flour'], ['whole wheat0', 250, 'flour'], ['salt', 11, 'other'],\n     ['water', 325, 'water'], ['egg', 100, 'egg'], ['levain', 150, 'starter']]],\n   {'flour_total': '525',\n    'hydration': '90.5',\n    'percentages': [['whole wheat1', '38.1'], ['whole wheat0', '47.6'], ['salt', '2.1'], ['water', '61.9'],\n                    ['egg', '19.0'], ['levain', '28.6']]}],\n  ['generated control 3',\n   [[['bread flour0', 300, 'flour'], ['rye2', 100, 'flour'], ['levain', 60, 'starter'],\n     ['whole wheat1', 500, 'flour'], ['salt', 10, 'other'], ['milk', 50, 'milk']]],\n   {'flour_total': '930',\n    'hydration': '7.9',\n    'percentages': [['bread flour0', '32.3'], ['rye2', '10.8'], ['levain', '6.5'], ['whole wheat1', '53.8'],\n                    ['salt', '1.1'], ['milk', '5.4']]}]],\n [['no flour', [[['water', 100, 'water']]], 'error: no flour'],\n  ['enriched dough', [[['flour', 400, 'flour'], ['milk', 200, 'milk'], ['egg', 100, 'egg']]],\n   {'flour_total': '400',\n    'hydration': '62.3',\n    'percentages': [['flour', '100.0'], ['milk', '50.0'], ['egg', '25.0']]}],\n  ['two flours with levain',\n   [[['bread', 400, 'flour'], ['rye', 100, 'flour'], ['levain', 100, 'starter'], ['water', 330, 'water']]],\n   {'flour_total': '550',\n    'hydration': '69.1',\n    'percentages': [['bread', '72.7'], ['rye', '18.2'], ['levain', '18.2'], ['water', '60.0']]}],\n  ['regression: milk water content',\n   [[['levain', 60, 'starter'], ['spelt0', 500, 'flour'], ['milk', 100, 'milk'], ['salt', 9, 'other'],\n     ['water', 325, 'water']]],\n   {'flour_total': '530',\n    'hydration': '83.4',\n    'percentages': [['levain', '11.3'], ['spelt0', '94.3'], ['milk', '18.9'], ['salt', '1.7'],\n                    ['water', '61.3']]}],\n  ['repair check: milk water content',\n   [[['bread flour1', 200, 'flour'], ['milk', 100, 'milk'], ['salt', 11, 'other'], ['water', 325, 'water'],\n     ['spelt0', 100, 'flour'], ['egg', 100, 'egg']]],\n   {'flour_total': '300',\n    'hydration': '162.3',\n    'percentages': [['bread flour1', '66.7'], ['milk', '33.3'], ['salt', '3.7'], ['water', '108.3'],\n                    ['spelt0', '33.3'], ['egg', '33.3']]}],\n  ['generated control 1',\n   [[['spelt1', 250, 'flour'], ['water', 325, 'water'], ['levain', 90, 'starter'], ['spelt0', 250, 'flour'],\n     ['salt', 11, 'other'], ['whole wheat2', 450, 'flour'], ['egg', 100, 'egg']]],\n   {'flour_total': '995',\n    'hydration': '44.7',\n    'percentages': [['spelt1', '25.1'], ['water', '32.7'], ['levain', '9.0'], ['spelt0', '25.1'],\n                    ['salt', '1.1'], ['whole wheat2', '45.2'], ['egg', '10.1']]}],\n  ['generated control 2',\n   [[['spelt1', 100, 'flour'], ['spelt0', 250, 'flour'], ['salt', 11, 'other'], ['egg', 50, 'egg'],\n     ['levain', 150, 'starter']]],\n   {'flour_total': '425',\n    'hydration': '26.5',\n    'percentages': [['spelt1', '23.5'], ['spelt0', '58.8'], ['salt', '2.6'], ['egg', '11.8'],\n                    ['levain', '35.3']]}],\n  ['generated control 3',\n   [[['rye0', 500, 'flour'], ['egg', 50, 'egg'], ['rye1', 333, 'flour'], ['water', 150, 'water'],\n     ['levain', 100, 'starter'], ['milk', 120, 'milk'], ['salt', 11, 'other']]],\n   {'flour_total': '883',\n    'hydration': '38.7',\n    'percentages': [['rye0', '56.6'], ['egg', '5.7'], ['rye1', '37.7'], ['water', '17.0'], ['levain', '11.3'],\n                    ['milk', '13.6'], ['salt', '1.2']]}]],\n [['enriched dough', [[['flour', 400, 'flour'], ['milk', 200, 'milk'], ['egg', 100, 'egg']]],\n   {'flour_total': '400',\n    'hydration': '62.3',\n    'percentages': [['flour', '100.0'], ['milk', '50.0'], ['egg', '25.0']]}],\n  ['two flours with levain',\n   [[['bread', 400, 'flour'], ['rye', 100, 'flour'], ['levain', 100, 'starter'], ['water', 330, 'water']]],\n   {'flour_total': '550',\n    'hydration': '69.1',\n    'percentages': [['bread', '72.7'], ['rye', '18.2'], ['levain', '18.2'], ['water', '60.0']]}],\n  ['lean dough control', [[['flour', 500, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['flour', '100.0'], ['water', '70.0'], ['salt', '2.0']]}],\n  ['regression: milk water content',\n   [[['milk', 50, 'milk'], ['spelt1', 300, 'flour'], ['egg', 50, 'egg'], ['salt', 10, 'other'],\n     ['whole wheat0', 333, 'flour']]],\n   {'flour_total': '633',\n    'hydration': '12.8',\n    'percentages': [['milk', '7.9'], ['spelt1', '47.4'], ['egg', '7.9'], ['salt', '1.6'],\n                    ['whole wheat0', '52.6']]}],\n  ['repair check: milk water content',\n   [[['levain', 90, 'starter'], ['salt', 9, 'other'], ['milk', 120, 'milk'], ['rye0', 200, 'flour']]],\n   {'flour_total': '245',\n    'hydration': '61.0',\n    'percentages': [['levain', '36.7'], ['salt', '3.7'], ['milk', '49.0'], ['rye0', '81.6']]}],\n  ['generated control 1',\n   [[['spelt0', 250, 'flour'], ['egg', 100, 'egg'], ['bread flour1', 100, 'flour'], ['water', 200, 'water'],\n     ['salt', 10, 'other']]],\n   {'flour_total': '350',\n    'hydration': '78.6',\n    'percentages': [['spelt0', '71.4'], ['egg', '28.6'], ['bread flour1', '28.6'], ['water', '57.1'],\n                    ['salt', '2.9']]}],\n  ['generated control 2',\n   [[['salt', 11, 'other'], ['spelt0', 100, 'flour'], ['water', 350, 'water'], ['spelt1', 250, 'flour']]],\n   {'flour_total': '350',\n    'hydration': '100.0',\n    'percentages': [['salt', '3.1'], ['spelt0', '28.6'], ['water', '100.0'], ['spelt1', '71.4']]}],\n  ['generated control 3',\n   [[['spelt1', 100, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other'], ['egg', 50, 'egg'],\n     ['levain', 90, 'starter'], ['bread flour0', 450, 'flour']]],\n   {'flour_total': '595',\n    'hydration': '72.7',\n    'percentages': [['spelt1', '16.8'], ['water', '58.8'], ['salt', '1.7'], ['egg', '8.4'],\n                    ['levain', '15.1'], ['bread flour0', '75.6']]}]],\n [['two flours with levain',\n   [[['bread', 400, 'flour'], ['rye', 100, 'flour'], ['levain', 100, 'starter'], ['water', 330, 'water']]],\n   {'flour_total': '550',\n    'hydration': '69.1',\n    'percentages': [['bread', '72.7'], ['rye', '18.2'], ['levain', '18.2'], ['water', '60.0']]}],\n  ['lean dough control', [[['flour', 500, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['flour', '100.0'], ['water', '70.0'], ['salt', '2.0']]}],\n  ['no flour', [[['water', 100, 'water']]], 'error: no flour'],\n  ['regression: milk water content',\n   [[['salt', 9, 'other'], ['milk', 50, 'milk'], ['bread flour0', 450, 'flour'], ['water', 150, 'water'],\n     ['spelt1', 300, 'flour']]],\n   {'flour_total': '750',\n    'hydration': '25.8',\n    'percentages': [['salt', '1.2'], ['milk', '6.7'], ['bread flour0', '60.0'], ['water', '20.0'],\n                    ['spelt1', '40.0']]}],\n  ['repair check: milk water content',\n   [[['rye0', 250, 'flour'], ['milk', 100, 'milk'], ['whole wheat1', 450, 'flour'], ['salt', 11, 'other'],\n     ['water', 200, 'water']]],\n   {'flour_total': '700',\n    'hydration': '41.0',\n    'percentages': [['rye0', '35.7'], ['milk', '14.3'], ['whole wheat1', '64.3'], ['salt', '1.6'],\n                    ['water', '28.6']]}],\n  ['generated control 1',\n   [[['rye0', 200, 'flour'], ['salt', 11, 'other'], ['levain', 100, 'starter'], ['water', 200, 'water'],\n     ['whole wheat1', 500, 'flour']]],\n   {'flour_total': '750',\n    'hydration': '33.3',\n    'percentages': [['rye0', '26.7'], ['salt', '1.5'], ['levain', '13.3'], ['water', '26.7'],\n                    ['whole wheat1', '66.7']]}],\n  ['generated control 2',\n   [[['levain', 60, 'starter'], ['salt', 11, 'other'], ['bread flour0', 300, 'flour']]],\n   {'flour_total': '330',\n    'hydration': '9.1',\n    'percentages': [['levain', '18.2'], ['salt', '3.3'], ['bread flour0', '90.9']]}],\n  ['generated control 3',\n   [[['bread flour2', 250, 'flour'], ['rye1', 300, 'flour'], ['milk', 50, 'milk'], ['salt', 10, 'other'],\n     ['whole wheat0', 450, 'flour']]],\n   {'flour_total': '1000',\n    'hydration': '4.4',\n    'percentages': [['bread flour2', '25.0'], ['rye1', '30.0'], ['milk', '5.0'], ['salt', '1.0'],\n                    ['whole wheat0', '45.0']]}]],\n [['lean dough control', [[['flour', 500, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['flour', '100.0'], ['water', '70.0'], ['salt', '2.0']]}],\n  ['no flour', [[['water', 100, 'water']]], 'error: no flour'],\n  ['enriched dough', [[['flour', 400, 'flour'], ['milk', 200, 'milk'], ['egg', 100, 'egg']]],\n   {'flour_total': '400',\n    'hydration': '62.3',\n    'percentages': [['flour', '100.0'], ['milk', '50.0'], ['egg', '25.0']]}],\n  ['regression: milk water content',\n   [[['milk', 120, 'milk'], ['salt', 10, 'other'], ['whole wheat0', 100, 'flour']]],\n   {'flour_total': '100',\n    'hydration': '104.4',\n    'percentages': [['milk', '120.0'], ['salt', '10.0'], ['whole wheat0', '100.0']]}],\n  ['repair check: milk water content',\n   [[['salt', 9, 'other'], ['water', 150, 'water'], ['spelt0', 100, 'flour'], ['levain', 60, 'starter'],\n     ['milk', 100, 'milk']]],\n   {'flour_total': '130',\n    'hydration': '205.4',\n    'percentages': [['salt', '6.9'], ['water', '115.4'], ['spelt0', '76.9'], ['levain', '46.2'],\n                    ['milk', '76.9']]}],\n  ['generated control 1',\n   [[['spelt1', 100, 'flour'], ['rye2', 450, 'flour'], ['rye0', 250, 'flour'], ['water', 350, 'water'],\n     ['salt', 10, 'other'], ['egg', 100, 'egg']]],\n   {'flour_total': '800',\n    'hydration': '53.1',\n    'percentages': [['spelt1', '12.5'], ['rye2', '56.3'], ['rye0', '31.3'], ['water', '43.8'],\n                    ['salt', '1.3'], ['egg', '12.5']]}],\n  ['generated control 2',\n   [[['bread flour0', 333, 'flour'], ['bread flour1', 500, 'flour'], ['bread flour2', 333, 'flour'],\n     ['salt', 11, 'other'], ['water', 150, 'water'], ['egg', 100, 'egg']]],\n   {'flour_total': '1166',\n    'hydration': '19.3',\n    'percentages': [['bread flour0', '28.6'], ['bread flour1', '42.9'], ['bread flour2', '28.6'],\n                    ['salt', '0.9'], ['water', '12.9'], ['egg', '8.6']]}],\n  ['generated control 3',\n   [[['salt', 9, 'other'], ['milk', 100, 'milk'], ['whole wheat0', 333, 'flour'], ['egg', 50, 'egg'],\n     ['water', 350, 'water']]],\n   {'flour_total': '333',\n    'hydration': '142.5',\n    'percentages': [['salt', '2.7'], ['milk', '30.0'], ['whole wheat0', '100.0'], ['egg', '15.0'],\n                    ['water', '105.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":"b169189c8688bb0197594fdfc91ceeec468926f4b14566f2f01120eb0119f5d4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(ingredients):\n    starter = sum((Fraction(str(g)) for n, g, r in ingredients if r == 'starter'), Fraction(0))\n    flour = sum(Fraction(str(g)) for n, g, r in ingredients if r == 'flour') + starter / 2\n    if flour == 0:\n        return 'error: no flour'\n    def pct(x):\n        v = math.floor(x * 1000 / flour + Fraction(1, 2))\n        return '%d.%d' % divmod(v, 10)\n    rows = [[n, pct(Fraction(str(g)))] for n, g, r in ingredients]\n    water = Fraction(0)\n    for n, g, r in ingredients:\n        if r == 'water':\n            water += Fraction(str(g))\n        elif r == 'milk':\n            water += Fraction(str(g)) * Fraction(1)\n        elif r == 'egg':\n            water += Fraction(str(g)) * Fraction(3, 4)\n        elif r == 'starter':\n            water += Fraction(str(g)) / 2\n    return {'flour_total': str(flour), 'percentages': rows, 'hydration': pct(water)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['lean dough control', [[['flour', 500, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['flour', '100.0'], ['water', '70.0'], ['salt', '2.0']]}],\n  ['no flour', [[['water', 100, 'water']]], 'error: no flour'],\n  ['enriched dough', [[['flour', 400, 'flour'], ['milk', 200, 'milk'], ['egg', 100, 'egg']]],\n   {'flour_total': '400',\n    'hydration': '62.3',\n    'percentages': [['flour', '100.0'], ['milk', '50.0'], ['egg', '25.0']]}],\n  ['regression: milk water content',\n   [[['rye0', 200, 'flour'], ['salt', 9, 'other'], ['milk', 100, 'milk'], ['water', 150, 'water'],\n     ['egg', 50, 'egg']]],\n   {'flour_total': '200',\n    'hydration': '137.3',\n    'percentages': [['rye0', '100.0'], ['salt', '4.5'], ['milk', '50.0'], ['water', '75.0'],\n                    ['egg', '25.0']]}],\n  ['repair check: milk water content',\n   [[['bread flour1', 100, 'flour'], ['rye0', 250, 'flour'], ['whole wheat2', 300, 'flour'],\n     ['water', 200, 'water'], ['levain', 100, 'starter'], ['salt', 10, 'other'], ['milk', 100, 'milk']]],\n   {'flour_total': '700',\n    'hydration': '48.1',\n    'percentages': [['bread flour1', '14.3'], ['rye0', '35.7'], ['whole wheat2', '42.9'], ['water', '28.6'],\n                    ['levain', '14.3'], ['salt', '1.4'], ['milk', '14.3']]}],\n  ['generated control 1', [[['salt', 10, 'other'], ['spelt0', 333, 'flour'], ['whole wheat1', 333, 'flour']]],\n   {'flour_total': '666',\n    'hydration': '0.0',\n    'percentages': [['salt', '1.5'], ['spelt0', '50.0'], ['whole wheat1', '50.0']]}],\n  ['generated control 2',\n   [[['whole wheat1', 200, 'flour'], ['whole wheat0', 250, 'flour'], ['salt', 11, 'other'],\n     ['water', 325, 'water'], ['egg', 100, 'egg'], ['levain', 150, 'starter']]],\n   {'flour_total': '525',\n    'hydration': '90.5',\n    'percentages': [['whole wheat1', '38.1'], ['whole wheat0', '47.6'], ['salt', '2.1'], ['water', '61.9'],\n                    ['egg', '19.0'], ['levain', '28.6']]}],\n  ['generated control 3',\n   [[['bread flour0', 300, 'flour'], ['rye2', 100, 'flour'], ['levain', 60, 'starter'],\n     ['whole wheat1', 500, 'flour'], ['salt', 10, 'other'], ['milk', 50, 'milk']]],\n   {'flour_total': '930',\n    'hydration': '7.9',\n    'percentages': [['bread flour0', '32.3'], ['rye2', '10.8'], ['levain', '6.5'], ['whole wheat1', '53.8'],\n                    ['salt', '1.1'], ['milk', '5.4']]}]],\n [['no flour', [[['water', 100, 'water']]], 'error: no flour'],\n  ['enriched dough', [[['flour', 400, 'flour'], ['milk', 200, 'milk'], ['egg', 100, 'egg']]],\n   {'flour_total': '400',\n    'hydration': '62.3',\n    'percentages': [['flour', '100.0'], ['milk', '50.0'], ['egg', '25.0']]}],\n  ['two flours with levain',\n   [[['bread', 400, 'flour'], ['rye', 100, 'flour'], ['levain', 100, 'starter'], ['water', 330, 'water']]],\n   {'flour_total': '550',\n    'hydration': '69.1',\n    'percentages': [['bread', '72.7'], ['rye', '18.2'], ['levain', '18.2'], ['water', '60.0']]}],\n  ['regression: milk water content',\n   [[['levain', 60, 'starter'], ['spelt0', 500, 'flour'], ['milk', 100, 'milk'], ['salt', 9, 'other'],\n     ['water', 325, 'water']]],\n   {'flour_total': '530',\n    'hydration': '83.4',\n    'percentages': [['levain', '11.3'], ['spelt0', '94.3'], ['milk', '18.9'], ['salt', '1.7'],\n                    ['water', '61.3']]}],\n  ['repair check: milk water content',\n   [[['bread flour1', 200, 'flour'], ['milk', 100, 'milk'], ['salt', 11, 'other'], ['water', 325, 'water'],\n     ['spelt0', 100, 'flour'], ['egg', 100, 'egg']]],\n   {'flour_total': '300',\n    'hydration': '162.3',\n    'percentages': [['bread flour1', '66.7'], ['milk', '33.3'], ['salt', '3.7'], ['water', '108.3'],\n                    ['spelt0', '33.3'], ['egg', '33.3']]}],\n  ['generated control 1',\n   [[['spelt1', 250, 'flour'], ['water', 325, 'water'], ['levain', 90, 'starter'], ['spelt0', 250, 'flour'],\n     ['salt', 11, 'other'], ['whole wheat2', 450, 'flour'], ['egg', 100, 'egg']]],\n   {'flour_total': '995',\n    'hydration': '44.7',\n    'percentages': [['spelt1', '25.1'], ['water', '32.7'], ['levain', '9.0'], ['spelt0', '25.1'],\n                    ['salt', '1.1'], ['whole wheat2', '45.2'], ['egg', '10.1']]}],\n  ['generated control 2',\n   [[['spelt1', 100, 'flour'], ['spelt0', 250, 'flour'], ['salt', 11, 'other'], ['egg', 50, 'egg'],\n     ['levain', 150, 'starter']]],\n   {'flour_total': '425',\n    'hydration': '26.5',\n    'percentages': [['spelt1', '23.5'], ['spelt0', '58.8'], ['salt', '2.6'], ['egg', '11.8'],\n                    ['levain', '35.3']]}],\n  ['generated control 3',\n   [[['rye0', 500, 'flour'], ['egg', 50, 'egg'], ['rye1', 333, 'flour'], ['water', 150, 'water'],\n     ['levain', 100, 'starter'], ['milk', 120, 'milk'], ['salt', 11, 'other']]],\n   {'flour_total': '883',\n    'hydration': '38.7',\n    'percentages': [['rye0', '56.6'], ['egg', '5.7'], ['rye1', '37.7'], ['water', '17.0'], ['levain', '11.3'],\n                    ['milk', '13.6'], ['salt', '1.2']]}]],\n [['enriched dough', [[['flour', 400, 'flour'], ['milk', 200, 'milk'], ['egg', 100, 'egg']]],\n   {'flour_total': '400',\n    'hydration': '62.3',\n    'percentages': [['flour', '100.0'], ['milk', '50.0'], ['egg', '25.0']]}],\n  ['two flours with levain',\n   [[['bread', 400, 'flour'], ['rye', 100, 'flour'], ['levain', 100, 'starter'], ['water', 330, 'water']]],\n   {'flour_total': '550',\n    'hydration': '69.1',\n    'percentages': [['bread', '72.7'], ['rye', '18.2'], ['levain', '18.2'], ['water', '60.0']]}],\n  ['lean dough control', [[['flour', 500, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['flour', '100.0'], ['water', '70.0'], ['salt', '2.0']]}],\n  ['regression: milk water content',\n   [[['milk', 50, 'milk'], ['spelt1', 300, 'flour'], ['egg', 50, 'egg'], ['salt', 10, 'other'],\n     ['whole wheat0', 333, 'flour']]],\n   {'flour_total': '633',\n    'hydration': '12.8',\n    'percentages': [['milk', '7.9'], ['spelt1', '47.4'], ['egg', '7.9'], ['salt', '1.6'],\n                    ['whole wheat0', '52.6']]}],\n  ['repair check: milk water content',\n   [[['levain', 90, 'starter'], ['salt', 9, 'other'], ['milk', 120, 'milk'], ['rye0', 200, 'flour']]],\n   {'flour_total': '245',\n    'hydration': '61.0',\n    'percentages': [['levain', '36.7'], ['salt', '3.7'], ['milk', '49.0'], ['rye0', '81.6']]}],\n  ['generated control 1',\n   [[['spelt0', 250, 'flour'], ['egg', 100, 'egg'], ['bread flour1', 100, 'flour'], ['water', 200, 'water'],\n     ['salt', 10, 'other']]],\n   {'flour_total': '350',\n    'hydration': '78.6',\n    'percentages': [['spelt0', '71.4'], ['egg', '28.6'], ['bread flour1', '28.6'], ['water', '57.1'],\n                    ['salt', '2.9']]}],\n  ['generated control 2',\n   [[['salt', 11, 'other'], ['spelt0', 100, 'flour'], ['water', 350, 'water'], ['spelt1', 250, 'flour']]],\n   {'flour_total': '350',\n    'hydration': '100.0',\n    'percentages': [['salt', '3.1'], ['spelt0', '28.6'], ['water', '100.0'], ['spelt1', '71.4']]}],\n  ['generated control 3',\n   [[['spelt1', 100, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other'], ['egg', 50, 'egg'],\n     ['levain', 90, 'starter'], ['bread flour0', 450, 'flour']]],\n   {'flour_total': '595',\n    'hydration': '72.7',\n    'percentages': [['spelt1', '16.8'], ['water', '58.8'], ['salt', '1.7'], ['egg', '8.4'],\n                    ['levain', '15.1'], ['bread flour0', '75.6']]}]],\n [['two flours with levain',\n   [[['bread', 400, 'flour'], ['rye', 100, 'flour'], ['levain', 100, 'starter'], ['water', 330, 'water']]],\n   {'flour_total': '550',\n    'hydration': '69.1',\n    'percentages': [['bread', '72.7'], ['rye', '18.2'], ['levain', '18.2'], ['water', '60.0']]}],\n  ['lean dough control', [[['flour', 500, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['flour', '100.0'], ['water', '70.0'], ['salt', '2.0']]}],\n  ['no flour', [[['water', 100, 'water']]], 'error: no flour'],\n  ['regression: milk water content',\n   [[['salt', 9, 'other'], ['milk', 50, 'milk'], ['bread flour0', 450, 'flour'], ['water', 150, 'water'],\n     ['spelt1', 300, 'flour']]],\n   {'flour_total': '750',\n    'hydration': '25.8',\n    'percentages': [['salt', '1.2'], ['milk', '6.7'], ['bread flour0', '60.0'], ['water', '20.0'],\n                    ['spelt1', '40.0']]}],\n  ['repair check: milk water content',\n   [[['rye0', 250, 'flour'], ['milk', 100, 'milk'], ['whole wheat1', 450, 'flour'], ['salt', 11, 'other'],\n     ['water', 200, 'water']]],\n   {'flour_total': '700',\n    'hydration': '41.0',\n    'percentages': [['rye0', '35.7'], ['milk', '14.3'], ['whole wheat1', '64.3'], ['salt', '1.6'],\n                    ['water', '28.6']]}],\n  ['generated control 1',\n   [[['rye0', 200, 'flour'], ['salt', 11, 'other'], ['levain', 100, 'starter'], ['water', 200, 'water'],\n     ['whole wheat1', 500, 'flour']]],\n   {'flour_total': '750',\n    'hydration': '33.3',\n    'percentages': [['rye0', '26.7'], ['salt', '1.5'], ['levain', '13.3'], ['water', '26.7'],\n                    ['whole wheat1', '66.7']]}],\n  ['generated control 2',\n   [[['levain', 60, 'starter'], ['salt', 11, 'other'], ['bread flour0', 300, 'flour']]],\n   {'flour_total': '330',\n    'hydration': '9.1',\n    'percentages': [['levain', '18.2'], ['salt', '3.3'], ['bread flour0', '90.9']]}],\n  ['generated control 3',\n   [[['bread flour2', 250, 'flour'], ['rye1', 300, 'flour'], ['milk', 50, 'milk'], ['salt', 10, 'other'],\n     ['whole wheat0', 450, 'flour']]],\n   {'flour_total': '1000',\n    'hydration': '4.4',\n    'percentages': [['bread flour2', '25.0'], ['rye1', '30.0'], ['milk', '5.0'], ['salt', '1.0'],\n                    ['whole wheat0', '45.0']]}]],\n [['lean dough control', [[['flour', 500, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['flour', '100.0'], ['water', '70.0'], ['salt', '2.0']]}],\n  ['no flour', [[['water', 100, 'water']]], 'error: no flour'],\n  ['enriched dough', [[['flour', 400, 'flour'], ['milk', 200, 'milk'], ['egg', 100, 'egg']]],\n   {'flour_total': '400',\n    'hydration': '62.3',\n    'percentages': [['flour', '100.0'], ['milk', '50.0'], ['egg', '25.0']]}],\n  ['regression: milk water content',\n   [[['milk', 120, 'milk'], ['salt', 10, 'other'], ['whole wheat0', 100, 'flour']]],\n   {'flour_total': '100',\n    'hydration': '104.4',\n    'percentages': [['milk', '120.0'], ['salt', '10.0'], ['whole wheat0', '100.0']]}],\n  ['repair check: milk water content',\n   [[['salt', 9, 'other'], ['water', 150, 'water'], ['spelt0', 100, 'flour'], ['levain', 60, 'starter'],\n     ['milk', 100, 'milk']]],\n   {'flour_total': '130',\n    'hydration': '205.4',\n    'percentages': [['salt', '6.9'], ['water', '115.4'], ['spelt0', '76.9'], ['levain', '46.2'],\n                    ['milk', '76.9']]}],\n  ['generated control 1',\n   [[['spelt1', 100, 'flour'], ['rye2', 450, 'flour'], ['rye0', 250, 'flour'], ['water', 350, 'water'],\n     ['salt', 10, 'other'], ['egg', 100, 'egg']]],\n   {'flour_total': '800',\n    'hydration': '53.1',\n    'percentages': [['spelt1', '12.5'], ['rye2', '56.3'], ['rye0', '31.3'], ['water', '43.8'],\n                    ['salt', '1.3'], ['egg', '12.5']]}],\n  ['generated control 2',\n   [[['bread flour0', 333, 'flour'], ['bread flour1', 500, 'flour'], ['bread flour2', 333, 'flour'],\n     ['salt', 11, 'other'], ['water', 150, 'water'], ['egg', 100, 'egg']]],\n   {'flour_total': '1166',\n    'hydration': '19.3',\n    'percentages': [['bread flour0', '28.6'], ['bread flour1', '42.9'], ['bread flour2', '28.6'],\n                    ['salt', '0.9'], ['water', '12.9'], ['egg', '8.6']]}],\n  ['generated control 3',\n   [[['salt', 9, 'other'], ['milk', 100, 'milk'], ['whole wheat0', 333, 'flour'], ['egg', 50, 'egg'],\n     ['water', 350, 'water']]],\n   {'flour_total': '333',\n    'hydration': '142.5',\n    'percentages': [['salt', '2.7'], ['milk', '30.0'], ['whole wheat0', '100.0'], ['egg', '15.0'],\n                    ['water', '105.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":"af61358fd1bf9bf540da1643bded1ef3ccfdec604501c2e02bb6dd4095fb14bb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(ingredients):\n    starter = sum((Fraction(str(g)) for n, g, r in ingredients if r == 'starter'), Fraction(0))\n    flour = sum(Fraction(str(g)) for n, g, r in ingredients if r == 'flour') + starter / 2\n    if flour == 0:\n        return 'error: no flour'\n    def pct(x):\n        v = math.floor(x * 1000 / flour + Fraction(1, 2))\n        return '%d.%d' % divmod(v, 10)\n    rows = [[n, pct(Fraction(str(g)))] for n, g, r in ingredients]\n    water = Fraction(0)\n    for n, g, r in ingredients:\n        if r == 'water':\n            water += Fraction(str(g))\n        elif r == 'milk':\n            water += Fraction(str(g)) * Fraction(87, 100)\n        elif r == 'egg':\n            water += Fraction(str(g)) * Fraction(3, 4)\n        elif r == 'starter':\n            water += Fraction(str(g)) / 2\n    return {'flour_total': str(flour), 'percentages': rows, 'hydration': pct(water)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['lean dough control', [[['flour', 500, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['flour', '100.0'], ['water', '70.0'], ['salt', '2.0']]}],\n  ['no flour', [[['water', 100, 'water']]], 'error: no flour'],\n  ['enriched dough', [[['flour', 400, 'flour'], ['milk', 200, 'milk'], ['egg', 100, 'egg']]],\n   {'flour_total': '400',\n    'hydration': '62.3',\n    'percentages': [['flour', '100.0'], ['milk', '50.0'], ['egg', '25.0']]}],\n  ['regression: milk water content',\n   [[['rye0', 200, 'flour'], ['salt', 9, 'other'], ['milk', 100, 'milk'], ['water', 150, 'water'],\n     ['egg', 50, 'egg']]],\n   {'flour_total': '200',\n    'hydration': '137.3',\n    'percentages': [['rye0', '100.0'], ['salt', '4.5'], ['milk', '50.0'], ['water', '75.0'],\n                    ['egg', '25.0']]}],\n  ['repair check: milk water content',\n   [[['bread flour1', 100, 'flour'], ['rye0', 250, 'flour'], ['whole wheat2', 300, 'flour'],\n     ['water', 200, 'water'], ['levain', 100, 'starter'], ['salt', 10, 'other'], ['milk', 100, 'milk']]],\n   {'flour_total': '700',\n    'hydration': '48.1',\n    'percentages': [['bread flour1', '14.3'], ['rye0', '35.7'], ['whole wheat2', '42.9'], ['water', '28.6'],\n                    ['levain', '14.3'], ['salt', '1.4'], ['milk', '14.3']]}],\n  ['generated control 1', [[['salt', 10, 'other'], ['spelt0', 333, 'flour'], ['whole wheat1', 333, 'flour']]],\n   {'flour_total': '666',\n    'hydration': '0.0',\n    'percentages': [['salt', '1.5'], ['spelt0', '50.0'], ['whole wheat1', '50.0']]}],\n  ['generated control 2',\n   [[['whole wheat1', 200, 'flour'], ['whole wheat0', 250, 'flour'], ['salt', 11, 'other'],\n     ['water', 325, 'water'], ['egg', 100, 'egg'], ['levain', 150, 'starter']]],\n   {'flour_total': '525',\n    'hydration': '90.5',\n    'percentages': [['whole wheat1', '38.1'], ['whole wheat0', '47.6'], ['salt', '2.1'], ['water', '61.9'],\n                    ['egg', '19.0'], ['levain', '28.6']]}],\n  ['generated control 3',\n   [[['bread flour0', 300, 'flour'], ['rye2', 100, 'flour'], ['levain', 60, 'starter'],\n     ['whole wheat1', 500, 'flour'], ['salt', 10, 'other'], ['milk', 50, 'milk']]],\n   {'flour_total': '930',\n    'hydration': '7.9',\n    'percentages': [['bread flour0', '32.3'], ['rye2', '10.8'], ['levain', '6.5'], ['whole wheat1', '53.8'],\n                    ['salt', '1.1'], ['milk', '5.4']]}]],\n [['no flour', [[['water', 100, 'water']]], 'error: no flour'],\n  ['enriched dough', [[['flour', 400, 'flour'], ['milk', 200, 'milk'], ['egg', 100, 'egg']]],\n   {'flour_total': '400',\n    'hydration': '62.3',\n    'percentages': [['flour', '100.0'], ['milk', '50.0'], ['egg', '25.0']]}],\n  ['two flours with levain',\n   [[['bread', 400, 'flour'], ['rye', 100, 'flour'], ['levain', 100, 'starter'], ['water', 330, 'water']]],\n   {'flour_total': '550',\n    'hydration': '69.1',\n    'percentages': [['bread', '72.7'], ['rye', '18.2'], ['levain', '18.2'], ['water', '60.0']]}],\n  ['regression: milk water content',\n   [[['levain', 60, 'starter'], ['spelt0', 500, 'flour'], ['milk', 100, 'milk'], ['salt', 9, 'other'],\n     ['water', 325, 'water']]],\n   {'flour_total': '530',\n    'hydration': '83.4',\n    'percentages': [['levain', '11.3'], ['spelt0', '94.3'], ['milk', '18.9'], ['salt', '1.7'],\n                    ['water', '61.3']]}],\n  ['repair check: milk water content',\n   [[['bread flour1', 200, 'flour'], ['milk', 100, 'milk'], ['salt', 11, 'other'], ['water', 325, 'water'],\n     ['spelt0', 100, 'flour'], ['egg', 100, 'egg']]],\n   {'flour_total': '300',\n    'hydration': '162.3',\n    'percentages': [['bread flour1', '66.7'], ['milk', '33.3'], ['salt', '3.7'], ['water', '108.3'],\n                    ['spelt0', '33.3'], ['egg', '33.3']]}],\n  ['generated control 1',\n   [[['spelt1', 250, 'flour'], ['water', 325, 'water'], ['levain', 90, 'starter'], ['spelt0', 250, 'flour'],\n     ['salt', 11, 'other'], ['whole wheat2', 450, 'flour'], ['egg', 100, 'egg']]],\n   {'flour_total': '995',\n    'hydration': '44.7',\n    'percentages': [['spelt1', '25.1'], ['water', '32.7'], ['levain', '9.0'], ['spelt0', '25.1'],\n                    ['salt', '1.1'], ['whole wheat2', '45.2'], ['egg', '10.1']]}],\n  ['generated control 2',\n   [[['spelt1', 100, 'flour'], ['spelt0', 250, 'flour'], ['salt', 11, 'other'], ['egg', 50, 'egg'],\n     ['levain', 150, 'starter']]],\n   {'flour_total': '425',\n    'hydration': '26.5',\n    'percentages': [['spelt1', '23.5'], ['spelt0', '58.8'], ['salt', '2.6'], ['egg', '11.8'],\n                    ['levain', '35.3']]}],\n  ['generated control 3',\n   [[['rye0', 500, 'flour'], ['egg', 50, 'egg'], ['rye1', 333, 'flour'], ['water', 150, 'water'],\n     ['levain', 100, 'starter'], ['milk', 120, 'milk'], ['salt', 11, 'other']]],\n   {'flour_total': '883',\n    'hydration': '38.7',\n    'percentages': [['rye0', '56.6'], ['egg', '5.7'], ['rye1', '37.7'], ['water', '17.0'], ['levain', '11.3'],\n                    ['milk', '13.6'], ['salt', '1.2']]}]],\n [['enriched dough', [[['flour', 400, 'flour'], ['milk', 200, 'milk'], ['egg', 100, 'egg']]],\n   {'flour_total': '400',\n    'hydration': '62.3',\n    'percentages': [['flour', '100.0'], ['milk', '50.0'], ['egg', '25.0']]}],\n  ['two flours with levain',\n   [[['bread', 400, 'flour'], ['rye', 100, 'flour'], ['levain', 100, 'starter'], ['water', 330, 'water']]],\n   {'flour_total': '550',\n    'hydration': '69.1',\n    'percentages': [['bread', '72.7'], ['rye', '18.2'], ['levain', '18.2'], ['water', '60.0']]}],\n  ['lean dough control', [[['flour', 500, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['flour', '100.0'], ['water', '70.0'], ['salt', '2.0']]}],\n  ['regression: milk water content',\n   [[['milk', 50, 'milk'], ['spelt1', 300, 'flour'], ['egg', 50, 'egg'], ['salt', 10, 'other'],\n     ['whole wheat0', 333, 'flour']]],\n   {'flour_total': '633',\n    'hydration': '12.8',\n    'percentages': [['milk', '7.9'], ['spelt1', '47.4'], ['egg', '7.9'], ['salt', '1.6'],\n                    ['whole wheat0', '52.6']]}],\n  ['repair check: milk water content',\n   [[['levain', 90, 'starter'], ['salt', 9, 'other'], ['milk', 120, 'milk'], ['rye0', 200, 'flour']]],\n   {'flour_total': '245',\n    'hydration': '61.0',\n    'percentages': [['levain', '36.7'], ['salt', '3.7'], ['milk', '49.0'], ['rye0', '81.6']]}],\n  ['generated control 1',\n   [[['spelt0', 250, 'flour'], ['egg', 100, 'egg'], ['bread flour1', 100, 'flour'], ['water', 200, 'water'],\n     ['salt', 10, 'other']]],\n   {'flour_total': '350',\n    'hydration': '78.6',\n    'percentages': [['spelt0', '71.4'], ['egg', '28.6'], ['bread flour1', '28.6'], ['water', '57.1'],\n                    ['salt', '2.9']]}],\n  ['generated control 2',\n   [[['salt', 11, 'other'], ['spelt0', 100, 'flour'], ['water', 350, 'water'], ['spelt1', 250, 'flour']]],\n   {'flour_total': '350',\n    'hydration': '100.0',\n    'percentages': [['salt', '3.1'], ['spelt0', '28.6'], ['water', '100.0'], ['spelt1', '71.4']]}],\n  ['generated control 3',\n   [[['spelt1', 100, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other'], ['egg', 50, 'egg'],\n     ['levain', 90, 'starter'], ['bread flour0', 450, 'flour']]],\n   {'flour_total': '595',\n    'hydration': '72.7',\n    'percentages': [['spelt1', '16.8'], ['water', '58.8'], ['salt', '1.7'], ['egg', '8.4'],\n                    ['levain', '15.1'], ['bread flour0', '75.6']]}]],\n [['two flours with levain',\n   [[['bread', 400, 'flour'], ['rye', 100, 'flour'], ['levain', 100, 'starter'], ['water', 330, 'water']]],\n   {'flour_total': '550',\n    'hydration': '69.1',\n    'percentages': [['bread', '72.7'], ['rye', '18.2'], ['levain', '18.2'], ['water', '60.0']]}],\n  ['lean dough control', [[['flour', 500, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['flour', '100.0'], ['water', '70.0'], ['salt', '2.0']]}],\n  ['no flour', [[['water', 100, 'water']]], 'error: no flour'],\n  ['regression: milk water content',\n   [[['salt', 9, 'other'], ['milk', 50, 'milk'], ['bread flour0', 450, 'flour'], ['water', 150, 'water'],\n     ['spelt1', 300, 'flour']]],\n   {'flour_total': '750',\n    'hydration': '25.8',\n    'percentages': [['salt', '1.2'], ['milk', '6.7'], ['bread flour0', '60.0'], ['water', '20.0'],\n                    ['spelt1', '40.0']]}],\n  ['repair check: milk water content',\n   [[['rye0', 250, 'flour'], ['milk', 100, 'milk'], ['whole wheat1', 450, 'flour'], ['salt', 11, 'other'],\n     ['water', 200, 'water']]],\n   {'flour_total': '700',\n    'hydration': '41.0',\n    'percentages': [['rye0', '35.7'], ['milk', '14.3'], ['whole wheat1', '64.3'], ['salt', '1.6'],\n                    ['water', '28.6']]}],\n  ['generated control 1',\n   [[['rye0', 200, 'flour'], ['salt', 11, 'other'], ['levain', 100, 'starter'], ['water', 200, 'water'],\n     ['whole wheat1', 500, 'flour']]],\n   {'flour_total': '750',\n    'hydration': '33.3',\n    'percentages': [['rye0', '26.7'], ['salt', '1.5'], ['levain', '13.3'], ['water', '26.7'],\n                    ['whole wheat1', '66.7']]}],\n  ['generated control 2',\n   [[['levain', 60, 'starter'], ['salt', 11, 'other'], ['bread flour0', 300, 'flour']]],\n   {'flour_total': '330',\n    'hydration': '9.1',\n    'percentages': [['levain', '18.2'], ['salt', '3.3'], ['bread flour0', '90.9']]}],\n  ['generated control 3',\n   [[['bread flour2', 250, 'flour'], ['rye1', 300, 'flour'], ['milk', 50, 'milk'], ['salt', 10, 'other'],\n     ['whole wheat0', 450, 'flour']]],\n   {'flour_total': '1000',\n    'hydration': '4.4',\n    'percentages': [['bread flour2', '25.0'], ['rye1', '30.0'], ['milk', '5.0'], ['salt', '1.0'],\n                    ['whole wheat0', '45.0']]}]],\n [['lean dough control', [[['flour', 500, 'flour'], ['water', 350, 'water'], ['salt', 10, 'other']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['flour', '100.0'], ['water', '70.0'], ['salt', '2.0']]}],\n  ['no flour', [[['water', 100, 'water']]], 'error: no flour'],\n  ['enriched dough', [[['flour', 400, 'flour'], ['milk', 200, 'milk'], ['egg', 100, 'egg']]],\n   {'flour_total': '400',\n    'hydration': '62.3',\n    'percentages': [['flour', '100.0'], ['milk', '50.0'], ['egg', '25.0']]}],\n  ['regression: milk water content',\n   [[['milk', 120, 'milk'], ['salt', 10, 'other'], ['whole wheat0', 100, 'flour']]],\n   {'flour_total': '100',\n    'hydration': '104.4',\n    'percentages': [['milk', '120.0'], ['salt', '10.0'], ['whole wheat0', '100.0']]}],\n  ['repair check: milk water content',\n   [[['salt', 9, 'other'], ['water', 150, 'water'], ['spelt0', 100, 'flour'], ['levain', 60, 'starter'],\n     ['milk', 100, 'milk']]],\n   {'flour_total': '130',\n    'hydration': '205.4',\n    'percentages': [['salt', '6.9'], ['water', '115.4'], ['spelt0', '76.9'], ['levain', '46.2'],\n                    ['milk', '76.9']]}],\n  ['generated control 1',\n   [[['spelt1', 100, 'flour'], ['rye2', 450, 'flour'], ['rye0', 250, 'flour'], ['water', 350, 'water'],\n     ['salt', 10, 'other'], ['egg', 100, 'egg']]],\n   {'flour_total': '800',\n    'hydration': '53.1',\n    'percentages': [['spelt1', '12.5'], ['rye2', '56.3'], ['rye0', '31.3'], ['water', '43.8'],\n                    ['salt', '1.3'], ['egg', '12.5']]}],\n  ['generated control 2',\n   [[['bread flour0', 333, 'flour'], ['bread flour1', 500, 'flour'], ['bread flour2', 333, 'flour'],\n     ['salt', 11, 'other'], ['water', 150, 'water'], ['egg', 100, 'egg']]],\n   {'flour_total': '1166',\n    'hydration': '19.3',\n    'percentages': [['bread flour0', '28.6'], ['bread flour1', '42.9'], ['bread flour2', '28.6'],\n                    ['salt', '0.9'], ['water', '12.9'], ['egg', '8.6']]}],\n  ['generated control 3',\n   [[['salt', 9, 'other'], ['milk', 100, 'milk'], ['whole wheat0', 333, 'flour'], ['egg', 50, 'egg'],\n     ['water', 350, 'water']]],\n   {'flour_total': '333',\n    'hydration': '142.5',\n    'percentages': [['salt', '2.7'], ['milk', '30.0'], ['whole wheat0', '100.0'], ['egg', '15.0'],\n                    ['water', '105.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-recipe_scaling_and_nutrition-bakers-percentage-milk-water-content","generated_at":"2026-09-29T14:52:27.334530+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Bread formulas are written and scaled in baker's percentages, and hydration drives dough handling.","repair":"Count milk at 87% water.","root_cause":"Milk is counted at 100% water instead of 87%.","sha256":"56af4fc8bddb84881e2380a39c9b69686763c3d2e6cbca4e7789f091934b4745","title":"Baker's percentage calculator: milk water content · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.566,"exit_code":1,"observations":[{"actual":{"flour_total":"500","hydration":"70.0","percentages":[["flour","100.0"],["water","70.0"],["salt","2.0"]]},"check":"lean dough control","expected":{"flour_total":"500","hydration":"70.0","percentages":[["flour","100.0"],["water","70.0"],["salt","2.0"]]},"passed":true},{"actual":"error: no flour","check":"no flour","expected":"error: no flour","passed":true},{"actual":{"flour_total":"400","hydration":"25.3","percentages":[["flour","100.0"],["milk","50.0"],["egg","25.0"]]},"check":"enriched dough","expected":{"flour_total":"400","hydration":"62.3","percentages":[["flour","100.0"],["milk","50.0"],["egg","25.0"]]},"passed":false},{"actual":{"flour_total":"200","hydration":"100.3","percentages":[["rye0","100.0"],["salt","4.5"],["milk","50.0"],["water","75.0"],["egg","25.0"]]},"check":"regression: milk water content","expected":{"flour_total":"200","hydration":"137.3","percentages":[["rye0","100.0"],["salt","4.5"],["milk","50.0"],["water","75.0"],["egg","25.0"]]},"passed":false},{"actual":{"flour_total":"700","hydration":"37.6","percentages":[["bread flour1","14.3"],["rye0","35.7"],["whole wheat2","42.9"],["water","28.6"],["levain","14.3"],["salt","1.4"],["milk","14.3"]]},"check":"repair check: milk water content","expected":{"flour_total":"700","hydration":"48.1","percentages":[["bread flour1","14.3"],["rye0","35.7"],["whole wheat2","42.9"],["water","28.6"],["levain","14.3"],["salt","1.4"],["milk","14.3"]]},"passed":false},{"actual":{"flour_total":"666","hydration":"0.0","percentages":[["salt","1.5"],["spelt0","50.0"],["whole wheat1","50.0"]]},"check":"generated control 1","expected":{"flour_total":"666","hydration":"0.0","percentages":[["salt","1.5"],["spelt0","50.0"],["whole wheat1","50.0"]]},"passed":true},{"actual":{"flour_total":"525","hydration":"90.5","percentages":[["whole wheat1","38.1"],["whole wheat0","47.6"],["salt","2.1"],["water","61.9"],["egg","19.0"],["levain","28.6"]]},"check":"generated control 2","expected":{"flour_total":"525","hydration":"90.5","percentages":[["whole wheat1","38.1"],["whole wheat0","47.6"],["salt","2.1"],["water","61.9"],["egg","19.0"],["levain","28.6"]]},"passed":true},{"actual":{"flour_total":"930","hydration":"3.9","percentages":[["bread flour0","32.3"],["rye2","10.8"],["levain","6.5"],["whole wheat1","53.8"],["salt","1.1"],["milk","5.4"]]},"check":"generated control 3","expected":{"flour_total":"930","hydration":"7.9","percentages":[["bread flour0","32.3"],["rye2","10.8"],["levain","6.5"],["whole wheat1","53.8"],["salt","1.1"],["milk","5.4"]]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"lean dough control\", \"actual\": {\"flour_total\": \"500\", \"percentages\": [[\"flour\", \"100.0\"], [\"water\", \"70.0\"], [\"salt\", \"2.0\"]], \"hydration\": \"70.0\"}, \"expected\": {\"flour_total\": \"500\", \"hydration\": \"70.0\", \"percentages\": [[\"flour\", \"100.0\"], [\"water\", \"70.0\"], [\"salt\", \"2.0\"]]}, \"passed\": true}, {\"check\": \"no flour\", \"actual\": \"error: no flour\", \"expected\": \"error: no flour\", \"passed\": true}, {\"check\": \"enriched dough\", \"actual\": {\"flour_total\": \"400\", \"percentages\": [[\"flour\", \"100.0\"], [\"milk\", \"50.0\"], [\"egg\", \"25.0\"]], \"hydration\": \"25.3\"}, \"expected\": {\"flour_total\": \"400\", \"hydration\": \"62.3\", \"percentages\": [[\"flour\", \"100.0\"], [\"milk\", \"50.0\"], [\"egg\", \"25.0\"]]}, \"passed\": false}, {\"check\": \"regression: milk water content\", \"actual\": {\"flour_total\": \"200\", \"percentages\": [[\"rye0\", \"100.0\"], [\"salt\", \"4.5\"], [\"milk\", \"50.0\"], [\"water\", \"75.0\"], [\"egg\", \"25.0\"]], \"hydration\": \"100.3\"}, \"expected\": {\"flour_total\": \"200\", \"hydration\": \"137.3\", \"percentages\": [[\"rye0\", \"100.0\"], [\"salt\", \"4.5\"], [\"milk\", \"50.0\"], [\"water\", \"75.0\"], [\"egg\", \"25.0\"]]}, \"passed\": false}, {\"check\": \"repair check: milk water content\", \"actual\": {\"flour_total\": \"700\", \"percentages\": [[\"bread flour1\", \"14.3\"], [\"rye0\", \"35.7\"], [\"whole wheat2\", \"42.9\"], [\"water\", \"28.6\"], [\"levain\", \"14.3\"], [\"salt\", \"1.4\"], [\"milk\", \"14.3\"]], \"hydration\": \"37.6\"}, \"expected\": {\"flour_total\": \"700\", \"hydration\": \"48.1\", \"percentages\": [[\"bread flour1\", \"14.3\"], [\"rye0\", \"35.7\"], [\"whole wheat2\", \"42.9\"], [\"water\", \"28.6\"], [\"levain\", \"14.3\"], [\"salt\", \"1.4\"], [\"milk\", \"14.3\"]]}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": {\"flour_total\": \"666\", \"percentages\": [[\"salt\", \"1.5\"], [\"spelt0\", \"50.0\"], [\"whole wheat1\", \"50.0\"]], \"hydration\": \"0.0\"}, \"expected\": {\"flour_total\": \"666\", \"hydration\": \"0.0\", \"percentages\": [[\"salt\", \"1.5\"], [\"spelt0\", \"50.0\"], [\"whole wheat1\", \"50.0\"]]}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"flour_total\": \"525\", \"percentages\": [[\"whole wheat1\", \"38.1\"], [\"whole wheat0\", \"47.6\"], [\"salt\", \"2.1\"], [\"water\", \"61.9\"], [\"egg\", \"19.0\"], [\"levain\", \"28.6\"]], \"hydration\": \"90.5\"}, \"expected\": {\"flour_total\": \"525\", \"hydration\": \"90.5\", \"percentages\": [[\"whole wheat1\", \"38.1\"], [\"whole wheat0\", \"47.6\"], [\"salt\", \"2.1\"], [\"water\", \"61.9\"], [\"egg\", \"19.0\"], [\"levain\", \"28.6\"]]}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"flour_total\": \"930\", \"percentages\": [[\"bread flour0\", \"32.3\"], [\"rye2\", \"10.8\"], [\"levain\", \"6.5\"], [\"whole wheat1\", \"53.8\"], [\"salt\", \"1.1\"], [\"milk\", \"5.4\"]], \"hydration\": \"3.9\"}, \"expected\": {\"flour_total\": \"930\", \"hydration\": \"7.9\", \"percentages\": [[\"bread flour0\", \"32.3\"], [\"rye2\", \"10.8\"], [\"levain\", \"6.5\"], [\"whole wheat1\", \"53.8\"], [\"salt\", \"1.1\"], [\"milk\", \"5.4\"]]}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.96,"exit_code":1,"observations":[{"actual":{"flour_total":"500","hydration":"70.0","percentages":[["flour","100.0"],["water","70.0"],["salt","2.0"]]},"check":"lean dough control","expected":{"flour_total":"500","hydration":"70.0","percentages":[["flour","100.0"],["water","70.0"],["salt","2.0"]]},"passed":true},{"actual":"error: no flour","check":"no flour","expected":"error: no flour","passed":true},{"actual":{"flour_total":"400","hydration":"68.8","percentages":[["flour","100.0"],["milk","50.0"],["egg","25.0"]]},"check":"enriched dough","expected":{"flour_total":"400","hydration":"62.3","percentages":[["flour","100.0"],["milk","50.0"],["egg","25.0"]]},"passed":false},{"actual":{"flour_total":"200","hydration":"143.8","percentages":[["rye0","100.0"],["salt","4.5"],["milk","50.0"],["water","75.0"],["egg","25.0"]]},"check":"regression: milk water content","expected":{"flour_total":"200","hydration":"137.3","percentages":[["rye0","100.0"],["salt","4.5"],["milk","50.0"],["water","75.0"],["egg","25.0"]]},"passed":false},{"actual":{"flour_total":"700","hydration":"50.0","percentages":[["bread flour1","14.3"],["rye0","35.7"],["whole wheat2","42.9"],["water","28.6"],["levain","14.3"],["salt","1.4"],["milk","14.3"]]},"check":"repair check: milk water content","expected":{"flour_total":"700","hydration":"48.1","percentages":[["bread flour1","14.3"],["rye0","35.7"],["whole wheat2","42.9"],["water","28.6"],["levain","14.3"],["salt","1.4"],["milk","14.3"]]},"passed":false},{"actual":{"flour_total":"666","hydration":"0.0","percentages":[["salt","1.5"],["spelt0","50.0"],["whole wheat1","50.0"]]},"check":"generated control 1","expected":{"flour_total":"666","hydration":"0.0","percentages":[["salt","1.5"],["spelt0","50.0"],["whole wheat1","50.0"]]},"passed":true},{"actual":{"flour_total":"525","hydration":"90.5","percentages":[["whole wheat1","38.1"],["whole wheat0","47.6"],["salt","2.1"],["water","61.9"],["egg","19.0"],["levain","28.6"]]},"check":"generated control 2","expected":{"flour_total":"525","hydration":"90.5","percentages":[["whole wheat1","38.1"],["whole wheat0","47.6"],["salt","2.1"],["water","61.9"],["egg","19.0"],["levain","28.6"]]},"passed":true},{"actual":{"flour_total":"930","hydration":"8.6","percentages":[["bread flour0","32.3"],["rye2","10.8"],["levain","6.5"],["whole wheat1","53.8"],["salt","1.1"],["milk","5.4"]]},"check":"generated control 3","expected":{"flour_total":"930","hydration":"7.9","percentages":[["bread flour0","32.3"],["rye2","10.8"],["levain","6.5"],["whole wheat1","53.8"],["salt","1.1"],["milk","5.4"]]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"lean dough control\", \"actual\": {\"flour_total\": \"500\", \"percentages\": [[\"flour\", \"100.0\"], [\"water\", \"70.0\"], [\"salt\", \"2.0\"]], \"hydration\": \"70.0\"}, \"expected\": {\"flour_total\": \"500\", \"hydration\": \"70.0\", \"percentages\": [[\"flour\", \"100.0\"], [\"water\", \"70.0\"], [\"salt\", \"2.0\"]]}, \"passed\": true}, {\"check\": \"no flour\", \"actual\": \"error: no flour\", \"expected\": \"error: no flour\", \"passed\": true}, {\"check\": \"enriched dough\", \"actual\": {\"flour_total\": \"400\", \"percentages\": [[\"flour\", \"100.0\"], [\"milk\", \"50.0\"], [\"egg\", \"25.0\"]], \"hydration\": \"68.8\"}, \"expected\": {\"flour_total\": \"400\", \"hydration\": \"62.3\", \"percentages\": [[\"flour\", \"100.0\"], [\"milk\", \"50.0\"], [\"egg\", \"25.0\"]]}, \"passed\": false}, {\"check\": \"regression: milk water content\", \"actual\": {\"flour_total\": \"200\", \"percentages\": [[\"rye0\", \"100.0\"], [\"salt\", \"4.5\"], [\"milk\", \"50.0\"], [\"water\", \"75.0\"], [\"egg\", \"25.0\"]], \"hydration\": \"143.8\"}, \"expected\": {\"flour_total\": \"200\", \"hydration\": \"137.3\", \"percentages\": [[\"rye0\", \"100.0\"], [\"salt\", \"4.5\"], [\"milk\", \"50.0\"], [\"water\", \"75.0\"], [\"egg\", \"25.0\"]]}, \"passed\": false}, {\"check\": \"repair check: milk water content\", \"actual\": {\"flour_total\": \"700\", \"percentages\": [[\"bread flour1\", \"14.3\"], [\"rye0\", \"35.7\"], [\"whole wheat2\", \"42.9\"], [\"water\", \"28.6\"], [\"levain\", \"14.3\"], [\"salt\", \"1.4\"], [\"milk\", \"14.3\"]], \"hydration\": \"50.0\"}, \"expected\": {\"flour_total\": \"700\", \"hydration\": \"48.1\", \"percentages\": [[\"bread flour1\", \"14.3\"], [\"rye0\", \"35.7\"], [\"whole wheat2\", \"42.9\"], [\"water\", \"28.6\"], [\"levain\", \"14.3\"], [\"salt\", \"1.4\"], [\"milk\", \"14.3\"]]}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": {\"flour_total\": \"666\", \"percentages\": [[\"salt\", \"1.5\"], [\"spelt0\", \"50.0\"], [\"whole wheat1\", \"50.0\"]], \"hydration\": \"0.0\"}, \"expected\": {\"flour_total\": \"666\", \"hydration\": \"0.0\", \"percentages\": [[\"salt\", \"1.5\"], [\"spelt0\", \"50.0\"], [\"whole wheat1\", \"50.0\"]]}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"flour_total\": \"525\", \"percentages\": [[\"whole wheat1\", \"38.1\"], [\"whole wheat0\", \"47.6\"], [\"salt\", \"2.1\"], [\"water\", \"61.9\"], [\"egg\", \"19.0\"], [\"levain\", \"28.6\"]], \"hydration\": \"90.5\"}, \"expected\": {\"flour_total\": \"525\", \"hydration\": \"90.5\", \"percentages\": [[\"whole wheat1\", \"38.1\"], [\"whole wheat0\", \"47.6\"], [\"salt\", \"2.1\"], [\"water\", \"61.9\"], [\"egg\", \"19.0\"], [\"levain\", \"28.6\"]]}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"flour_total\": \"930\", \"percentages\": [[\"bread flour0\", \"32.3\"], [\"rye2\", \"10.8\"], [\"levain\", \"6.5\"], [\"whole wheat1\", \"53.8\"], [\"salt\", \"1.1\"], [\"milk\", \"5.4\"]], \"hydration\": \"8.6\"}, \"expected\": {\"flour_total\": \"930\", \"hydration\": \"7.9\", \"percentages\": [[\"bread flour0\", \"32.3\"], [\"rye2\", \"10.8\"], [\"levain\", \"6.5\"], [\"whole wheat1\", \"53.8\"], [\"salt\", \"1.1\"], [\"milk\", \"5.4\"]]}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.879,"exit_code":0,"observations":[{"actual":{"flour_total":"500","hydration":"70.0","percentages":[["flour","100.0"],["water","70.0"],["salt","2.0"]]},"check":"lean dough control","expected":{"flour_total":"500","hydration":"70.0","percentages":[["flour","100.0"],["water","70.0"],["salt","2.0"]]},"passed":true},{"actual":"error: no flour","check":"no flour","expected":"error: no flour","passed":true},{"actual":{"flour_total":"400","hydration":"62.3","percentages":[["flour","100.0"],["milk","50.0"],["egg","25.0"]]},"check":"enriched dough","expected":{"flour_total":"400","hydration":"62.3","percentages":[["flour","100.0"],["milk","50.0"],["egg","25.0"]]},"passed":true},{"actual":{"flour_total":"200","hydration":"137.3","percentages":[["rye0","100.0"],["salt","4.5"],["milk","50.0"],["water","75.0"],["egg","25.0"]]},"check":"regression: milk water content","expected":{"flour_total":"200","hydration":"137.3","percentages":[["rye0","100.0"],["salt","4.5"],["milk","50.0"],["water","75.0"],["egg","25.0"]]},"passed":true},{"actual":{"flour_total":"700","hydration":"48.1","percentages":[["bread flour1","14.3"],["rye0","35.7"],["whole wheat2","42.9"],["water","28.6"],["levain","14.3"],["salt","1.4"],["milk","14.3"]]},"check":"repair check: milk water content","expected":{"flour_total":"700","hydration":"48.1","percentages":[["bread flour1","14.3"],["rye0","35.7"],["whole wheat2","42.9"],["water","28.6"],["levain","14.3"],["salt","1.4"],["milk","14.3"]]},"passed":true},{"actual":{"flour_total":"666","hydration":"0.0","percentages":[["salt","1.5"],["spelt0","50.0"],["whole wheat1","50.0"]]},"check":"generated control 1","expected":{"flour_total":"666","hydration":"0.0","percentages":[["salt","1.5"],["spelt0","50.0"],["whole wheat1","50.0"]]},"passed":true},{"actual":{"flour_total":"525","hydration":"90.5","percentages":[["whole wheat1","38.1"],["whole wheat0","47.6"],["salt","2.1"],["water","61.9"],["egg","19.0"],["levain","28.6"]]},"check":"generated control 2","expected":{"flour_total":"525","hydration":"90.5","percentages":[["whole wheat1","38.1"],["whole wheat0","47.6"],["salt","2.1"],["water","61.9"],["egg","19.0"],["levain","28.6"]]},"passed":true},{"actual":{"flour_total":"930","hydration":"7.9","percentages":[["bread flour0","32.3"],["rye2","10.8"],["levain","6.5"],["whole wheat1","53.8"],["salt","1.1"],["milk","5.4"]]},"check":"generated control 3","expected":{"flour_total":"930","hydration":"7.9","percentages":[["bread flour0","32.3"],["rye2","10.8"],["levain","6.5"],["whole wheat1","53.8"],["salt","1.1"],["milk","5.4"]]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"lean dough control\", \"actual\": {\"flour_total\": \"500\", \"percentages\": [[\"flour\", \"100.0\"], [\"water\", \"70.0\"], [\"salt\", \"2.0\"]], \"hydration\": \"70.0\"}, \"expected\": {\"flour_total\": \"500\", \"hydration\": \"70.0\", \"percentages\": [[\"flour\", \"100.0\"], [\"water\", \"70.0\"], [\"salt\", \"2.0\"]]}, \"passed\": true}, {\"check\": \"no flour\", \"actual\": \"error: no flour\", \"expected\": \"error: no flour\", \"passed\": true}, {\"check\": \"enriched dough\", \"actual\": {\"flour_total\": \"400\", \"percentages\": [[\"flour\", \"100.0\"], [\"milk\", \"50.0\"], [\"egg\", \"25.0\"]], \"hydration\": \"62.3\"}, \"expected\": {\"flour_total\": \"400\", \"hydration\": \"62.3\", \"percentages\": [[\"flour\", \"100.0\"], [\"milk\", \"50.0\"], [\"egg\", \"25.0\"]]}, \"passed\": true}, {\"check\": \"regression: milk water content\", \"actual\": {\"flour_total\": \"200\", \"percentages\": [[\"rye0\", \"100.0\"], [\"salt\", \"4.5\"], [\"milk\", \"50.0\"], [\"water\", \"75.0\"], [\"egg\", \"25.0\"]], \"hydration\": \"137.3\"}, \"expected\": {\"flour_total\": \"200\", \"hydration\": \"137.3\", \"percentages\": [[\"rye0\", \"100.0\"], [\"salt\", \"4.5\"], [\"milk\", \"50.0\"], [\"water\", \"75.0\"], [\"egg\", \"25.0\"]]}, \"passed\": true}, {\"check\": \"repair check: milk water content\", \"actual\": {\"flour_total\": \"700\", \"percentages\": [[\"bread flour1\", \"14.3\"], [\"rye0\", \"35.7\"], [\"whole wheat2\", \"42.9\"], [\"water\", \"28.6\"], [\"levain\", \"14.3\"], [\"salt\", \"1.4\"], [\"milk\", \"14.3\"]], \"hydration\": \"48.1\"}, \"expected\": {\"flour_total\": \"700\", \"hydration\": \"48.1\", \"percentages\": [[\"bread flour1\", \"14.3\"], [\"rye0\", \"35.7\"], [\"whole wheat2\", \"42.9\"], [\"water\", \"28.6\"], [\"levain\", \"14.3\"], [\"salt\", \"1.4\"], [\"milk\", \"14.3\"]]}, \"passed\": true}, {\"check\": \"generated control 1\", \"actual\": {\"flour_total\": \"666\", \"percentages\": [[\"salt\", \"1.5\"], [\"spelt0\", \"50.0\"], [\"whole wheat1\", \"50.0\"]], \"hydration\": \"0.0\"}, \"expected\": {\"flour_total\": \"666\", \"hydration\": \"0.0\", \"percentages\": [[\"salt\", \"1.5\"], [\"spelt0\", \"50.0\"], [\"whole wheat1\", \"50.0\"]]}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"flour_total\": \"525\", \"percentages\": [[\"whole wheat1\", \"38.1\"], [\"whole wheat0\", \"47.6\"], [\"salt\", \"2.1\"], [\"water\", \"61.9\"], [\"egg\", \"19.0\"], [\"levain\", \"28.6\"]], \"hydration\": \"90.5\"}, \"expected\": {\"flour_total\": \"525\", \"hydration\": \"90.5\", \"percentages\": [[\"whole wheat1\", \"38.1\"], [\"whole wheat0\", \"47.6\"], [\"salt\", \"2.1\"], [\"water\", \"61.9\"], [\"egg\", \"19.0\"], [\"levain\", \"28.6\"]]}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"flour_total\": \"930\", \"percentages\": [[\"bread flour0\", \"32.3\"], [\"rye2\", \"10.8\"], [\"levain\", \"6.5\"], [\"whole wheat1\", \"53.8\"], [\"salt\", \"1.1\"], [\"milk\", \"5.4\"]], \"hydration\": \"7.9\"}, \"expected\": {\"flour_total\": \"930\", \"hydration\": \"7.9\", \"percentages\": [[\"bread flour0\", \"32.3\"], [\"rye2\", \"10.8\"], [\"levain\", \"6.5\"], [\"whole wheat1\", \"53.8\"], [\"salt\", \"1.1\"], [\"milk\", \"5.4\"]]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}