{"abstract":"A 400 g bread flour + 100 g rye formula reports 87.5% hydration for 350 g water instead of 70%.","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 the largest flour row still drops the secondary flours from the basis.","family":"w2-recipe_scaling_and_nutrition-bakers-percentage-multiple-flour-basis","id":"FA-96931","implementations":{"attempt":{"sha256":"f7206a0b7c0dc3024c7451ebaa7de9f7c4d87f2866c197518ac54d2759353f62","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 = max((Fraction(str(g)) for n, g, r in ingredients if r == 'flour'), default=Fraction(0)) + 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: multiple flour basis',\n   [[['bread flour1', 300, 'flour'], ['water', 350, 'water'], ['spelt2', 450, 'flour'],\n     ['bread flour0', 450, 'flour'], ['milk', 100, 'milk'], ['salt', 11, 'other']]],\n   {'flour_total': '1200',\n    'hydration': '36.4',\n    'percentages': [['bread flour1', '25.0'], ['water', '29.2'], ['spelt2', '37.5'], ['bread flour0', '37.5'],\n                    ['milk', '8.3'], ['salt', '0.9']]}],\n  ['repair check: multiple flour basis',\n   [[['spelt1', 100, 'flour'], ['bread flour0', 500, 'flour'], ['levain', 150, 'starter'],\n     ['milk', 50, 'milk'], ['water', 325, 'water'], ['salt', 10, 'other'], ['bread flour2', 333, 'flour']]],\n   {'flour_total': '1008',\n    'hydration': '44.0',\n    'percentages': [['spelt1', '9.9'], ['bread flour0', '49.6'], ['levain', '14.9'], ['milk', '5.0'],\n                    ['water', '32.2'], ['salt', '1.0'], ['bread flour2', '33.0']]}],\n  ['generated control 1',\n   [[['milk', 100, 'milk'], ['bread flour0', 500, 'flour'], ['salt', 11, 'other'],\n     ['bread flour1', 100, 'flour']]],\n   {'flour_total': '600',\n    'hydration': '14.5',\n    'percentages': [['milk', '16.7'], ['bread flour0', '83.3'], ['salt', '1.8'], ['bread flour1', '16.7']]}],\n  ['generated control 2',\n   [[['bread flour0', 250, 'flour'], ['egg', 50, 'egg'], ['whole wheat2', 450, 'flour'],\n     ['milk', 100, 'milk'], ['bread flour1', 300, 'flour'], ['salt', 11, 'other']]],\n   {'flour_total': '1000',\n    'hydration': '12.5',\n    'percentages': [['bread flour0', '25.0'], ['egg', '5.0'], ['whole wheat2', '45.0'], ['milk', '10.0'],\n                    ['bread flour1', '30.0'], ['salt', '1.1']]}],\n  ['generated control 3',\n   [[['water', 200, 'water'], ['salt', 9, 'other'], ['bread flour0', 250, 'flour'], ['egg', 50, 'egg']]],\n   {'flour_total': '250',\n    'hydration': '95.0',\n    'percentages': [['water', '80.0'], ['salt', '3.6'], ['bread flour0', '100.0'], ['egg', '20.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  ['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: multiple flour basis',\n   [[['spelt2', 200, 'flour'], ['bread flour1', 450, 'flour'], ['salt', 9, 'other'], ['water', 325, 'water'],\n     ['whole wheat0', 500, 'flour'], ['milk', 120, 'milk']]],\n   {'flour_total': '1150',\n    'hydration': '37.3',\n    'percentages': [['spelt2', '17.4'], ['bread flour1', '39.1'], ['salt', '0.8'], ['water', '28.3'],\n                    ['whole wheat0', '43.5'], ['milk', '10.4']]}],\n  ['repair check: multiple flour basis',\n   [[['levain', 100, 'starter'], ['bread flour0', 100, 'flour'], ['salt', 10, 'other'],\n     ['rye1', 300, 'flour']]],\n   {'flour_total': '450',\n    'hydration': '11.1',\n    'percentages': [['levain', '22.2'], ['bread flour0', '22.2'], ['salt', '2.2'], ['rye1', '66.7']]}],\n  ['generated control 1',\n   [[['water', 325, 'water'], ['egg', 100, 'egg'], ['salt', 10, 'other'], ['whole wheat0', 250, 'flour'],\n     ['whole wheat1', 250, 'flour']]],\n   {'flour_total': '500',\n    'hydration': '80.0',\n    'percentages': [['water', '65.0'], ['egg', '20.0'], ['salt', '2.0'], ['whole wheat0', '50.0'],\n                    ['whole wheat1', '50.0']]}],\n  ['generated control 2',\n   [[['whole wheat0', 450, 'flour'], ['whole wheat2', 100, 'flour'], ['water', 325, 'water'],\n     ['bread flour1', 450, 'flour'], ['salt', 10, 'other']]],\n   {'flour_total': '1000',\n    'hydration': '32.5',\n    'percentages': [['whole wheat0', '45.0'], ['whole wheat2', '10.0'], ['water', '32.5'],\n                    ['bread flour1', '45.0'], ['salt', '1.0']]}],\n  ['generated control 3',\n   [[['levain', 60, 'starter'], ['egg', 100, 'egg'], ['rye2', 100, 'flour'], ['milk', 50, 'milk'],\n     ['spelt0', 200, 'flour'], ['bread flour1', 100, 'flour'], ['salt', 11, 'other']]],\n   {'flour_total': '430',\n    'hydration': '34.5',\n    'percentages': [['levain', '14.0'], ['egg', '23.3'], ['rye2', '23.3'], ['milk', '11.6'],\n                    ['spelt0', '46.5'], ['bread flour1', '23.3'], ['salt', '2.6']]}]],\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: multiple flour basis',\n   [[['whole wheat1', 300, 'flour'], ['bread flour0', 333, 'flour'], ['salt', 11, 'other']]],\n   {'flour_total': '633',\n    'hydration': '0.0',\n    'percentages': [['whole wheat1', '47.4'], ['bread flour0', '52.6'], ['salt', '1.7']]}],\n  ['repair check: multiple flour basis',\n   [[['bread flour1', 450, 'flour'], ['salt', 9, 'other'], ['whole wheat2', 100, 'flour'],\n     ['bread flour0', 450, 'flour'], ['milk', 120, 'milk']]],\n   {'flour_total': '1000',\n    'hydration': '10.4',\n    'percentages': [['bread flour1', '45.0'], ['salt', '0.9'], ['whole wheat2', '10.0'],\n                    ['bread flour0', '45.0'], ['milk', '12.0']]}],\n  ['generated control 1',\n   [[['spelt0', 100, 'flour'], ['spelt1', 450, 'flour'], ['rye2', 450, 'flour'], ['levain', 100, 'starter'],\n     ['egg', 100, 'egg'], ['salt', 10, 'other'], ['water', 350, 'water'], ['milk', 100, 'milk']]],\n   {'flour_total': '1050',\n    'hydration': '53.5',\n    'percentages': [['spelt0', '9.5'], ['spelt1', '42.9'], ['rye2', '42.9'], ['levain', '9.5'],\n                    ['egg', '9.5'], ['salt', '1.0'], ['water', '33.3'], ['milk', '9.5']]}],\n  ['generated control 2',\n   [[['spelt1', 300, 'flour'], ['water', 200, 'water'], ['rye0', 450, 'flour'], ['egg', 50, 'egg'],\n     ['salt', 9, 'other']]],\n   {'flour_total': '750',\n    'hydration': '31.7',\n    'percentages': [['spelt1', '40.0'], ['water', '26.7'], ['rye0', '60.0'], ['egg', '6.7'],\n                    ['salt', '1.2']]}],\n  ['generated control 3',\n   [[['spelt2', 333, 'flour'], ['rye0', 200, 'flour'], ['water', 377, 'water'],\n     ['whole wheat1', 250, 'flour'], ['levain', 100, 'starter'], ['milk', 100, 'milk'],\n     ['salt', 11, 'other']]],\n   {'flour_total': '833',\n    'hydration': '61.7',\n    'percentages': [['spelt2', '40.0'], ['rye0', '24.0'], ['water', '45.3'], ['whole wheat1', '30.0'],\n                    ['levain', '12.0'], ['milk', '12.0'], ['salt', '1.3']]}]],\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: multiple flour basis',\n   [[['whole wheat2', 250, 'flour'], ['whole wheat0', 250, 'flour'], ['salt', 9, 'other'],\n     ['spelt1', 250, 'flour'], ['water', 325, 'water'], ['levain', 150, 'starter']]],\n   {'flour_total': '825',\n    'hydration': '48.5',\n    'percentages': [['whole wheat2', '30.3'], ['whole wheat0', '30.3'], ['salt', '1.1'], ['spelt1', '30.3'],\n                    ['water', '39.4'], ['levain', '18.2']]}],\n  ['repair check: multiple flour basis',\n   [[['rye0', 450, 'flour'], ['salt', 10, 'other'], ['water', 325, 'water'], ['rye2', 200, 'flour'],\n     ['spelt1', 200, 'flour']]],\n   {'flour_total': '850',\n    'hydration': '38.2',\n    'percentages': [['rye0', '52.9'], ['salt', '1.2'], ['water', '38.2'], ['rye2', '23.5'],\n                    ['spelt1', '23.5']]}],\n  ['generated control 1',\n   [[['whole wheat2', 300, 'flour'], ['water', 350, 'water'], ['whole wheat1', 500, 'flour'],\n     ['salt', 10, 'other'], ['milk', 50, 'milk'], ['whole wheat0', 300, 'flour']]],\n   {'flour_total': '1100',\n    'hydration': '35.8',\n    'percentages': [['whole wheat2', '27.3'], ['water', '31.8'], ['whole wheat1', '45.5'], ['salt', '0.9'],\n                    ['milk', '4.5'], ['whole wheat0', '27.3']]}],\n  ['generated control 2',\n   [[['egg', 50, 'egg'], ['spelt0', 200, 'flour'], ['salt', 9, 'other'], ['water', 325, 'water'],\n     ['whole wheat1', 500, 'flour'], ['levain', 150, 'starter']]],\n   {'flour_total': '775',\n    'hydration': '56.5',\n    'percentages': [['egg', '6.5'], ['spelt0', '25.8'], ['salt', '1.2'], ['water', '41.9'],\n                    ['whole wheat1', '64.5'], ['levain', '19.4']]}],\n  ['generated control 3',\n   [[['levain', 60, 'starter'], ['bread flour1', 333, 'flour'], ['whole wheat0', 100, 'flour'],\n     ['salt', 9, 'other'], ['egg', 50, 'egg']]],\n   {'flour_total': '463',\n    'hydration': '14.6',\n    'percentages': [['levain', '13.0'], ['bread flour1', '71.9'], ['whole wheat0', '21.6'], ['salt', '1.9'],\n                    ['egg', '10.8']]}]],\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: multiple flour basis',\n   [[['egg', 100, 'egg'], ['salt', 11, 'other'], ['rye1', 333, 'flour'], ['levain', 60, 'starter'],\n     ['whole wheat0', 100, 'flour']]],\n   {'flour_total': '463',\n    'hydration': '22.7',\n    'percentages': [['egg', '21.6'], ['salt', '2.4'], ['rye1', '71.9'], ['levain', '13.0'],\n                    ['whole wheat0', '21.6']]}],\n  ['repair check: multiple flour basis',\n   [[['whole wheat1', 200, 'flour'], ['rye0', 200, 'flour'], ['salt', 11, 'other'], ['milk', 100, 'milk']]],\n   {'flour_total': '400',\n    'hydration': '21.8',\n    'percentages': [['whole wheat1', '50.0'], ['rye0', '50.0'], ['salt', '2.8'], ['milk', '25.0']]}],\n  ['generated control 1', [[['salt', 11, 'other'], ['bread flour0', 500, 'flour'], ['water', 350, 'water']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['salt', '2.2'], ['bread flour0', '100.0'], ['water', '70.0']]}],\n  ['generated control 2', [[['spelt0', 300, 'flour'], ['salt', 9, 'other'], ['egg', 50, 'egg']]],\n   {'flour_total': '300',\n    'hydration': '12.5',\n    'percentages': [['spelt0', '100.0'], ['salt', '3.0'], ['egg', '16.7']]}],\n  ['generated control 3',\n   [[['whole wheat1', 300, 'flour'], ['salt', 9, 'other'], ['rye2', 450, 'flour'], ['levain', 100, 'starter'],\n     ['whole wheat0', 333, 'flour']]],\n   {'flour_total': '1133',\n    'hydration': '4.4',\n    'percentages': [['whole wheat1', '26.5'], ['salt', '0.8'], ['rye2', '39.7'], ['levain', '8.8'],\n                    ['whole wheat0', '29.4']]}]]]\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":"25c84a113561100c8a82496eb37b0f036c8e17f3a34c7b15217ff21f9f805934","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 = next((Fraction(str(g)) for n, g, r in ingredients if r == 'flour'), Fraction(0)) + 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: multiple flour basis',\n   [[['bread flour1', 300, 'flour'], ['water', 350, 'water'], ['spelt2', 450, 'flour'],\n     ['bread flour0', 450, 'flour'], ['milk', 100, 'milk'], ['salt', 11, 'other']]],\n   {'flour_total': '1200',\n    'hydration': '36.4',\n    'percentages': [['bread flour1', '25.0'], ['water', '29.2'], ['spelt2', '37.5'], ['bread flour0', '37.5'],\n                    ['milk', '8.3'], ['salt', '0.9']]}],\n  ['repair check: multiple flour basis',\n   [[['spelt1', 100, 'flour'], ['bread flour0', 500, 'flour'], ['levain', 150, 'starter'],\n     ['milk', 50, 'milk'], ['water', 325, 'water'], ['salt', 10, 'other'], ['bread flour2', 333, 'flour']]],\n   {'flour_total': '1008',\n    'hydration': '44.0',\n    'percentages': [['spelt1', '9.9'], ['bread flour0', '49.6'], ['levain', '14.9'], ['milk', '5.0'],\n                    ['water', '32.2'], ['salt', '1.0'], ['bread flour2', '33.0']]}],\n  ['generated control 1',\n   [[['milk', 100, 'milk'], ['bread flour0', 500, 'flour'], ['salt', 11, 'other'],\n     ['bread flour1', 100, 'flour']]],\n   {'flour_total': '600',\n    'hydration': '14.5',\n    'percentages': [['milk', '16.7'], ['bread flour0', '83.3'], ['salt', '1.8'], ['bread flour1', '16.7']]}],\n  ['generated control 2',\n   [[['bread flour0', 250, 'flour'], ['egg', 50, 'egg'], ['whole wheat2', 450, 'flour'],\n     ['milk', 100, 'milk'], ['bread flour1', 300, 'flour'], ['salt', 11, 'other']]],\n   {'flour_total': '1000',\n    'hydration': '12.5',\n    'percentages': [['bread flour0', '25.0'], ['egg', '5.0'], ['whole wheat2', '45.0'], ['milk', '10.0'],\n                    ['bread flour1', '30.0'], ['salt', '1.1']]}],\n  ['generated control 3',\n   [[['water', 200, 'water'], ['salt', 9, 'other'], ['bread flour0', 250, 'flour'], ['egg', 50, 'egg']]],\n   {'flour_total': '250',\n    'hydration': '95.0',\n    'percentages': [['water', '80.0'], ['salt', '3.6'], ['bread flour0', '100.0'], ['egg', '20.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  ['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: multiple flour basis',\n   [[['spelt2', 200, 'flour'], ['bread flour1', 450, 'flour'], ['salt', 9, 'other'], ['water', 325, 'water'],\n     ['whole wheat0', 500, 'flour'], ['milk', 120, 'milk']]],\n   {'flour_total': '1150',\n    'hydration': '37.3',\n    'percentages': [['spelt2', '17.4'], ['bread flour1', '39.1'], ['salt', '0.8'], ['water', '28.3'],\n                    ['whole wheat0', '43.5'], ['milk', '10.4']]}],\n  ['repair check: multiple flour basis',\n   [[['levain', 100, 'starter'], ['bread flour0', 100, 'flour'], ['salt', 10, 'other'],\n     ['rye1', 300, 'flour']]],\n   {'flour_total': '450',\n    'hydration': '11.1',\n    'percentages': [['levain', '22.2'], ['bread flour0', '22.2'], ['salt', '2.2'], ['rye1', '66.7']]}],\n  ['generated control 1',\n   [[['water', 325, 'water'], ['egg', 100, 'egg'], ['salt', 10, 'other'], ['whole wheat0', 250, 'flour'],\n     ['whole wheat1', 250, 'flour']]],\n   {'flour_total': '500',\n    'hydration': '80.0',\n    'percentages': [['water', '65.0'], ['egg', '20.0'], ['salt', '2.0'], ['whole wheat0', '50.0'],\n                    ['whole wheat1', '50.0']]}],\n  ['generated control 2',\n   [[['whole wheat0', 450, 'flour'], ['whole wheat2', 100, 'flour'], ['water', 325, 'water'],\n     ['bread flour1', 450, 'flour'], ['salt', 10, 'other']]],\n   {'flour_total': '1000',\n    'hydration': '32.5',\n    'percentages': [['whole wheat0', '45.0'], ['whole wheat2', '10.0'], ['water', '32.5'],\n                    ['bread flour1', '45.0'], ['salt', '1.0']]}],\n  ['generated control 3',\n   [[['levain', 60, 'starter'], ['egg', 100, 'egg'], ['rye2', 100, 'flour'], ['milk', 50, 'milk'],\n     ['spelt0', 200, 'flour'], ['bread flour1', 100, 'flour'], ['salt', 11, 'other']]],\n   {'flour_total': '430',\n    'hydration': '34.5',\n    'percentages': [['levain', '14.0'], ['egg', '23.3'], ['rye2', '23.3'], ['milk', '11.6'],\n                    ['spelt0', '46.5'], ['bread flour1', '23.3'], ['salt', '2.6']]}]],\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: multiple flour basis',\n   [[['whole wheat1', 300, 'flour'], ['bread flour0', 333, 'flour'], ['salt', 11, 'other']]],\n   {'flour_total': '633',\n    'hydration': '0.0',\n    'percentages': [['whole wheat1', '47.4'], ['bread flour0', '52.6'], ['salt', '1.7']]}],\n  ['repair check: multiple flour basis',\n   [[['bread flour1', 450, 'flour'], ['salt', 9, 'other'], ['whole wheat2', 100, 'flour'],\n     ['bread flour0', 450, 'flour'], ['milk', 120, 'milk']]],\n   {'flour_total': '1000',\n    'hydration': '10.4',\n    'percentages': [['bread flour1', '45.0'], ['salt', '0.9'], ['whole wheat2', '10.0'],\n                    ['bread flour0', '45.0'], ['milk', '12.0']]}],\n  ['generated control 1',\n   [[['spelt0', 100, 'flour'], ['spelt1', 450, 'flour'], ['rye2', 450, 'flour'], ['levain', 100, 'starter'],\n     ['egg', 100, 'egg'], ['salt', 10, 'other'], ['water', 350, 'water'], ['milk', 100, 'milk']]],\n   {'flour_total': '1050',\n    'hydration': '53.5',\n    'percentages': [['spelt0', '9.5'], ['spelt1', '42.9'], ['rye2', '42.9'], ['levain', '9.5'],\n                    ['egg', '9.5'], ['salt', '1.0'], ['water', '33.3'], ['milk', '9.5']]}],\n  ['generated control 2',\n   [[['spelt1', 300, 'flour'], ['water', 200, 'water'], ['rye0', 450, 'flour'], ['egg', 50, 'egg'],\n     ['salt', 9, 'other']]],\n   {'flour_total': '750',\n    'hydration': '31.7',\n    'percentages': [['spelt1', '40.0'], ['water', '26.7'], ['rye0', '60.0'], ['egg', '6.7'],\n                    ['salt', '1.2']]}],\n  ['generated control 3',\n   [[['spelt2', 333, 'flour'], ['rye0', 200, 'flour'], ['water', 377, 'water'],\n     ['whole wheat1', 250, 'flour'], ['levain', 100, 'starter'], ['milk', 100, 'milk'],\n     ['salt', 11, 'other']]],\n   {'flour_total': '833',\n    'hydration': '61.7',\n    'percentages': [['spelt2', '40.0'], ['rye0', '24.0'], ['water', '45.3'], ['whole wheat1', '30.0'],\n                    ['levain', '12.0'], ['milk', '12.0'], ['salt', '1.3']]}]],\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: multiple flour basis',\n   [[['whole wheat2', 250, 'flour'], ['whole wheat0', 250, 'flour'], ['salt', 9, 'other'],\n     ['spelt1', 250, 'flour'], ['water', 325, 'water'], ['levain', 150, 'starter']]],\n   {'flour_total': '825',\n    'hydration': '48.5',\n    'percentages': [['whole wheat2', '30.3'], ['whole wheat0', '30.3'], ['salt', '1.1'], ['spelt1', '30.3'],\n                    ['water', '39.4'], ['levain', '18.2']]}],\n  ['repair check: multiple flour basis',\n   [[['rye0', 450, 'flour'], ['salt', 10, 'other'], ['water', 325, 'water'], ['rye2', 200, 'flour'],\n     ['spelt1', 200, 'flour']]],\n   {'flour_total': '850',\n    'hydration': '38.2',\n    'percentages': [['rye0', '52.9'], ['salt', '1.2'], ['water', '38.2'], ['rye2', '23.5'],\n                    ['spelt1', '23.5']]}],\n  ['generated control 1',\n   [[['whole wheat2', 300, 'flour'], ['water', 350, 'water'], ['whole wheat1', 500, 'flour'],\n     ['salt', 10, 'other'], ['milk', 50, 'milk'], ['whole wheat0', 300, 'flour']]],\n   {'flour_total': '1100',\n    'hydration': '35.8',\n    'percentages': [['whole wheat2', '27.3'], ['water', '31.8'], ['whole wheat1', '45.5'], ['salt', '0.9'],\n                    ['milk', '4.5'], ['whole wheat0', '27.3']]}],\n  ['generated control 2',\n   [[['egg', 50, 'egg'], ['spelt0', 200, 'flour'], ['salt', 9, 'other'], ['water', 325, 'water'],\n     ['whole wheat1', 500, 'flour'], ['levain', 150, 'starter']]],\n   {'flour_total': '775',\n    'hydration': '56.5',\n    'percentages': [['egg', '6.5'], ['spelt0', '25.8'], ['salt', '1.2'], ['water', '41.9'],\n                    ['whole wheat1', '64.5'], ['levain', '19.4']]}],\n  ['generated control 3',\n   [[['levain', 60, 'starter'], ['bread flour1', 333, 'flour'], ['whole wheat0', 100, 'flour'],\n     ['salt', 9, 'other'], ['egg', 50, 'egg']]],\n   {'flour_total': '463',\n    'hydration': '14.6',\n    'percentages': [['levain', '13.0'], ['bread flour1', '71.9'], ['whole wheat0', '21.6'], ['salt', '1.9'],\n                    ['egg', '10.8']]}]],\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: multiple flour basis',\n   [[['egg', 100, 'egg'], ['salt', 11, 'other'], ['rye1', 333, 'flour'], ['levain', 60, 'starter'],\n     ['whole wheat0', 100, 'flour']]],\n   {'flour_total': '463',\n    'hydration': '22.7',\n    'percentages': [['egg', '21.6'], ['salt', '2.4'], ['rye1', '71.9'], ['levain', '13.0'],\n                    ['whole wheat0', '21.6']]}],\n  ['repair check: multiple flour basis',\n   [[['whole wheat1', 200, 'flour'], ['rye0', 200, 'flour'], ['salt', 11, 'other'], ['milk', 100, 'milk']]],\n   {'flour_total': '400',\n    'hydration': '21.8',\n    'percentages': [['whole wheat1', '50.0'], ['rye0', '50.0'], ['salt', '2.8'], ['milk', '25.0']]}],\n  ['generated control 1', [[['salt', 11, 'other'], ['bread flour0', 500, 'flour'], ['water', 350, 'water']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['salt', '2.2'], ['bread flour0', '100.0'], ['water', '70.0']]}],\n  ['generated control 2', [[['spelt0', 300, 'flour'], ['salt', 9, 'other'], ['egg', 50, 'egg']]],\n   {'flour_total': '300',\n    'hydration': '12.5',\n    'percentages': [['spelt0', '100.0'], ['salt', '3.0'], ['egg', '16.7']]}],\n  ['generated control 3',\n   [[['whole wheat1', 300, 'flour'], ['salt', 9, 'other'], ['rye2', 450, 'flour'], ['levain', 100, 'starter'],\n     ['whole wheat0', 333, 'flour']]],\n   {'flour_total': '1133',\n    'hydration': '4.4',\n    'percentages': [['whole wheat1', '26.5'], ['salt', '0.8'], ['rye2', '39.7'], ['levain', '8.8'],\n                    ['whole wheat0', '29.4']]}]]]\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":"951be74e3e8e46ae7aa3afd969ed36374a99f4dc9b1452d21db8c30eae0dda6b","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: multiple flour basis',\n   [[['bread flour1', 300, 'flour'], ['water', 350, 'water'], ['spelt2', 450, 'flour'],\n     ['bread flour0', 450, 'flour'], ['milk', 100, 'milk'], ['salt', 11, 'other']]],\n   {'flour_total': '1200',\n    'hydration': '36.4',\n    'percentages': [['bread flour1', '25.0'], ['water', '29.2'], ['spelt2', '37.5'], ['bread flour0', '37.5'],\n                    ['milk', '8.3'], ['salt', '0.9']]}],\n  ['repair check: multiple flour basis',\n   [[['spelt1', 100, 'flour'], ['bread flour0', 500, 'flour'], ['levain', 150, 'starter'],\n     ['milk', 50, 'milk'], ['water', 325, 'water'], ['salt', 10, 'other'], ['bread flour2', 333, 'flour']]],\n   {'flour_total': '1008',\n    'hydration': '44.0',\n    'percentages': [['spelt1', '9.9'], ['bread flour0', '49.6'], ['levain', '14.9'], ['milk', '5.0'],\n                    ['water', '32.2'], ['salt', '1.0'], ['bread flour2', '33.0']]}],\n  ['generated control 1',\n   [[['milk', 100, 'milk'], ['bread flour0', 500, 'flour'], ['salt', 11, 'other'],\n     ['bread flour1', 100, 'flour']]],\n   {'flour_total': '600',\n    'hydration': '14.5',\n    'percentages': [['milk', '16.7'], ['bread flour0', '83.3'], ['salt', '1.8'], ['bread flour1', '16.7']]}],\n  ['generated control 2',\n   [[['bread flour0', 250, 'flour'], ['egg', 50, 'egg'], ['whole wheat2', 450, 'flour'],\n     ['milk', 100, 'milk'], ['bread flour1', 300, 'flour'], ['salt', 11, 'other']]],\n   {'flour_total': '1000',\n    'hydration': '12.5',\n    'percentages': [['bread flour0', '25.0'], ['egg', '5.0'], ['whole wheat2', '45.0'], ['milk', '10.0'],\n                    ['bread flour1', '30.0'], ['salt', '1.1']]}],\n  ['generated control 3',\n   [[['water', 200, 'water'], ['salt', 9, 'other'], ['bread flour0', 250, 'flour'], ['egg', 50, 'egg']]],\n   {'flour_total': '250',\n    'hydration': '95.0',\n    'percentages': [['water', '80.0'], ['salt', '3.6'], ['bread flour0', '100.0'], ['egg', '20.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  ['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: multiple flour basis',\n   [[['spelt2', 200, 'flour'], ['bread flour1', 450, 'flour'], ['salt', 9, 'other'], ['water', 325, 'water'],\n     ['whole wheat0', 500, 'flour'], ['milk', 120, 'milk']]],\n   {'flour_total': '1150',\n    'hydration': '37.3',\n    'percentages': [['spelt2', '17.4'], ['bread flour1', '39.1'], ['salt', '0.8'], ['water', '28.3'],\n                    ['whole wheat0', '43.5'], ['milk', '10.4']]}],\n  ['repair check: multiple flour basis',\n   [[['levain', 100, 'starter'], ['bread flour0', 100, 'flour'], ['salt', 10, 'other'],\n     ['rye1', 300, 'flour']]],\n   {'flour_total': '450',\n    'hydration': '11.1',\n    'percentages': [['levain', '22.2'], ['bread flour0', '22.2'], ['salt', '2.2'], ['rye1', '66.7']]}],\n  ['generated control 1',\n   [[['water', 325, 'water'], ['egg', 100, 'egg'], ['salt', 10, 'other'], ['whole wheat0', 250, 'flour'],\n     ['whole wheat1', 250, 'flour']]],\n   {'flour_total': '500',\n    'hydration': '80.0',\n    'percentages': [['water', '65.0'], ['egg', '20.0'], ['salt', '2.0'], ['whole wheat0', '50.0'],\n                    ['whole wheat1', '50.0']]}],\n  ['generated control 2',\n   [[['whole wheat0', 450, 'flour'], ['whole wheat2', 100, 'flour'], ['water', 325, 'water'],\n     ['bread flour1', 450, 'flour'], ['salt', 10, 'other']]],\n   {'flour_total': '1000',\n    'hydration': '32.5',\n    'percentages': [['whole wheat0', '45.0'], ['whole wheat2', '10.0'], ['water', '32.5'],\n                    ['bread flour1', '45.0'], ['salt', '1.0']]}],\n  ['generated control 3',\n   [[['levain', 60, 'starter'], ['egg', 100, 'egg'], ['rye2', 100, 'flour'], ['milk', 50, 'milk'],\n     ['spelt0', 200, 'flour'], ['bread flour1', 100, 'flour'], ['salt', 11, 'other']]],\n   {'flour_total': '430',\n    'hydration': '34.5',\n    'percentages': [['levain', '14.0'], ['egg', '23.3'], ['rye2', '23.3'], ['milk', '11.6'],\n                    ['spelt0', '46.5'], ['bread flour1', '23.3'], ['salt', '2.6']]}]],\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: multiple flour basis',\n   [[['whole wheat1', 300, 'flour'], ['bread flour0', 333, 'flour'], ['salt', 11, 'other']]],\n   {'flour_total': '633',\n    'hydration': '0.0',\n    'percentages': [['whole wheat1', '47.4'], ['bread flour0', '52.6'], ['salt', '1.7']]}],\n  ['repair check: multiple flour basis',\n   [[['bread flour1', 450, 'flour'], ['salt', 9, 'other'], ['whole wheat2', 100, 'flour'],\n     ['bread flour0', 450, 'flour'], ['milk', 120, 'milk']]],\n   {'flour_total': '1000',\n    'hydration': '10.4',\n    'percentages': [['bread flour1', '45.0'], ['salt', '0.9'], ['whole wheat2', '10.0'],\n                    ['bread flour0', '45.0'], ['milk', '12.0']]}],\n  ['generated control 1',\n   [[['spelt0', 100, 'flour'], ['spelt1', 450, 'flour'], ['rye2', 450, 'flour'], ['levain', 100, 'starter'],\n     ['egg', 100, 'egg'], ['salt', 10, 'other'], ['water', 350, 'water'], ['milk', 100, 'milk']]],\n   {'flour_total': '1050',\n    'hydration': '53.5',\n    'percentages': [['spelt0', '9.5'], ['spelt1', '42.9'], ['rye2', '42.9'], ['levain', '9.5'],\n                    ['egg', '9.5'], ['salt', '1.0'], ['water', '33.3'], ['milk', '9.5']]}],\n  ['generated control 2',\n   [[['spelt1', 300, 'flour'], ['water', 200, 'water'], ['rye0', 450, 'flour'], ['egg', 50, 'egg'],\n     ['salt', 9, 'other']]],\n   {'flour_total': '750',\n    'hydration': '31.7',\n    'percentages': [['spelt1', '40.0'], ['water', '26.7'], ['rye0', '60.0'], ['egg', '6.7'],\n                    ['salt', '1.2']]}],\n  ['generated control 3',\n   [[['spelt2', 333, 'flour'], ['rye0', 200, 'flour'], ['water', 377, 'water'],\n     ['whole wheat1', 250, 'flour'], ['levain', 100, 'starter'], ['milk', 100, 'milk'],\n     ['salt', 11, 'other']]],\n   {'flour_total': '833',\n    'hydration': '61.7',\n    'percentages': [['spelt2', '40.0'], ['rye0', '24.0'], ['water', '45.3'], ['whole wheat1', '30.0'],\n                    ['levain', '12.0'], ['milk', '12.0'], ['salt', '1.3']]}]],\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: multiple flour basis',\n   [[['whole wheat2', 250, 'flour'], ['whole wheat0', 250, 'flour'], ['salt', 9, 'other'],\n     ['spelt1', 250, 'flour'], ['water', 325, 'water'], ['levain', 150, 'starter']]],\n   {'flour_total': '825',\n    'hydration': '48.5',\n    'percentages': [['whole wheat2', '30.3'], ['whole wheat0', '30.3'], ['salt', '1.1'], ['spelt1', '30.3'],\n                    ['water', '39.4'], ['levain', '18.2']]}],\n  ['repair check: multiple flour basis',\n   [[['rye0', 450, 'flour'], ['salt', 10, 'other'], ['water', 325, 'water'], ['rye2', 200, 'flour'],\n     ['spelt1', 200, 'flour']]],\n   {'flour_total': '850',\n    'hydration': '38.2',\n    'percentages': [['rye0', '52.9'], ['salt', '1.2'], ['water', '38.2'], ['rye2', '23.5'],\n                    ['spelt1', '23.5']]}],\n  ['generated control 1',\n   [[['whole wheat2', 300, 'flour'], ['water', 350, 'water'], ['whole wheat1', 500, 'flour'],\n     ['salt', 10, 'other'], ['milk', 50, 'milk'], ['whole wheat0', 300, 'flour']]],\n   {'flour_total': '1100',\n    'hydration': '35.8',\n    'percentages': [['whole wheat2', '27.3'], ['water', '31.8'], ['whole wheat1', '45.5'], ['salt', '0.9'],\n                    ['milk', '4.5'], ['whole wheat0', '27.3']]}],\n  ['generated control 2',\n   [[['egg', 50, 'egg'], ['spelt0', 200, 'flour'], ['salt', 9, 'other'], ['water', 325, 'water'],\n     ['whole wheat1', 500, 'flour'], ['levain', 150, 'starter']]],\n   {'flour_total': '775',\n    'hydration': '56.5',\n    'percentages': [['egg', '6.5'], ['spelt0', '25.8'], ['salt', '1.2'], ['water', '41.9'],\n                    ['whole wheat1', '64.5'], ['levain', '19.4']]}],\n  ['generated control 3',\n   [[['levain', 60, 'starter'], ['bread flour1', 333, 'flour'], ['whole wheat0', 100, 'flour'],\n     ['salt', 9, 'other'], ['egg', 50, 'egg']]],\n   {'flour_total': '463',\n    'hydration': '14.6',\n    'percentages': [['levain', '13.0'], ['bread flour1', '71.9'], ['whole wheat0', '21.6'], ['salt', '1.9'],\n                    ['egg', '10.8']]}]],\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: multiple flour basis',\n   [[['egg', 100, 'egg'], ['salt', 11, 'other'], ['rye1', 333, 'flour'], ['levain', 60, 'starter'],\n     ['whole wheat0', 100, 'flour']]],\n   {'flour_total': '463',\n    'hydration': '22.7',\n    'percentages': [['egg', '21.6'], ['salt', '2.4'], ['rye1', '71.9'], ['levain', '13.0'],\n                    ['whole wheat0', '21.6']]}],\n  ['repair check: multiple flour basis',\n   [[['whole wheat1', 200, 'flour'], ['rye0', 200, 'flour'], ['salt', 11, 'other'], ['milk', 100, 'milk']]],\n   {'flour_total': '400',\n    'hydration': '21.8',\n    'percentages': [['whole wheat1', '50.0'], ['rye0', '50.0'], ['salt', '2.8'], ['milk', '25.0']]}],\n  ['generated control 1', [[['salt', 11, 'other'], ['bread flour0', 500, 'flour'], ['water', 350, 'water']]],\n   {'flour_total': '500',\n    'hydration': '70.0',\n    'percentages': [['salt', '2.2'], ['bread flour0', '100.0'], ['water', '70.0']]}],\n  ['generated control 2', [[['spelt0', 300, 'flour'], ['salt', 9, 'other'], ['egg', 50, 'egg']]],\n   {'flour_total': '300',\n    'hydration': '12.5',\n    'percentages': [['spelt0', '100.0'], ['salt', '3.0'], ['egg', '16.7']]}],\n  ['generated control 3',\n   [[['whole wheat1', 300, 'flour'], ['salt', 9, 'other'], ['rye2', 450, 'flour'], ['levain', 100, 'starter'],\n     ['whole wheat0', 333, 'flour']]],\n   {'flour_total': '1133',\n    'hydration': '4.4',\n    'percentages': [['whole wheat1', '26.5'], ['salt', '0.8'], ['rye2', '39.7'], ['levain', '8.8'],\n                    ['whole wheat0', '29.4']]}]]]\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-multiple-flour-basis","generated_at":"2026-09-29T14:52:27.261686+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":"Sum every flour row into the basis.","root_cause":"Only the first flour row forms the 100% basis instead of the sum of all flours.","sha256":"956cab74f01855ab87b517638683442c92f852cc399c328ce51d7427d8145251","title":"Baker's percentage calculator: multiple flour basis · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.432,"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":"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":"450","hydration":"97.1","percentages":[["bread flour1","66.7"],["water","77.8"],["spelt2","100.0"],["bread flour0","100.0"],["milk","22.2"],["salt","2.4"]]},"check":"regression: multiple flour basis","expected":{"flour_total":"1200","hydration":"36.4","percentages":[["bread flour1","25.0"],["water","29.2"],["spelt2","37.5"],["bread flour0","37.5"],["milk","8.3"],["salt","0.9"]]},"passed":false},{"actual":{"flour_total":"575","hydration":"77.1","percentages":[["spelt1","17.4"],["bread flour0","87.0"],["levain","26.1"],["milk","8.7"],["water","56.5"],["salt","1.7"],["bread flour2","57.9"]]},"check":"repair check: multiple flour basis","expected":{"flour_total":"1008","hydration":"44.0","percentages":[["spelt1","9.9"],["bread flour0","49.6"],["levain","14.9"],["milk","5.0"],["water","32.2"],["salt","1.0"],["bread flour2","33.0"]]},"passed":false},{"actual":{"flour_total":"500","hydration":"17.4","percentages":[["milk","20.0"],["bread flour0","100.0"],["salt","2.2"],["bread flour1","20.0"]]},"check":"generated control 1","expected":{"flour_total":"600","hydration":"14.5","percentages":[["milk","16.7"],["bread flour0","83.3"],["salt","1.8"],["bread flour1","16.7"]]},"passed":false},{"actual":{"flour_total":"450","hydration":"27.7","percentages":[["bread flour0","55.6"],["egg","11.1"],["whole wheat2","100.0"],["milk","22.2"],["bread flour1","66.7"],["salt","2.4"]]},"check":"generated control 2","expected":{"flour_total":"1000","hydration":"12.5","percentages":[["bread flour0","25.0"],["egg","5.0"],["whole wheat2","45.0"],["milk","10.0"],["bread flour1","30.0"],["salt","1.1"]]},"passed":false},{"actual":{"flour_total":"250","hydration":"95.0","percentages":[["water","80.0"],["salt","3.6"],["bread flour0","100.0"],["egg","20.0"]]},"check":"generated control 3","expected":{"flour_total":"250","hydration":"95.0","percentages":[["water","80.0"],["salt","3.6"],["bread flour0","100.0"],["egg","20.0"]]},"passed":true}],"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\": \"62.3\"}, \"expected\": {\"flour_total\": \"400\", \"hydration\": \"62.3\", \"percentages\": [[\"flour\", \"100.0\"], [\"milk\", \"50.0\"], [\"egg\", \"25.0\"]]}, \"passed\": true}, {\"check\": \"regression: multiple flour basis\", \"actual\": {\"flour_total\": \"450\", \"percentages\": [[\"bread flour1\", \"66.7\"], [\"water\", \"77.8\"], [\"spelt2\", \"100.0\"], [\"bread flour0\", \"100.0\"], [\"milk\", \"22.2\"], [\"salt\", \"2.4\"]], \"hydration\": \"97.1\"}, \"expected\": {\"flour_total\": \"1200\", \"hydration\": \"36.4\", \"percentages\": [[\"bread flour1\", \"25.0\"], [\"water\", \"29.2\"], [\"spelt2\", \"37.5\"], [\"bread flour0\", \"37.5\"], [\"milk\", \"8.3\"], [\"salt\", \"0.9\"]]}, \"passed\": false}, {\"check\": \"repair check: multiple flour basis\", \"actual\": {\"flour_total\": \"575\", \"percentages\": [[\"spelt1\", \"17.4\"], [\"bread flour0\", \"87.0\"], [\"levain\", \"26.1\"], [\"milk\", \"8.7\"], [\"water\", \"56.5\"], [\"salt\", \"1.7\"], [\"bread flour2\", \"57.9\"]], \"hydration\": \"77.1\"}, \"expected\": {\"flour_total\": \"1008\", \"hydration\": \"44.0\", \"percentages\": [[\"spelt1\", \"9.9\"], [\"bread flour0\", \"49.6\"], [\"levain\", \"14.9\"], [\"milk\", \"5.0\"], [\"water\", \"32.2\"], [\"salt\", \"1.0\"], [\"bread flour2\", \"33.0\"]]}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": {\"flour_total\": \"500\", \"percentages\": [[\"milk\", \"20.0\"], [\"bread flour0\", \"100.0\"], [\"salt\", \"2.2\"], [\"bread flour1\", \"20.0\"]], \"hydration\": \"17.4\"}, \"expected\": {\"flour_total\": \"600\", \"hydration\": \"14.5\", \"percentages\": [[\"milk\", \"16.7\"], [\"bread flour0\", \"83.3\"], [\"salt\", \"1.8\"], [\"bread flour1\", \"16.7\"]]}, \"passed\": false}, {\"check\": \"generated control 2\", \"actual\": {\"flour_total\": \"450\", \"percentages\": [[\"bread flour0\", \"55.6\"], [\"egg\", \"11.1\"], [\"whole wheat2\", \"100.0\"], [\"milk\", \"22.2\"], [\"bread flour1\", \"66.7\"], [\"salt\", \"2.4\"]], \"hydration\": \"27.7\"}, \"expected\": {\"flour_total\": \"1000\", \"hydration\": \"12.5\", \"percentages\": [[\"bread flour0\", \"25.0\"], [\"egg\", \"5.0\"], [\"whole wheat2\", \"45.0\"], [\"milk\", \"10.0\"], [\"bread flour1\", \"30.0\"], [\"salt\", \"1.1\"]]}, \"passed\": false}, {\"check\": \"generated control 3\", \"actual\": {\"flour_total\": \"250\", \"percentages\": [[\"water\", \"80.0\"], [\"salt\", \"3.6\"], [\"bread flour0\", \"100.0\"], [\"egg\", \"20.0\"]], \"hydration\": \"95.0\"}, \"expected\": {\"flour_total\": \"250\", \"hydration\": \"95.0\", \"percentages\": [[\"water\", \"80.0\"], [\"salt\", \"3.6\"], [\"bread flour0\", \"100.0\"], [\"egg\", \"20.0\"]]}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.031,"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":"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":"300","hydration":"145.7","percentages":[["bread flour1","100.0"],["water","116.7"],["spelt2","150.0"],["bread flour0","150.0"],["milk","33.3"],["salt","3.7"]]},"check":"regression: multiple flour basis","expected":{"flour_total":"1200","hydration":"36.4","percentages":[["bread flour1","25.0"],["water","29.2"],["spelt2","37.5"],["bread flour0","37.5"],["milk","8.3"],["salt","0.9"]]},"passed":false},{"actual":{"flour_total":"175","hydration":"253.4","percentages":[["spelt1","57.1"],["bread flour0","285.7"],["levain","85.7"],["milk","28.6"],["water","185.7"],["salt","5.7"],["bread flour2","190.3"]]},"check":"repair check: multiple flour basis","expected":{"flour_total":"1008","hydration":"44.0","percentages":[["spelt1","9.9"],["bread flour0","49.6"],["levain","14.9"],["milk","5.0"],["water","32.2"],["salt","1.0"],["bread flour2","33.0"]]},"passed":false},{"actual":{"flour_total":"500","hydration":"17.4","percentages":[["milk","20.0"],["bread flour0","100.0"],["salt","2.2"],["bread flour1","20.0"]]},"check":"generated control 1","expected":{"flour_total":"600","hydration":"14.5","percentages":[["milk","16.7"],["bread flour0","83.3"],["salt","1.8"],["bread flour1","16.7"]]},"passed":false},{"actual":{"flour_total":"250","hydration":"49.8","percentages":[["bread flour0","100.0"],["egg","20.0"],["whole wheat2","180.0"],["milk","40.0"],["bread flour1","120.0"],["salt","4.4"]]},"check":"generated control 2","expected":{"flour_total":"1000","hydration":"12.5","percentages":[["bread flour0","25.0"],["egg","5.0"],["whole wheat2","45.0"],["milk","10.0"],["bread flour1","30.0"],["salt","1.1"]]},"passed":false},{"actual":{"flour_total":"250","hydration":"95.0","percentages":[["water","80.0"],["salt","3.6"],["bread flour0","100.0"],["egg","20.0"]]},"check":"generated control 3","expected":{"flour_total":"250","hydration":"95.0","percentages":[["water","80.0"],["salt","3.6"],["bread flour0","100.0"],["egg","20.0"]]},"passed":true}],"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\": \"62.3\"}, \"expected\": {\"flour_total\": \"400\", \"hydration\": \"62.3\", \"percentages\": [[\"flour\", \"100.0\"], [\"milk\", \"50.0\"], [\"egg\", \"25.0\"]]}, \"passed\": true}, {\"check\": \"regression: multiple flour basis\", \"actual\": {\"flour_total\": \"300\", \"percentages\": [[\"bread flour1\", \"100.0\"], [\"water\", \"116.7\"], [\"spelt2\", \"150.0\"], [\"bread flour0\", \"150.0\"], [\"milk\", \"33.3\"], [\"salt\", \"3.7\"]], \"hydration\": \"145.7\"}, \"expected\": {\"flour_total\": \"1200\", \"hydration\": \"36.4\", \"percentages\": [[\"bread flour1\", \"25.0\"], [\"water\", \"29.2\"], [\"spelt2\", \"37.5\"], [\"bread flour0\", \"37.5\"], [\"milk\", \"8.3\"], [\"salt\", \"0.9\"]]}, \"passed\": false}, {\"check\": \"repair check: multiple flour basis\", \"actual\": {\"flour_total\": \"175\", \"percentages\": [[\"spelt1\", \"57.1\"], [\"bread flour0\", \"285.7\"], [\"levain\", \"85.7\"], [\"milk\", \"28.6\"], [\"water\", \"185.7\"], [\"salt\", \"5.7\"], [\"bread flour2\", \"190.3\"]], \"hydration\": \"253.4\"}, \"expected\": {\"flour_total\": \"1008\", \"hydration\": \"44.0\", \"percentages\": [[\"spelt1\", \"9.9\"], [\"bread flour0\", \"49.6\"], [\"levain\", \"14.9\"], [\"milk\", \"5.0\"], [\"water\", \"32.2\"], [\"salt\", \"1.0\"], [\"bread flour2\", \"33.0\"]]}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": {\"flour_total\": \"500\", \"percentages\": [[\"milk\", \"20.0\"], [\"bread flour0\", \"100.0\"], [\"salt\", \"2.2\"], [\"bread flour1\", \"20.0\"]], \"hydration\": \"17.4\"}, \"expected\": {\"flour_total\": \"600\", \"hydration\": \"14.5\", \"percentages\": [[\"milk\", \"16.7\"], [\"bread flour0\", \"83.3\"], [\"salt\", \"1.8\"], [\"bread flour1\", \"16.7\"]]}, \"passed\": false}, {\"check\": \"generated control 2\", \"actual\": {\"flour_total\": \"250\", \"percentages\": [[\"bread flour0\", \"100.0\"], [\"egg\", \"20.0\"], [\"whole wheat2\", \"180.0\"], [\"milk\", \"40.0\"], [\"bread flour1\", \"120.0\"], [\"salt\", \"4.4\"]], \"hydration\": \"49.8\"}, \"expected\": {\"flour_total\": \"1000\", \"hydration\": \"12.5\", \"percentages\": [[\"bread flour0\", \"25.0\"], [\"egg\", \"5.0\"], [\"whole wheat2\", \"45.0\"], [\"milk\", \"10.0\"], [\"bread flour1\", \"30.0\"], [\"salt\", \"1.1\"]]}, \"passed\": false}, {\"check\": \"generated control 3\", \"actual\": {\"flour_total\": \"250\", \"percentages\": [[\"water\", \"80.0\"], [\"salt\", \"3.6\"], [\"bread flour0\", \"100.0\"], [\"egg\", \"20.0\"]], \"hydration\": \"95.0\"}, \"expected\": {\"flour_total\": \"250\", \"hydration\": \"95.0\", \"percentages\": [[\"water\", \"80.0\"], [\"salt\", \"3.6\"], [\"bread flour0\", \"100.0\"], [\"egg\", \"20.0\"]]}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.414,"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":"1200","hydration":"36.4","percentages":[["bread flour1","25.0"],["water","29.2"],["spelt2","37.5"],["bread flour0","37.5"],["milk","8.3"],["salt","0.9"]]},"check":"regression: multiple flour basis","expected":{"flour_total":"1200","hydration":"36.4","percentages":[["bread flour1","25.0"],["water","29.2"],["spelt2","37.5"],["bread flour0","37.5"],["milk","8.3"],["salt","0.9"]]},"passed":true},{"actual":{"flour_total":"1008","hydration":"44.0","percentages":[["spelt1","9.9"],["bread flour0","49.6"],["levain","14.9"],["milk","5.0"],["water","32.2"],["salt","1.0"],["bread flour2","33.0"]]},"check":"repair check: multiple flour basis","expected":{"flour_total":"1008","hydration":"44.0","percentages":[["spelt1","9.9"],["bread flour0","49.6"],["levain","14.9"],["milk","5.0"],["water","32.2"],["salt","1.0"],["bread flour2","33.0"]]},"passed":true},{"actual":{"flour_total":"600","hydration":"14.5","percentages":[["milk","16.7"],["bread flour0","83.3"],["salt","1.8"],["bread flour1","16.7"]]},"check":"generated control 1","expected":{"flour_total":"600","hydration":"14.5","percentages":[["milk","16.7"],["bread flour0","83.3"],["salt","1.8"],["bread flour1","16.7"]]},"passed":true},{"actual":{"flour_total":"1000","hydration":"12.5","percentages":[["bread flour0","25.0"],["egg","5.0"],["whole wheat2","45.0"],["milk","10.0"],["bread flour1","30.0"],["salt","1.1"]]},"check":"generated control 2","expected":{"flour_total":"1000","hydration":"12.5","percentages":[["bread flour0","25.0"],["egg","5.0"],["whole wheat2","45.0"],["milk","10.0"],["bread flour1","30.0"],["salt","1.1"]]},"passed":true},{"actual":{"flour_total":"250","hydration":"95.0","percentages":[["water","80.0"],["salt","3.6"],["bread flour0","100.0"],["egg","20.0"]]},"check":"generated control 3","expected":{"flour_total":"250","hydration":"95.0","percentages":[["water","80.0"],["salt","3.6"],["bread flour0","100.0"],["egg","20.0"]]},"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: multiple flour basis\", \"actual\": {\"flour_total\": \"1200\", \"percentages\": [[\"bread flour1\", \"25.0\"], [\"water\", \"29.2\"], [\"spelt2\", \"37.5\"], [\"bread flour0\", \"37.5\"], [\"milk\", \"8.3\"], [\"salt\", \"0.9\"]], \"hydration\": \"36.4\"}, \"expected\": {\"flour_total\": \"1200\", \"hydration\": \"36.4\", \"percentages\": [[\"bread flour1\", \"25.0\"], [\"water\", \"29.2\"], [\"spelt2\", \"37.5\"], [\"bread flour0\", \"37.5\"], [\"milk\", \"8.3\"], [\"salt\", \"0.9\"]]}, \"passed\": true}, {\"check\": \"repair check: multiple flour basis\", \"actual\": {\"flour_total\": \"1008\", \"percentages\": [[\"spelt1\", \"9.9\"], [\"bread flour0\", \"49.6\"], [\"levain\", \"14.9\"], [\"milk\", \"5.0\"], [\"water\", \"32.2\"], [\"salt\", \"1.0\"], [\"bread flour2\", \"33.0\"]], \"hydration\": \"44.0\"}, \"expected\": {\"flour_total\": \"1008\", \"hydration\": \"44.0\", \"percentages\": [[\"spelt1\", \"9.9\"], [\"bread flour0\", \"49.6\"], [\"levain\", \"14.9\"], [\"milk\", \"5.0\"], [\"water\", \"32.2\"], [\"salt\", \"1.0\"], [\"bread flour2\", \"33.0\"]]}, \"passed\": true}, {\"check\": \"generated control 1\", \"actual\": {\"flour_total\": \"600\", \"percentages\": [[\"milk\", \"16.7\"], [\"bread flour0\", \"83.3\"], [\"salt\", \"1.8\"], [\"bread flour1\", \"16.7\"]], \"hydration\": \"14.5\"}, \"expected\": {\"flour_total\": \"600\", \"hydration\": \"14.5\", \"percentages\": [[\"milk\", \"16.7\"], [\"bread flour0\", \"83.3\"], [\"salt\", \"1.8\"], [\"bread flour1\", \"16.7\"]]}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"flour_total\": \"1000\", \"percentages\": [[\"bread flour0\", \"25.0\"], [\"egg\", \"5.0\"], [\"whole wheat2\", \"45.0\"], [\"milk\", \"10.0\"], [\"bread flour1\", \"30.0\"], [\"salt\", \"1.1\"]], \"hydration\": \"12.5\"}, \"expected\": {\"flour_total\": \"1000\", \"hydration\": \"12.5\", \"percentages\": [[\"bread flour0\", \"25.0\"], [\"egg\", \"5.0\"], [\"whole wheat2\", \"45.0\"], [\"milk\", \"10.0\"], [\"bread flour1\", \"30.0\"], [\"salt\", \"1.1\"]]}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"flour_total\": \"250\", \"percentages\": [[\"water\", \"80.0\"], [\"salt\", \"3.6\"], [\"bread flour0\", \"100.0\"], [\"egg\", \"20.0\"]], \"hydration\": \"95.0\"}, \"expected\": {\"flour_total\": \"250\", \"hydration\": \"95.0\", \"percentages\": [[\"water\", \"80.0\"], [\"salt\", \"3.6\"], [\"bread flour0\", \"100.0\"], [\"egg\", \"20.0\"]]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}