{"abstract":"A \"may contain sesame\" note on a sub-recipe never reaches the menu item.","category":"Recipe scaling and nutrition","checks":8,"contract":"recipes maps name -> {allergens, may_contain, uses}. Walk root and every used sub-recipe (depth first, in order). Names canonicalize: trim, lower, synonyms dairy->milk, peanuts->peanut, tree nuts->tree nut, eggs->egg. Result {contains, may_contain (minus contains), error: None}, both sorted. A shared sub-recipe reached twice (diamond) is fine; a cycle returns error \"cycle: name\" and an unknown name \"unknown: name\", with empty lists, stopping at the first error.","evaluation_group":"w2-recipe_scaling_and_nutrition-allergen-rollup","failed_approach":"Adding only leaf recipes still drops intermediate sub-recipes.","family":"w2-recipe_scaling_and_nutrition-allergen-rollup-nested-precautionary-labels","id":"FA-97261","implementations":{"attempt":{"sha256":"9d4d720e11150d1bee3bbe0cbb686f26513e17fa0169f22b03dc671fc7b45a20","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(recipes, root):\n    SYN = {'dairy': 'milk', 'peanuts': 'peanut', 'tree nuts': 'tree nut', 'eggs': 'egg'}\n    def canon(a):\n        a = a.strip().lower()\n        return SYN.get(a, a)\n    contains, may = set(), set()\n    state = {}\n    def visit(n):\n        if n not in recipes:\n            return 'unknown: ' + n\n        if state.get(n) == 1:\n            return 'cycle: ' + n\n        if state.get(n) == 2:\n            return None\n        state[n] = 1\n        r = recipes[n]\n        contains.update(canon(a) for a in r.get('allergens', []))\n        if n == root or not r.get('uses'):\n            may.update(canon(a) for a in r.get('may_contain', []))\n        for s in r.get('uses', []):\n            e = visit(s)\n            if e:\n                return e\n        state[n] = 2\n        return None\n    err = visit(root)\n    if err:\n        return {'contains': [], 'may_contain': [], 'error': err}\n    return {'contains': sorted(contains), 'may_contain': sorted(may - contains), 'error': None}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['flat recipe', [{'base': {'allergens': ['milk'], 'may_contain': ['soy'], 'uses': []}}, 'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['soy']}],\n  ['diamond sharing',\n   [{'a': {'allergens': ['wheat'], 'uses': ['c']},\n     'b': {'allergens': [], 'uses': ['c']},\n     'base': {'allergens': [], 'uses': ['a', 'b']},\n     'c': {'allergens': ['Dairy'], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'wheat'], 'error': None, 'may_contain': []}],\n  ['cycle', [{'a': {'uses': ['base']}, 'base': {'uses': ['a']}}, 'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': ['soy'], 'may_contain': [' sesame ', 'soy'], 'uses': ['sauce', 'crust']},\n     'crust': {'allergens': ['soy', ' sesame '], 'may_contain': [], 'uses': ['sauce']},\n     'filling': {'allergens': ['tree nuts'], 'may_contain': ['soy'], 'uses': ['topping']},\n     'sauce': {'allergens': ['peanuts'], 'may_contain': ['Egg', 'wheat'], 'uses': []},\n     'topping': {'allergens': [], 'may_contain': ['soy'], 'uses': []}},\n    'base'],\n   {'contains': ['peanut', 'sesame', 'soy'], 'error': None, 'may_contain': ['egg', 'wheat']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': ['wheat'], 'may_contain': [], 'uses': ['sauce', 'filling']},\n     'crust': {'allergens': ['eggs'], 'may_contain': ['eggs'], 'uses': []},\n     'filling': {'allergens': ['tree nuts', 'soy'], 'may_contain': ['soy', 'tree nuts'], 'uses': []},\n     'sauce': {'allergens': ['soy'], 'may_contain': ['peanuts', 'tree nuts'], 'uses': ['crust']},\n     'topping': {'allergens': [], 'may_contain': ['wheat', 'Egg'], 'uses': []}},\n    'base'],\n   {'contains': ['egg', 'soy', 'tree nut', 'wheat'], 'error': None, 'may_contain': ['peanut']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['eggs'], 'may_contain': [], 'uses': ['topping']},\n     'crust': {'allergens': ['eggs'], 'may_contain': ['dairy', 'Egg'], 'uses': ['filling', 'topping']},\n     'filling': {'allergens': ['wheat', 'soy'], 'may_contain': [], 'uses': ['topping']},\n     'sauce': {'allergens': ['tree nuts', ' sesame '],\n               'may_contain': ['wheat', 'soy'],\n               'uses': ['topping', 'base']},\n     'topping': {'allergens': [], 'may_contain': ['peanuts'], 'uses': ['mystery']}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}],\n  ['generated control 2',\n   [{'base': {'allergens': ['milk', 'dairy'], 'may_contain': ['dairy', 'tree nuts'], 'uses': ['topping']},\n     'crust': {'allergens': [' sesame ', 'Egg'], 'may_contain': ['peanuts', 'tree nuts'], 'uses': []},\n     'filling': {'allergens': [' sesame ', 'peanuts'], 'may_contain': [], 'uses': []},\n     'sauce': {'allergens': ['tree nuts'], 'may_contain': ['Egg', 'eggs'], 'uses': ['filling']},\n     'topping': {'allergens': [], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['tree nut']}],\n  ['generated control 3',\n   [{'base': {'allergens': ['milk'], 'may_contain': [], 'uses': ['crust', 'topping']},\n     'crust': {'allergens': ['soy'], 'may_contain': ['peanuts'], 'uses': ['topping', 'base']},\n     'filling': {'allergens': ['wheat'], 'may_contain': ['tree nuts'], 'uses': ['topping']},\n     'sauce': {'allergens': [' sesame '], 'may_contain': [], 'uses': ['topping']},\n     'topping': {'allergens': [' sesame ', 'milk'], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}]],\n [['diamond sharing',\n   [{'a': {'allergens': ['wheat'], 'uses': ['c']},\n     'b': {'allergens': [], 'uses': ['c']},\n     'base': {'allergens': [], 'uses': ['a', 'b']},\n     'c': {'allergens': ['Dairy'], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'wheat'], 'error': None, 'may_contain': []}],\n  ['cycle', [{'a': {'uses': ['base']}, 'base': {'uses': ['a']}}, 'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['unknown sub', [{'base': {'uses': ['ghost']}}, 'base'],\n   {'contains': [], 'error': 'unknown: ghost', 'may_contain': []}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': ['dairy'], 'may_contain': ['soy'], 'uses': ['crust', 'topping']},\n     'crust': {'allergens': [], 'may_contain': [' sesame ', 'Egg'], 'uses': ['filling', 'sauce']},\n     'filling': {'allergens': [], 'may_contain': ['milk', 'eggs'], 'uses': []},\n     'sauce': {'allergens': ['Egg'], 'may_contain': [], 'uses': ['filling']},\n     'topping': {'allergens': [], 'may_contain': ['peanuts', 'milk'], 'uses': []}},\n    'base'],\n   {'contains': ['egg', 'milk'], 'error': None, 'may_contain': ['peanut', 'sesame', 'soy']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': ['dairy'],\n              'may_contain': ['milk', 'eggs'],\n              'uses': ['sauce', 'filling', 'topping']},\n     'crust': {'allergens': ['eggs'], 'may_contain': ['tree nuts'], 'uses': ['topping']},\n     'filling': {'allergens': [], 'may_contain': ['soy'], 'uses': ['topping']},\n     'sauce': {'allergens': [' sesame '], 'may_contain': ['Egg'], 'uses': ['crust']},\n     'topping': {'allergens': [], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': ['egg', 'milk', 'sesame'], 'error': None, 'may_contain': ['soy', 'tree nut']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['wheat', 'peanuts'], 'may_contain': [], 'uses': ['sauce', 'crust']},\n     'crust': {'allergens': [], 'may_contain': ['wheat'], 'uses': ['topping']},\n     'filling': {'allergens': [], 'may_contain': ['wheat', 'milk'], 'uses': []},\n     'sauce': {'allergens': ['dairy'], 'may_contain': ['dairy'], 'uses': ['crust', 'topping']},\n     'topping': {'allergens': [], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'peanut', 'wheat'], 'error': None, 'may_contain': []}],\n  ['generated control 2',\n   [{'base': {'allergens': [], 'may_contain': [], 'uses': ['sauce', 'topping', 'mystery']},\n     'crust': {'allergens': [], 'may_contain': ['wheat'], 'uses': ['filling', 'topping']},\n     'filling': {'allergens': ['tree nuts', 'Egg'], 'may_contain': ['Egg', 'milk'], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': [], 'uses': ['crust', 'filling']},\n     'topping': {'allergens': ['wheat', 'eggs'], 'may_contain': [' sesame '], 'uses': ['sauce']}},\n    'base'],\n   {'contains': [], 'error': 'cycle: sauce', 'may_contain': []}],\n  ['generated control 3',\n   [{'base': {'allergens': ['eggs', 'tree nuts'],\n              'may_contain': [],\n              'uses': ['sauce', 'crust', 'filling', 'topping']},\n     'crust': {'allergens': ['dairy'], 'may_contain': ['tree nuts', 'eggs'], 'uses': ['topping', 'base']},\n     'filling': {'allergens': ['eggs', 'peanuts'], 'may_contain': ['soy', 'eggs'], 'uses': ['topping']},\n     'sauce': {'allergens': [], 'may_contain': ['tree nuts', 'wheat'], 'uses': ['crust', 'filling']},\n     'topping': {'allergens': ['wheat'], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}]],\n [['cycle', [{'a': {'uses': ['base']}, 'base': {'uses': ['a']}}, 'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['unknown sub', [{'base': {'uses': ['ghost']}}, 'base'],\n   {'contains': [], 'error': 'unknown: ghost', 'may_contain': []}],\n  ['flat recipe', [{'base': {'allergens': ['milk'], 'may_contain': ['soy'], 'uses': []}}, 'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['soy']}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': [' sesame '], 'may_contain': ['wheat'], 'uses': ['filling']},\n     'crust': {'allergens': ['wheat', 'milk'], 'may_contain': ['eggs', 'tree nuts'], 'uses': ['filling']},\n     'filling': {'allergens': ['peanuts'], 'may_contain': ['soy', 'peanuts'], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': ['eggs'], 'uses': ['filling']},\n     'topping': {'allergens': ['soy'], 'may_contain': ['dairy', 'peanuts'], 'uses': []}},\n    'base'],\n   {'contains': ['peanut', 'sesame'], 'error': None, 'may_contain': ['soy', 'wheat']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': [], 'may_contain': ['soy'], 'uses': ['sauce', 'crust']},\n     'crust': {'allergens': [], 'may_contain': ['eggs', 'milk'], 'uses': ['filling', 'topping']},\n     'filling': {'allergens': [], 'may_contain': [' sesame '], 'uses': []},\n     'sauce': {'allergens': ['tree nuts'], 'may_contain': ['Egg', 'tree nuts'], 'uses': ['topping']},\n     'topping': {'allergens': ['dairy', 'milk'], 'may_contain': ['soy'], 'uses': ['filling']}},\n    'base'],\n   {'contains': ['milk', 'tree nut'], 'error': None, 'may_contain': ['egg', 'sesame', 'soy']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['wheat'],\n              'may_contain': ['peanuts', 'Egg'],\n              'uses': ['crust', 'filling', 'topping']},\n     'crust': {'allergens': ['eggs'], 'may_contain': ['soy', 'wheat'], 'uses': ['topping', 'base']},\n     'filling': {'allergens': ['Egg'], 'may_contain': ['Egg', ' sesame '], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': [' sesame ', 'tree nuts'], 'uses': ['crust', 'topping']},\n     'topping': {'allergens': ['Egg', 'eggs'], 'may_contain': ['dairy'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['generated control 2',\n   [{'base': {'allergens': [], 'may_contain': ['wheat'], 'uses': ['sauce', 'topping']},\n     'crust': {'allergens': ['milk', 'dairy'], 'may_contain': [' sesame '], 'uses': ['topping']},\n     'filling': {'allergens': [], 'may_contain': ['peanuts', 'eggs'], 'uses': []},\n     'sauce': {'allergens': ['milk', 'peanuts'],\n               'may_contain': ['eggs', 'dairy'],\n               'uses': ['filling', 'topping']},\n     'topping': {'allergens': [' sesame ', 'milk'], 'may_contain': [], 'uses': ['mystery']}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}],\n  ['generated control 3',\n   [{'base': {'allergens': ['Egg'], 'may_contain': ['tree nuts'], 'uses': ['crust', 'topping']},\n     'crust': {'allergens': [], 'may_contain': [], 'uses': ['mystery']},\n     'filling': {'allergens': [], 'may_contain': [], 'uses': ['topping']},\n     'sauce': {'allergens': ['Egg'], 'may_contain': ['Egg', ' sesame '], 'uses': ['base']},\n     'topping': {'allergens': ['eggs', 'milk'], 'may_contain': [], 'uses': ['mystery']}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}]],\n [['unknown sub', [{'base': {'uses': ['ghost']}}, 'base'],\n   {'contains': [], 'error': 'unknown: ghost', 'may_contain': []}],\n  ['flat recipe', [{'base': {'allergens': ['milk'], 'may_contain': ['soy'], 'uses': []}}, 'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['soy']}],\n  ['diamond sharing',\n   [{'a': {'allergens': ['wheat'], 'uses': ['c']},\n     'b': {'allergens': [], 'uses': ['c']},\n     'base': {'allergens': [], 'uses': ['a', 'b']},\n     'c': {'allergens': ['Dairy'], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'wheat'], 'error': None, 'may_contain': []}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': ['peanuts'], 'may_contain': ['peanuts', ' sesame '], 'uses': ['filling']},\n     'crust': {'allergens': [], 'may_contain': [], 'uses': ['topping']},\n     'filling': {'allergens': [], 'may_contain': ['dairy', 'milk'], 'uses': ['topping']},\n     'sauce': {'allergens': ['Egg', 'soy'], 'may_contain': [], 'uses': []},\n     'topping': {'allergens': [], 'may_contain': ['eggs'], 'uses': []}},\n    'base'],\n   {'contains': ['peanut'], 'error': None, 'may_contain': ['egg', 'milk', 'sesame']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': ['wheat', 'milk'], 'may_contain': [' sesame '], 'uses': ['crust', 'topping']},\n     'crust': {'allergens': [' sesame '], 'may_contain': ['eggs', 'Egg'], 'uses': ['filling']},\n     'filling': {'allergens': [' sesame ', 'wheat'], 'may_contain': [], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': [], 'uses': ['filling']},\n     'topping': {'allergens': ['dairy'], 'may_contain': [], 'uses': ['sauce']}},\n    'base'],\n   {'contains': ['milk', 'sesame', 'wheat'], 'error': None, 'may_contain': ['egg']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['tree nuts'], 'may_contain': ['tree nuts'], 'uses': []},\n     'crust': {'allergens': [], 'may_contain': ['dairy', 'peanuts'], 'uses': ['filling', 'topping']},\n     'filling': {'allergens': ['milk'], 'may_contain': [], 'uses': []},\n     'sauce': {'allergens': ['peanuts', 'soy'], 'may_contain': [], 'uses': ['filling', 'base']},\n     'topping': {'allergens': [], 'may_contain': [' sesame '], 'uses': []}},\n    'base'],\n   {'contains': ['tree nut'], 'error': None, 'may_contain': []}],\n  ['generated control 2',\n   [{'base': {'allergens': [], 'may_contain': [], 'uses': ['sauce', 'crust', 'topping']},\n     'crust': {'allergens': ['tree nuts'],\n               'may_contain': ['eggs', 'tree nuts'],\n               'uses': ['filling', 'topping']},\n     'filling': {'allergens': [], 'may_contain': [], 'uses': ['mystery']},\n     'sauce': {'allergens': ['eggs'], 'may_contain': ['tree nuts', 'wheat'], 'uses': ['crust', 'base']},\n     'topping': {'allergens': ['tree nuts', 'wheat'], 'may_contain': ['dairy'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}],\n  ['generated control 3',\n   [{'base': {'allergens': [' sesame ', 'wheat'], 'may_contain': [], 'uses': ['sauce', 'filling']},\n     'crust': {'allergens': ['wheat'], 'may_contain': [], 'uses': []},\n     'filling': {'allergens': ['soy'], 'may_contain': [], 'uses': ['mystery']},\n     'sauce': {'allergens': ['eggs'],\n               'may_contain': ['tree nuts', 'dairy'],\n               'uses': ['crust', 'filling', 'topping']},\n     'topping': {'allergens': [], 'may_contain': ['eggs'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}]],\n [['flat recipe', [{'base': {'allergens': ['milk'], 'may_contain': ['soy'], 'uses': []}}, 'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['soy']}],\n  ['diamond sharing',\n   [{'a': {'allergens': ['wheat'], 'uses': ['c']},\n     'b': {'allergens': [], 'uses': ['c']},\n     'base': {'allergens': [], 'uses': ['a', 'b']},\n     'c': {'allergens': ['Dairy'], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'wheat'], 'error': None, 'may_contain': []}],\n  ['cycle', [{'a': {'uses': ['base']}, 'base': {'uses': ['a']}}, 'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': [], 'may_contain': ['milk', 'peanuts'], 'uses': ['sauce']},\n     'crust': {'allergens': ['milk'], 'may_contain': ['peanuts', 'wheat'], 'uses': ['filling']},\n     'filling': {'allergens': ['dairy'], 'may_contain': ['dairy'], 'uses': []},\n     'sauce': {'allergens': ['eggs', 'Egg'],\n               'may_contain': ['eggs', 'soy'],\n               'uses': ['crust', 'filling', 'topping']},\n     'topping': {'allergens': [' sesame ', 'soy'], 'may_contain': ['soy', ' sesame '], 'uses': []}},\n    'base'],\n   {'contains': ['egg', 'milk', 'sesame', 'soy'], 'error': None, 'may_contain': ['peanut', 'wheat']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': ['dairy'], 'may_contain': [], 'uses': ['sauce', 'filling']},\n     'crust': {'allergens': ['soy', 'milk'], 'may_contain': [], 'uses': []},\n     'filling': {'allergens': ['wheat'], 'may_contain': ['wheat'], 'uses': []},\n     'sauce': {'allergens': ['soy'], 'may_contain': ['Egg'], 'uses': ['crust', 'filling']},\n     'topping': {'allergens': ['milk'], 'may_contain': ['tree nuts', 'dairy'], 'uses': ['mystery']}},\n    'base'],\n   {'contains': ['milk', 'soy', 'wheat'], 'error': None, 'may_contain': ['egg']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['peanuts'],\n              'may_contain': ['dairy', 'eggs'],\n              'uses': ['sauce', 'crust', 'filling']},\n     'crust': {'allergens': [' sesame ', 'wheat'], 'may_contain': [], 'uses': []},\n     'filling': {'allergens': ['dairy'], 'may_contain': ['dairy'], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': ['milk'], 'uses': []},\n     'topping': {'allergens': ['tree nuts'], 'may_contain': ['tree nuts', 'soy'], 'uses': ['filling']}},\n    'base'],\n   {'contains': ['milk', 'peanut', 'sesame', 'wheat'], 'error': None, 'may_contain': ['egg']}],\n  ['generated control 2',\n   [{'base': {'allergens': ['peanuts'], 'may_contain': ['eggs', 'dairy'], 'uses': ['sauce']},\n     'crust': {'allergens': ['peanuts'], 'may_contain': [], 'uses': ['filling', 'sauce']},\n     'filling': {'allergens': [], 'may_contain': [], 'uses': ['topping', 'mystery']},\n     'sauce': {'allergens': ['Egg', 'dairy'], 'may_contain': [], 'uses': ['topping', 'base']},\n     'topping': {'allergens': ['tree nuts', 'soy'], 'may_contain': [' sesame ', 'milk'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['generated control 3',\n   [{'base': {'allergens': [], 'may_contain': ['eggs', ' sesame '], 'uses': []},\n     'crust': {'allergens': ['eggs', 'milk'], 'may_contain': ['eggs'], 'uses': []},\n     'filling': {'allergens': ['milk'], 'may_contain': [], 'uses': []},\n     'sauce': {'allergens': ['tree nuts', 'Egg'], 'may_contain': [], 'uses': ['filling']},\n     'topping': {'allergens': [], 'may_contain': ['soy'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': None, 'may_contain': ['egg', 'sesame']}]]]\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":"03934bcc751f3ab179844a2e4b32301b280b97d766ecc9427f00731b7171f78a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(recipes, root):\n    SYN = {'dairy': 'milk', 'peanuts': 'peanut', 'tree nuts': 'tree nut', 'eggs': 'egg'}\n    def canon(a):\n        a = a.strip().lower()\n        return SYN.get(a, a)\n    contains, may = set(), set()\n    state = {}\n    def visit(n):\n        if n not in recipes:\n            return 'unknown: ' + n\n        if state.get(n) == 1:\n            return 'cycle: ' + n\n        if state.get(n) == 2:\n            return None\n        state[n] = 1\n        r = recipes[n]\n        contains.update(canon(a) for a in r.get('allergens', []))\n        if n == root:\n            may.update(canon(a) for a in r.get('may_contain', []))\n        for s in r.get('uses', []):\n            e = visit(s)\n            if e:\n                return e\n        state[n] = 2\n        return None\n    err = visit(root)\n    if err:\n        return {'contains': [], 'may_contain': [], 'error': err}\n    return {'contains': sorted(contains), 'may_contain': sorted(may - contains), 'error': None}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['flat recipe', [{'base': {'allergens': ['milk'], 'may_contain': ['soy'], 'uses': []}}, 'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['soy']}],\n  ['diamond sharing',\n   [{'a': {'allergens': ['wheat'], 'uses': ['c']},\n     'b': {'allergens': [], 'uses': ['c']},\n     'base': {'allergens': [], 'uses': ['a', 'b']},\n     'c': {'allergens': ['Dairy'], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'wheat'], 'error': None, 'may_contain': []}],\n  ['cycle', [{'a': {'uses': ['base']}, 'base': {'uses': ['a']}}, 'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': ['soy'], 'may_contain': [' sesame ', 'soy'], 'uses': ['sauce', 'crust']},\n     'crust': {'allergens': ['soy', ' sesame '], 'may_contain': [], 'uses': ['sauce']},\n     'filling': {'allergens': ['tree nuts'], 'may_contain': ['soy'], 'uses': ['topping']},\n     'sauce': {'allergens': ['peanuts'], 'may_contain': ['Egg', 'wheat'], 'uses': []},\n     'topping': {'allergens': [], 'may_contain': ['soy'], 'uses': []}},\n    'base'],\n   {'contains': ['peanut', 'sesame', 'soy'], 'error': None, 'may_contain': ['egg', 'wheat']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': ['wheat'], 'may_contain': [], 'uses': ['sauce', 'filling']},\n     'crust': {'allergens': ['eggs'], 'may_contain': ['eggs'], 'uses': []},\n     'filling': {'allergens': ['tree nuts', 'soy'], 'may_contain': ['soy', 'tree nuts'], 'uses': []},\n     'sauce': {'allergens': ['soy'], 'may_contain': ['peanuts', 'tree nuts'], 'uses': ['crust']},\n     'topping': {'allergens': [], 'may_contain': ['wheat', 'Egg'], 'uses': []}},\n    'base'],\n   {'contains': ['egg', 'soy', 'tree nut', 'wheat'], 'error': None, 'may_contain': ['peanut']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['eggs'], 'may_contain': [], 'uses': ['topping']},\n     'crust': {'allergens': ['eggs'], 'may_contain': ['dairy', 'Egg'], 'uses': ['filling', 'topping']},\n     'filling': {'allergens': ['wheat', 'soy'], 'may_contain': [], 'uses': ['topping']},\n     'sauce': {'allergens': ['tree nuts', ' sesame '],\n               'may_contain': ['wheat', 'soy'],\n               'uses': ['topping', 'base']},\n     'topping': {'allergens': [], 'may_contain': ['peanuts'], 'uses': ['mystery']}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}],\n  ['generated control 2',\n   [{'base': {'allergens': ['milk', 'dairy'], 'may_contain': ['dairy', 'tree nuts'], 'uses': ['topping']},\n     'crust': {'allergens': [' sesame ', 'Egg'], 'may_contain': ['peanuts', 'tree nuts'], 'uses': []},\n     'filling': {'allergens': [' sesame ', 'peanuts'], 'may_contain': [], 'uses': []},\n     'sauce': {'allergens': ['tree nuts'], 'may_contain': ['Egg', 'eggs'], 'uses': ['filling']},\n     'topping': {'allergens': [], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['tree nut']}],\n  ['generated control 3',\n   [{'base': {'allergens': ['milk'], 'may_contain': [], 'uses': ['crust', 'topping']},\n     'crust': {'allergens': ['soy'], 'may_contain': ['peanuts'], 'uses': ['topping', 'base']},\n     'filling': {'allergens': ['wheat'], 'may_contain': ['tree nuts'], 'uses': ['topping']},\n     'sauce': {'allergens': [' sesame '], 'may_contain': [], 'uses': ['topping']},\n     'topping': {'allergens': [' sesame ', 'milk'], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}]],\n [['diamond sharing',\n   [{'a': {'allergens': ['wheat'], 'uses': ['c']},\n     'b': {'allergens': [], 'uses': ['c']},\n     'base': {'allergens': [], 'uses': ['a', 'b']},\n     'c': {'allergens': ['Dairy'], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'wheat'], 'error': None, 'may_contain': []}],\n  ['cycle', [{'a': {'uses': ['base']}, 'base': {'uses': ['a']}}, 'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['unknown sub', [{'base': {'uses': ['ghost']}}, 'base'],\n   {'contains': [], 'error': 'unknown: ghost', 'may_contain': []}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': ['dairy'], 'may_contain': ['soy'], 'uses': ['crust', 'topping']},\n     'crust': {'allergens': [], 'may_contain': [' sesame ', 'Egg'], 'uses': ['filling', 'sauce']},\n     'filling': {'allergens': [], 'may_contain': ['milk', 'eggs'], 'uses': []},\n     'sauce': {'allergens': ['Egg'], 'may_contain': [], 'uses': ['filling']},\n     'topping': {'allergens': [], 'may_contain': ['peanuts', 'milk'], 'uses': []}},\n    'base'],\n   {'contains': ['egg', 'milk'], 'error': None, 'may_contain': ['peanut', 'sesame', 'soy']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': ['dairy'],\n              'may_contain': ['milk', 'eggs'],\n              'uses': ['sauce', 'filling', 'topping']},\n     'crust': {'allergens': ['eggs'], 'may_contain': ['tree nuts'], 'uses': ['topping']},\n     'filling': {'allergens': [], 'may_contain': ['soy'], 'uses': ['topping']},\n     'sauce': {'allergens': [' sesame '], 'may_contain': ['Egg'], 'uses': ['crust']},\n     'topping': {'allergens': [], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': ['egg', 'milk', 'sesame'], 'error': None, 'may_contain': ['soy', 'tree nut']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['wheat', 'peanuts'], 'may_contain': [], 'uses': ['sauce', 'crust']},\n     'crust': {'allergens': [], 'may_contain': ['wheat'], 'uses': ['topping']},\n     'filling': {'allergens': [], 'may_contain': ['wheat', 'milk'], 'uses': []},\n     'sauce': {'allergens': ['dairy'], 'may_contain': ['dairy'], 'uses': ['crust', 'topping']},\n     'topping': {'allergens': [], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'peanut', 'wheat'], 'error': None, 'may_contain': []}],\n  ['generated control 2',\n   [{'base': {'allergens': [], 'may_contain': [], 'uses': ['sauce', 'topping', 'mystery']},\n     'crust': {'allergens': [], 'may_contain': ['wheat'], 'uses': ['filling', 'topping']},\n     'filling': {'allergens': ['tree nuts', 'Egg'], 'may_contain': ['Egg', 'milk'], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': [], 'uses': ['crust', 'filling']},\n     'topping': {'allergens': ['wheat', 'eggs'], 'may_contain': [' sesame '], 'uses': ['sauce']}},\n    'base'],\n   {'contains': [], 'error': 'cycle: sauce', 'may_contain': []}],\n  ['generated control 3',\n   [{'base': {'allergens': ['eggs', 'tree nuts'],\n              'may_contain': [],\n              'uses': ['sauce', 'crust', 'filling', 'topping']},\n     'crust': {'allergens': ['dairy'], 'may_contain': ['tree nuts', 'eggs'], 'uses': ['topping', 'base']},\n     'filling': {'allergens': ['eggs', 'peanuts'], 'may_contain': ['soy', 'eggs'], 'uses': ['topping']},\n     'sauce': {'allergens': [], 'may_contain': ['tree nuts', 'wheat'], 'uses': ['crust', 'filling']},\n     'topping': {'allergens': ['wheat'], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}]],\n [['cycle', [{'a': {'uses': ['base']}, 'base': {'uses': ['a']}}, 'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['unknown sub', [{'base': {'uses': ['ghost']}}, 'base'],\n   {'contains': [], 'error': 'unknown: ghost', 'may_contain': []}],\n  ['flat recipe', [{'base': {'allergens': ['milk'], 'may_contain': ['soy'], 'uses': []}}, 'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['soy']}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': [' sesame '], 'may_contain': ['wheat'], 'uses': ['filling']},\n     'crust': {'allergens': ['wheat', 'milk'], 'may_contain': ['eggs', 'tree nuts'], 'uses': ['filling']},\n     'filling': {'allergens': ['peanuts'], 'may_contain': ['soy', 'peanuts'], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': ['eggs'], 'uses': ['filling']},\n     'topping': {'allergens': ['soy'], 'may_contain': ['dairy', 'peanuts'], 'uses': []}},\n    'base'],\n   {'contains': ['peanut', 'sesame'], 'error': None, 'may_contain': ['soy', 'wheat']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': [], 'may_contain': ['soy'], 'uses': ['sauce', 'crust']},\n     'crust': {'allergens': [], 'may_contain': ['eggs', 'milk'], 'uses': ['filling', 'topping']},\n     'filling': {'allergens': [], 'may_contain': [' sesame '], 'uses': []},\n     'sauce': {'allergens': ['tree nuts'], 'may_contain': ['Egg', 'tree nuts'], 'uses': ['topping']},\n     'topping': {'allergens': ['dairy', 'milk'], 'may_contain': ['soy'], 'uses': ['filling']}},\n    'base'],\n   {'contains': ['milk', 'tree nut'], 'error': None, 'may_contain': ['egg', 'sesame', 'soy']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['wheat'],\n              'may_contain': ['peanuts', 'Egg'],\n              'uses': ['crust', 'filling', 'topping']},\n     'crust': {'allergens': ['eggs'], 'may_contain': ['soy', 'wheat'], 'uses': ['topping', 'base']},\n     'filling': {'allergens': ['Egg'], 'may_contain': ['Egg', ' sesame '], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': [' sesame ', 'tree nuts'], 'uses': ['crust', 'topping']},\n     'topping': {'allergens': ['Egg', 'eggs'], 'may_contain': ['dairy'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['generated control 2',\n   [{'base': {'allergens': [], 'may_contain': ['wheat'], 'uses': ['sauce', 'topping']},\n     'crust': {'allergens': ['milk', 'dairy'], 'may_contain': [' sesame '], 'uses': ['topping']},\n     'filling': {'allergens': [], 'may_contain': ['peanuts', 'eggs'], 'uses': []},\n     'sauce': {'allergens': ['milk', 'peanuts'],\n               'may_contain': ['eggs', 'dairy'],\n               'uses': ['filling', 'topping']},\n     'topping': {'allergens': [' sesame ', 'milk'], 'may_contain': [], 'uses': ['mystery']}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}],\n  ['generated control 3',\n   [{'base': {'allergens': ['Egg'], 'may_contain': ['tree nuts'], 'uses': ['crust', 'topping']},\n     'crust': {'allergens': [], 'may_contain': [], 'uses': ['mystery']},\n     'filling': {'allergens': [], 'may_contain': [], 'uses': ['topping']},\n     'sauce': {'allergens': ['Egg'], 'may_contain': ['Egg', ' sesame '], 'uses': ['base']},\n     'topping': {'allergens': ['eggs', 'milk'], 'may_contain': [], 'uses': ['mystery']}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}]],\n [['unknown sub', [{'base': {'uses': ['ghost']}}, 'base'],\n   {'contains': [], 'error': 'unknown: ghost', 'may_contain': []}],\n  ['flat recipe', [{'base': {'allergens': ['milk'], 'may_contain': ['soy'], 'uses': []}}, 'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['soy']}],\n  ['diamond sharing',\n   [{'a': {'allergens': ['wheat'], 'uses': ['c']},\n     'b': {'allergens': [], 'uses': ['c']},\n     'base': {'allergens': [], 'uses': ['a', 'b']},\n     'c': {'allergens': ['Dairy'], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'wheat'], 'error': None, 'may_contain': []}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': ['peanuts'], 'may_contain': ['peanuts', ' sesame '], 'uses': ['filling']},\n     'crust': {'allergens': [], 'may_contain': [], 'uses': ['topping']},\n     'filling': {'allergens': [], 'may_contain': ['dairy', 'milk'], 'uses': ['topping']},\n     'sauce': {'allergens': ['Egg', 'soy'], 'may_contain': [], 'uses': []},\n     'topping': {'allergens': [], 'may_contain': ['eggs'], 'uses': []}},\n    'base'],\n   {'contains': ['peanut'], 'error': None, 'may_contain': ['egg', 'milk', 'sesame']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': ['wheat', 'milk'], 'may_contain': [' sesame '], 'uses': ['crust', 'topping']},\n     'crust': {'allergens': [' sesame '], 'may_contain': ['eggs', 'Egg'], 'uses': ['filling']},\n     'filling': {'allergens': [' sesame ', 'wheat'], 'may_contain': [], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': [], 'uses': ['filling']},\n     'topping': {'allergens': ['dairy'], 'may_contain': [], 'uses': ['sauce']}},\n    'base'],\n   {'contains': ['milk', 'sesame', 'wheat'], 'error': None, 'may_contain': ['egg']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['tree nuts'], 'may_contain': ['tree nuts'], 'uses': []},\n     'crust': {'allergens': [], 'may_contain': ['dairy', 'peanuts'], 'uses': ['filling', 'topping']},\n     'filling': {'allergens': ['milk'], 'may_contain': [], 'uses': []},\n     'sauce': {'allergens': ['peanuts', 'soy'], 'may_contain': [], 'uses': ['filling', 'base']},\n     'topping': {'allergens': [], 'may_contain': [' sesame '], 'uses': []}},\n    'base'],\n   {'contains': ['tree nut'], 'error': None, 'may_contain': []}],\n  ['generated control 2',\n   [{'base': {'allergens': [], 'may_contain': [], 'uses': ['sauce', 'crust', 'topping']},\n     'crust': {'allergens': ['tree nuts'],\n               'may_contain': ['eggs', 'tree nuts'],\n               'uses': ['filling', 'topping']},\n     'filling': {'allergens': [], 'may_contain': [], 'uses': ['mystery']},\n     'sauce': {'allergens': ['eggs'], 'may_contain': ['tree nuts', 'wheat'], 'uses': ['crust', 'base']},\n     'topping': {'allergens': ['tree nuts', 'wheat'], 'may_contain': ['dairy'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}],\n  ['generated control 3',\n   [{'base': {'allergens': [' sesame ', 'wheat'], 'may_contain': [], 'uses': ['sauce', 'filling']},\n     'crust': {'allergens': ['wheat'], 'may_contain': [], 'uses': []},\n     'filling': {'allergens': ['soy'], 'may_contain': [], 'uses': ['mystery']},\n     'sauce': {'allergens': ['eggs'],\n               'may_contain': ['tree nuts', 'dairy'],\n               'uses': ['crust', 'filling', 'topping']},\n     'topping': {'allergens': [], 'may_contain': ['eggs'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}]],\n [['flat recipe', [{'base': {'allergens': ['milk'], 'may_contain': ['soy'], 'uses': []}}, 'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['soy']}],\n  ['diamond sharing',\n   [{'a': {'allergens': ['wheat'], 'uses': ['c']},\n     'b': {'allergens': [], 'uses': ['c']},\n     'base': {'allergens': [], 'uses': ['a', 'b']},\n     'c': {'allergens': ['Dairy'], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'wheat'], 'error': None, 'may_contain': []}],\n  ['cycle', [{'a': {'uses': ['base']}, 'base': {'uses': ['a']}}, 'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': [], 'may_contain': ['milk', 'peanuts'], 'uses': ['sauce']},\n     'crust': {'allergens': ['milk'], 'may_contain': ['peanuts', 'wheat'], 'uses': ['filling']},\n     'filling': {'allergens': ['dairy'], 'may_contain': ['dairy'], 'uses': []},\n     'sauce': {'allergens': ['eggs', 'Egg'],\n               'may_contain': ['eggs', 'soy'],\n               'uses': ['crust', 'filling', 'topping']},\n     'topping': {'allergens': [' sesame ', 'soy'], 'may_contain': ['soy', ' sesame '], 'uses': []}},\n    'base'],\n   {'contains': ['egg', 'milk', 'sesame', 'soy'], 'error': None, 'may_contain': ['peanut', 'wheat']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': ['dairy'], 'may_contain': [], 'uses': ['sauce', 'filling']},\n     'crust': {'allergens': ['soy', 'milk'], 'may_contain': [], 'uses': []},\n     'filling': {'allergens': ['wheat'], 'may_contain': ['wheat'], 'uses': []},\n     'sauce': {'allergens': ['soy'], 'may_contain': ['Egg'], 'uses': ['crust', 'filling']},\n     'topping': {'allergens': ['milk'], 'may_contain': ['tree nuts', 'dairy'], 'uses': ['mystery']}},\n    'base'],\n   {'contains': ['milk', 'soy', 'wheat'], 'error': None, 'may_contain': ['egg']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['peanuts'],\n              'may_contain': ['dairy', 'eggs'],\n              'uses': ['sauce', 'crust', 'filling']},\n     'crust': {'allergens': [' sesame ', 'wheat'], 'may_contain': [], 'uses': []},\n     'filling': {'allergens': ['dairy'], 'may_contain': ['dairy'], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': ['milk'], 'uses': []},\n     'topping': {'allergens': ['tree nuts'], 'may_contain': ['tree nuts', 'soy'], 'uses': ['filling']}},\n    'base'],\n   {'contains': ['milk', 'peanut', 'sesame', 'wheat'], 'error': None, 'may_contain': ['egg']}],\n  ['generated control 2',\n   [{'base': {'allergens': ['peanuts'], 'may_contain': ['eggs', 'dairy'], 'uses': ['sauce']},\n     'crust': {'allergens': ['peanuts'], 'may_contain': [], 'uses': ['filling', 'sauce']},\n     'filling': {'allergens': [], 'may_contain': [], 'uses': ['topping', 'mystery']},\n     'sauce': {'allergens': ['Egg', 'dairy'], 'may_contain': [], 'uses': ['topping', 'base']},\n     'topping': {'allergens': ['tree nuts', 'soy'], 'may_contain': [' sesame ', 'milk'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['generated control 3',\n   [{'base': {'allergens': [], 'may_contain': ['eggs', ' sesame '], 'uses': []},\n     'crust': {'allergens': ['eggs', 'milk'], 'may_contain': ['eggs'], 'uses': []},\n     'filling': {'allergens': ['milk'], 'may_contain': [], 'uses': []},\n     'sauce': {'allergens': ['tree nuts', 'Egg'], 'may_contain': [], 'uses': ['filling']},\n     'topping': {'allergens': [], 'may_contain': ['soy'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': None, 'may_contain': ['egg', 'sesame']}]]]\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":"09cb30a61b75a392c5b28519ec8b45f3547bc0fec0bd482887cd9705ea0bcfd7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(recipes, root):\n    SYN = {'dairy': 'milk', 'peanuts': 'peanut', 'tree nuts': 'tree nut', 'eggs': 'egg'}\n    def canon(a):\n        a = a.strip().lower()\n        return SYN.get(a, a)\n    contains, may = set(), set()\n    state = {}\n    def visit(n):\n        if n not in recipes:\n            return 'unknown: ' + n\n        if state.get(n) == 1:\n            return 'cycle: ' + n\n        if state.get(n) == 2:\n            return None\n        state[n] = 1\n        r = recipes[n]\n        contains.update(canon(a) for a in r.get('allergens', []))\n        may.update(canon(a) for a in r.get('may_contain', []))\n        for s in r.get('uses', []):\n            e = visit(s)\n            if e:\n                return e\n        state[n] = 2\n        return None\n    err = visit(root)\n    if err:\n        return {'contains': [], 'may_contain': [], 'error': err}\n    return {'contains': sorted(contains), 'may_contain': sorted(may - contains), 'error': None}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['flat recipe', [{'base': {'allergens': ['milk'], 'may_contain': ['soy'], 'uses': []}}, 'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['soy']}],\n  ['diamond sharing',\n   [{'a': {'allergens': ['wheat'], 'uses': ['c']},\n     'b': {'allergens': [], 'uses': ['c']},\n     'base': {'allergens': [], 'uses': ['a', 'b']},\n     'c': {'allergens': ['Dairy'], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'wheat'], 'error': None, 'may_contain': []}],\n  ['cycle', [{'a': {'uses': ['base']}, 'base': {'uses': ['a']}}, 'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': ['soy'], 'may_contain': [' sesame ', 'soy'], 'uses': ['sauce', 'crust']},\n     'crust': {'allergens': ['soy', ' sesame '], 'may_contain': [], 'uses': ['sauce']},\n     'filling': {'allergens': ['tree nuts'], 'may_contain': ['soy'], 'uses': ['topping']},\n     'sauce': {'allergens': ['peanuts'], 'may_contain': ['Egg', 'wheat'], 'uses': []},\n     'topping': {'allergens': [], 'may_contain': ['soy'], 'uses': []}},\n    'base'],\n   {'contains': ['peanut', 'sesame', 'soy'], 'error': None, 'may_contain': ['egg', 'wheat']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': ['wheat'], 'may_contain': [], 'uses': ['sauce', 'filling']},\n     'crust': {'allergens': ['eggs'], 'may_contain': ['eggs'], 'uses': []},\n     'filling': {'allergens': ['tree nuts', 'soy'], 'may_contain': ['soy', 'tree nuts'], 'uses': []},\n     'sauce': {'allergens': ['soy'], 'may_contain': ['peanuts', 'tree nuts'], 'uses': ['crust']},\n     'topping': {'allergens': [], 'may_contain': ['wheat', 'Egg'], 'uses': []}},\n    'base'],\n   {'contains': ['egg', 'soy', 'tree nut', 'wheat'], 'error': None, 'may_contain': ['peanut']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['eggs'], 'may_contain': [], 'uses': ['topping']},\n     'crust': {'allergens': ['eggs'], 'may_contain': ['dairy', 'Egg'], 'uses': ['filling', 'topping']},\n     'filling': {'allergens': ['wheat', 'soy'], 'may_contain': [], 'uses': ['topping']},\n     'sauce': {'allergens': ['tree nuts', ' sesame '],\n               'may_contain': ['wheat', 'soy'],\n               'uses': ['topping', 'base']},\n     'topping': {'allergens': [], 'may_contain': ['peanuts'], 'uses': ['mystery']}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}],\n  ['generated control 2',\n   [{'base': {'allergens': ['milk', 'dairy'], 'may_contain': ['dairy', 'tree nuts'], 'uses': ['topping']},\n     'crust': {'allergens': [' sesame ', 'Egg'], 'may_contain': ['peanuts', 'tree nuts'], 'uses': []},\n     'filling': {'allergens': [' sesame ', 'peanuts'], 'may_contain': [], 'uses': []},\n     'sauce': {'allergens': ['tree nuts'], 'may_contain': ['Egg', 'eggs'], 'uses': ['filling']},\n     'topping': {'allergens': [], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['tree nut']}],\n  ['generated control 3',\n   [{'base': {'allergens': ['milk'], 'may_contain': [], 'uses': ['crust', 'topping']},\n     'crust': {'allergens': ['soy'], 'may_contain': ['peanuts'], 'uses': ['topping', 'base']},\n     'filling': {'allergens': ['wheat'], 'may_contain': ['tree nuts'], 'uses': ['topping']},\n     'sauce': {'allergens': [' sesame '], 'may_contain': [], 'uses': ['topping']},\n     'topping': {'allergens': [' sesame ', 'milk'], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}]],\n [['diamond sharing',\n   [{'a': {'allergens': ['wheat'], 'uses': ['c']},\n     'b': {'allergens': [], 'uses': ['c']},\n     'base': {'allergens': [], 'uses': ['a', 'b']},\n     'c': {'allergens': ['Dairy'], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'wheat'], 'error': None, 'may_contain': []}],\n  ['cycle', [{'a': {'uses': ['base']}, 'base': {'uses': ['a']}}, 'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['unknown sub', [{'base': {'uses': ['ghost']}}, 'base'],\n   {'contains': [], 'error': 'unknown: ghost', 'may_contain': []}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': ['dairy'], 'may_contain': ['soy'], 'uses': ['crust', 'topping']},\n     'crust': {'allergens': [], 'may_contain': [' sesame ', 'Egg'], 'uses': ['filling', 'sauce']},\n     'filling': {'allergens': [], 'may_contain': ['milk', 'eggs'], 'uses': []},\n     'sauce': {'allergens': ['Egg'], 'may_contain': [], 'uses': ['filling']},\n     'topping': {'allergens': [], 'may_contain': ['peanuts', 'milk'], 'uses': []}},\n    'base'],\n   {'contains': ['egg', 'milk'], 'error': None, 'may_contain': ['peanut', 'sesame', 'soy']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': ['dairy'],\n              'may_contain': ['milk', 'eggs'],\n              'uses': ['sauce', 'filling', 'topping']},\n     'crust': {'allergens': ['eggs'], 'may_contain': ['tree nuts'], 'uses': ['topping']},\n     'filling': {'allergens': [], 'may_contain': ['soy'], 'uses': ['topping']},\n     'sauce': {'allergens': [' sesame '], 'may_contain': ['Egg'], 'uses': ['crust']},\n     'topping': {'allergens': [], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': ['egg', 'milk', 'sesame'], 'error': None, 'may_contain': ['soy', 'tree nut']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['wheat', 'peanuts'], 'may_contain': [], 'uses': ['sauce', 'crust']},\n     'crust': {'allergens': [], 'may_contain': ['wheat'], 'uses': ['topping']},\n     'filling': {'allergens': [], 'may_contain': ['wheat', 'milk'], 'uses': []},\n     'sauce': {'allergens': ['dairy'], 'may_contain': ['dairy'], 'uses': ['crust', 'topping']},\n     'topping': {'allergens': [], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'peanut', 'wheat'], 'error': None, 'may_contain': []}],\n  ['generated control 2',\n   [{'base': {'allergens': [], 'may_contain': [], 'uses': ['sauce', 'topping', 'mystery']},\n     'crust': {'allergens': [], 'may_contain': ['wheat'], 'uses': ['filling', 'topping']},\n     'filling': {'allergens': ['tree nuts', 'Egg'], 'may_contain': ['Egg', 'milk'], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': [], 'uses': ['crust', 'filling']},\n     'topping': {'allergens': ['wheat', 'eggs'], 'may_contain': [' sesame '], 'uses': ['sauce']}},\n    'base'],\n   {'contains': [], 'error': 'cycle: sauce', 'may_contain': []}],\n  ['generated control 3',\n   [{'base': {'allergens': ['eggs', 'tree nuts'],\n              'may_contain': [],\n              'uses': ['sauce', 'crust', 'filling', 'topping']},\n     'crust': {'allergens': ['dairy'], 'may_contain': ['tree nuts', 'eggs'], 'uses': ['topping', 'base']},\n     'filling': {'allergens': ['eggs', 'peanuts'], 'may_contain': ['soy', 'eggs'], 'uses': ['topping']},\n     'sauce': {'allergens': [], 'may_contain': ['tree nuts', 'wheat'], 'uses': ['crust', 'filling']},\n     'topping': {'allergens': ['wheat'], 'may_contain': [], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}]],\n [['cycle', [{'a': {'uses': ['base']}, 'base': {'uses': ['a']}}, 'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['unknown sub', [{'base': {'uses': ['ghost']}}, 'base'],\n   {'contains': [], 'error': 'unknown: ghost', 'may_contain': []}],\n  ['flat recipe', [{'base': {'allergens': ['milk'], 'may_contain': ['soy'], 'uses': []}}, 'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['soy']}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': [' sesame '], 'may_contain': ['wheat'], 'uses': ['filling']},\n     'crust': {'allergens': ['wheat', 'milk'], 'may_contain': ['eggs', 'tree nuts'], 'uses': ['filling']},\n     'filling': {'allergens': ['peanuts'], 'may_contain': ['soy', 'peanuts'], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': ['eggs'], 'uses': ['filling']},\n     'topping': {'allergens': ['soy'], 'may_contain': ['dairy', 'peanuts'], 'uses': []}},\n    'base'],\n   {'contains': ['peanut', 'sesame'], 'error': None, 'may_contain': ['soy', 'wheat']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': [], 'may_contain': ['soy'], 'uses': ['sauce', 'crust']},\n     'crust': {'allergens': [], 'may_contain': ['eggs', 'milk'], 'uses': ['filling', 'topping']},\n     'filling': {'allergens': [], 'may_contain': [' sesame '], 'uses': []},\n     'sauce': {'allergens': ['tree nuts'], 'may_contain': ['Egg', 'tree nuts'], 'uses': ['topping']},\n     'topping': {'allergens': ['dairy', 'milk'], 'may_contain': ['soy'], 'uses': ['filling']}},\n    'base'],\n   {'contains': ['milk', 'tree nut'], 'error': None, 'may_contain': ['egg', 'sesame', 'soy']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['wheat'],\n              'may_contain': ['peanuts', 'Egg'],\n              'uses': ['crust', 'filling', 'topping']},\n     'crust': {'allergens': ['eggs'], 'may_contain': ['soy', 'wheat'], 'uses': ['topping', 'base']},\n     'filling': {'allergens': ['Egg'], 'may_contain': ['Egg', ' sesame '], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': [' sesame ', 'tree nuts'], 'uses': ['crust', 'topping']},\n     'topping': {'allergens': ['Egg', 'eggs'], 'may_contain': ['dairy'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['generated control 2',\n   [{'base': {'allergens': [], 'may_contain': ['wheat'], 'uses': ['sauce', 'topping']},\n     'crust': {'allergens': ['milk', 'dairy'], 'may_contain': [' sesame '], 'uses': ['topping']},\n     'filling': {'allergens': [], 'may_contain': ['peanuts', 'eggs'], 'uses': []},\n     'sauce': {'allergens': ['milk', 'peanuts'],\n               'may_contain': ['eggs', 'dairy'],\n               'uses': ['filling', 'topping']},\n     'topping': {'allergens': [' sesame ', 'milk'], 'may_contain': [], 'uses': ['mystery']}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}],\n  ['generated control 3',\n   [{'base': {'allergens': ['Egg'], 'may_contain': ['tree nuts'], 'uses': ['crust', 'topping']},\n     'crust': {'allergens': [], 'may_contain': [], 'uses': ['mystery']},\n     'filling': {'allergens': [], 'may_contain': [], 'uses': ['topping']},\n     'sauce': {'allergens': ['Egg'], 'may_contain': ['Egg', ' sesame '], 'uses': ['base']},\n     'topping': {'allergens': ['eggs', 'milk'], 'may_contain': [], 'uses': ['mystery']}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}]],\n [['unknown sub', [{'base': {'uses': ['ghost']}}, 'base'],\n   {'contains': [], 'error': 'unknown: ghost', 'may_contain': []}],\n  ['flat recipe', [{'base': {'allergens': ['milk'], 'may_contain': ['soy'], 'uses': []}}, 'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['soy']}],\n  ['diamond sharing',\n   [{'a': {'allergens': ['wheat'], 'uses': ['c']},\n     'b': {'allergens': [], 'uses': ['c']},\n     'base': {'allergens': [], 'uses': ['a', 'b']},\n     'c': {'allergens': ['Dairy'], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'wheat'], 'error': None, 'may_contain': []}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': ['peanuts'], 'may_contain': ['peanuts', ' sesame '], 'uses': ['filling']},\n     'crust': {'allergens': [], 'may_contain': [], 'uses': ['topping']},\n     'filling': {'allergens': [], 'may_contain': ['dairy', 'milk'], 'uses': ['topping']},\n     'sauce': {'allergens': ['Egg', 'soy'], 'may_contain': [], 'uses': []},\n     'topping': {'allergens': [], 'may_contain': ['eggs'], 'uses': []}},\n    'base'],\n   {'contains': ['peanut'], 'error': None, 'may_contain': ['egg', 'milk', 'sesame']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': ['wheat', 'milk'], 'may_contain': [' sesame '], 'uses': ['crust', 'topping']},\n     'crust': {'allergens': [' sesame '], 'may_contain': ['eggs', 'Egg'], 'uses': ['filling']},\n     'filling': {'allergens': [' sesame ', 'wheat'], 'may_contain': [], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': [], 'uses': ['filling']},\n     'topping': {'allergens': ['dairy'], 'may_contain': [], 'uses': ['sauce']}},\n    'base'],\n   {'contains': ['milk', 'sesame', 'wheat'], 'error': None, 'may_contain': ['egg']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['tree nuts'], 'may_contain': ['tree nuts'], 'uses': []},\n     'crust': {'allergens': [], 'may_contain': ['dairy', 'peanuts'], 'uses': ['filling', 'topping']},\n     'filling': {'allergens': ['milk'], 'may_contain': [], 'uses': []},\n     'sauce': {'allergens': ['peanuts', 'soy'], 'may_contain': [], 'uses': ['filling', 'base']},\n     'topping': {'allergens': [], 'may_contain': [' sesame '], 'uses': []}},\n    'base'],\n   {'contains': ['tree nut'], 'error': None, 'may_contain': []}],\n  ['generated control 2',\n   [{'base': {'allergens': [], 'may_contain': [], 'uses': ['sauce', 'crust', 'topping']},\n     'crust': {'allergens': ['tree nuts'],\n               'may_contain': ['eggs', 'tree nuts'],\n               'uses': ['filling', 'topping']},\n     'filling': {'allergens': [], 'may_contain': [], 'uses': ['mystery']},\n     'sauce': {'allergens': ['eggs'], 'may_contain': ['tree nuts', 'wheat'], 'uses': ['crust', 'base']},\n     'topping': {'allergens': ['tree nuts', 'wheat'], 'may_contain': ['dairy'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}],\n  ['generated control 3',\n   [{'base': {'allergens': [' sesame ', 'wheat'], 'may_contain': [], 'uses': ['sauce', 'filling']},\n     'crust': {'allergens': ['wheat'], 'may_contain': [], 'uses': []},\n     'filling': {'allergens': ['soy'], 'may_contain': [], 'uses': ['mystery']},\n     'sauce': {'allergens': ['eggs'],\n               'may_contain': ['tree nuts', 'dairy'],\n               'uses': ['crust', 'filling', 'topping']},\n     'topping': {'allergens': [], 'may_contain': ['eggs'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'unknown: mystery', 'may_contain': []}]],\n [['flat recipe', [{'base': {'allergens': ['milk'], 'may_contain': ['soy'], 'uses': []}}, 'base'],\n   {'contains': ['milk'], 'error': None, 'may_contain': ['soy']}],\n  ['diamond sharing',\n   [{'a': {'allergens': ['wheat'], 'uses': ['c']},\n     'b': {'allergens': [], 'uses': ['c']},\n     'base': {'allergens': [], 'uses': ['a', 'b']},\n     'c': {'allergens': ['Dairy'], 'uses': []}},\n    'base'],\n   {'contains': ['milk', 'wheat'], 'error': None, 'may_contain': []}],\n  ['cycle', [{'a': {'uses': ['base']}, 'base': {'uses': ['a']}}, 'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['regression: nested precautionary labels',\n   [{'base': {'allergens': [], 'may_contain': ['milk', 'peanuts'], 'uses': ['sauce']},\n     'crust': {'allergens': ['milk'], 'may_contain': ['peanuts', 'wheat'], 'uses': ['filling']},\n     'filling': {'allergens': ['dairy'], 'may_contain': ['dairy'], 'uses': []},\n     'sauce': {'allergens': ['eggs', 'Egg'],\n               'may_contain': ['eggs', 'soy'],\n               'uses': ['crust', 'filling', 'topping']},\n     'topping': {'allergens': [' sesame ', 'soy'], 'may_contain': ['soy', ' sesame '], 'uses': []}},\n    'base'],\n   {'contains': ['egg', 'milk', 'sesame', 'soy'], 'error': None, 'may_contain': ['peanut', 'wheat']}],\n  ['repair check: nested precautionary labels',\n   [{'base': {'allergens': ['dairy'], 'may_contain': [], 'uses': ['sauce', 'filling']},\n     'crust': {'allergens': ['soy', 'milk'], 'may_contain': [], 'uses': []},\n     'filling': {'allergens': ['wheat'], 'may_contain': ['wheat'], 'uses': []},\n     'sauce': {'allergens': ['soy'], 'may_contain': ['Egg'], 'uses': ['crust', 'filling']},\n     'topping': {'allergens': ['milk'], 'may_contain': ['tree nuts', 'dairy'], 'uses': ['mystery']}},\n    'base'],\n   {'contains': ['milk', 'soy', 'wheat'], 'error': None, 'may_contain': ['egg']}],\n  ['generated control 1',\n   [{'base': {'allergens': ['peanuts'],\n              'may_contain': ['dairy', 'eggs'],\n              'uses': ['sauce', 'crust', 'filling']},\n     'crust': {'allergens': [' sesame ', 'wheat'], 'may_contain': [], 'uses': []},\n     'filling': {'allergens': ['dairy'], 'may_contain': ['dairy'], 'uses': []},\n     'sauce': {'allergens': [], 'may_contain': ['milk'], 'uses': []},\n     'topping': {'allergens': ['tree nuts'], 'may_contain': ['tree nuts', 'soy'], 'uses': ['filling']}},\n    'base'],\n   {'contains': ['milk', 'peanut', 'sesame', 'wheat'], 'error': None, 'may_contain': ['egg']}],\n  ['generated control 2',\n   [{'base': {'allergens': ['peanuts'], 'may_contain': ['eggs', 'dairy'], 'uses': ['sauce']},\n     'crust': {'allergens': ['peanuts'], 'may_contain': [], 'uses': ['filling', 'sauce']},\n     'filling': {'allergens': [], 'may_contain': [], 'uses': ['topping', 'mystery']},\n     'sauce': {'allergens': ['Egg', 'dairy'], 'may_contain': [], 'uses': ['topping', 'base']},\n     'topping': {'allergens': ['tree nuts', 'soy'], 'may_contain': [' sesame ', 'milk'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': 'cycle: base', 'may_contain': []}],\n  ['generated control 3',\n   [{'base': {'allergens': [], 'may_contain': ['eggs', ' sesame '], 'uses': []},\n     'crust': {'allergens': ['eggs', 'milk'], 'may_contain': ['eggs'], 'uses': []},\n     'filling': {'allergens': ['milk'], 'may_contain': [], 'uses': []},\n     'sauce': {'allergens': ['tree nuts', 'Egg'], 'may_contain': [], 'uses': ['filling']},\n     'topping': {'allergens': [], 'may_contain': ['soy'], 'uses': []}},\n    'base'],\n   {'contains': [], 'error': None, 'may_contain': ['egg', 'sesame']}]]]\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-allergen-rollup-nested-precautionary-labels","generated_at":"2026-09-29T14:52:30.444254+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Menu allergen matrices must propagate through nested sub-recipes without false cycle errors.","repair":"Collect may-contain from every visited recipe.","root_cause":"Only the root recipe contributes precautionary allergens.","sha256":"f056af9718eca347895b1bb5a9cdeae6c5ee380a34e09f9d2d213a608caf8bcb","title":"Sub-recipe allergen roll-up: nested precautionary labels · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":47.428,"exit_code":1,"observations":[{"actual":{"contains":["milk"],"error":null,"may_contain":["soy"]},"check":"flat recipe","expected":{"contains":["milk"],"error":null,"may_contain":["soy"]},"passed":true},{"actual":{"contains":["milk","wheat"],"error":null,"may_contain":[]},"check":"diamond sharing","expected":{"contains":["milk","wheat"],"error":null,"may_contain":[]},"passed":true},{"actual":{"contains":[],"error":"cycle: base","may_contain":[]},"check":"cycle","expected":{"contains":[],"error":"cycle: base","may_contain":[]},"passed":true},{"actual":{"contains":["peanut","sesame","soy"],"error":null,"may_contain":["egg","wheat"]},"check":"regression: nested precautionary labels","expected":{"contains":["peanut","sesame","soy"],"error":null,"may_contain":["egg","wheat"]},"passed":true},{"actual":{"contains":["egg","soy","tree nut","wheat"],"error":null,"may_contain":[]},"check":"repair check: nested precautionary labels","expected":{"contains":["egg","soy","tree nut","wheat"],"error":null,"may_contain":["peanut"]},"passed":false},{"actual":{"contains":[],"error":"unknown: mystery","may_contain":[]},"check":"generated control 1","expected":{"contains":[],"error":"unknown: mystery","may_contain":[]},"passed":true},{"actual":{"contains":["milk"],"error":null,"may_contain":["tree nut"]},"check":"generated control 2","expected":{"contains":["milk"],"error":null,"may_contain":["tree nut"]},"passed":true},{"actual":{"contains":[],"error":"cycle: base","may_contain":[]},"check":"generated control 3","expected":{"contains":[],"error":"cycle: base","may_contain":[]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"flat recipe\", \"actual\": {\"contains\": [\"milk\"], \"may_contain\": [\"soy\"], \"error\": null}, \"expected\": {\"contains\": [\"milk\"], \"error\": null, \"may_contain\": [\"soy\"]}, \"passed\": true}, {\"check\": \"diamond sharing\", \"actual\": {\"contains\": [\"milk\", \"wheat\"], \"may_contain\": [], \"error\": null}, \"expected\": {\"contains\": [\"milk\", \"wheat\"], \"error\": null, \"may_contain\": []}, \"passed\": true}, {\"check\": \"cycle\", \"actual\": {\"contains\": [], \"may_contain\": [], \"error\": \"cycle: base\"}, \"expected\": {\"contains\": [], \"error\": \"cycle: base\", \"may_contain\": []}, \"passed\": true}, {\"check\": \"regression: nested precautionary labels\", \"actual\": {\"contains\": [\"peanut\", \"sesame\", \"soy\"], \"may_contain\": [\"egg\", \"wheat\"], \"error\": null}, \"expected\": {\"contains\": [\"peanut\", \"sesame\", \"soy\"], \"error\": null, \"may_contain\": [\"egg\", \"wheat\"]}, \"passed\": true}, {\"check\": \"repair check: nested precautionary labels\", \"actual\": {\"contains\": [\"egg\", \"soy\", \"tree nut\", \"wheat\"], \"may_contain\": [], \"error\": null}, \"expected\": {\"contains\": [\"egg\", \"soy\", \"tree nut\", \"wheat\"], \"error\": null, \"may_contain\": [\"peanut\"]}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": {\"contains\": [], \"may_contain\": [], \"error\": \"unknown: mystery\"}, \"expected\": {\"contains\": [], \"error\": \"unknown: mystery\", \"may_contain\": []}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"contains\": [\"milk\"], \"may_contain\": [\"tree nut\"], \"error\": null}, \"expected\": {\"contains\": [\"milk\"], \"error\": null, \"may_contain\": [\"tree nut\"]}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"contains\": [], \"may_contain\": [], \"error\": \"cycle: base\"}, \"expected\": {\"contains\": [], \"error\": \"cycle: base\", \"may_contain\": []}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":47.525,"exit_code":1,"observations":[{"actual":{"contains":["milk"],"error":null,"may_contain":["soy"]},"check":"flat recipe","expected":{"contains":["milk"],"error":null,"may_contain":["soy"]},"passed":true},{"actual":{"contains":["milk","wheat"],"error":null,"may_contain":[]},"check":"diamond sharing","expected":{"contains":["milk","wheat"],"error":null,"may_contain":[]},"passed":true},{"actual":{"contains":[],"error":"cycle: base","may_contain":[]},"check":"cycle","expected":{"contains":[],"error":"cycle: base","may_contain":[]},"passed":true},{"actual":{"contains":["peanut","sesame","soy"],"error":null,"may_contain":[]},"check":"regression: nested precautionary labels","expected":{"contains":["peanut","sesame","soy"],"error":null,"may_contain":["egg","wheat"]},"passed":false},{"actual":{"contains":["egg","soy","tree nut","wheat"],"error":null,"may_contain":[]},"check":"repair check: nested precautionary labels","expected":{"contains":["egg","soy","tree nut","wheat"],"error":null,"may_contain":["peanut"]},"passed":false},{"actual":{"contains":[],"error":"unknown: mystery","may_contain":[]},"check":"generated control 1","expected":{"contains":[],"error":"unknown: mystery","may_contain":[]},"passed":true},{"actual":{"contains":["milk"],"error":null,"may_contain":["tree nut"]},"check":"generated control 2","expected":{"contains":["milk"],"error":null,"may_contain":["tree nut"]},"passed":true},{"actual":{"contains":[],"error":"cycle: base","may_contain":[]},"check":"generated control 3","expected":{"contains":[],"error":"cycle: base","may_contain":[]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"flat recipe\", \"actual\": {\"contains\": [\"milk\"], \"may_contain\": [\"soy\"], \"error\": null}, \"expected\": {\"contains\": [\"milk\"], \"error\": null, \"may_contain\": [\"soy\"]}, \"passed\": true}, {\"check\": \"diamond sharing\", \"actual\": {\"contains\": [\"milk\", \"wheat\"], \"may_contain\": [], \"error\": null}, \"expected\": {\"contains\": [\"milk\", \"wheat\"], \"error\": null, \"may_contain\": []}, \"passed\": true}, {\"check\": \"cycle\", \"actual\": {\"contains\": [], \"may_contain\": [], \"error\": \"cycle: base\"}, \"expected\": {\"contains\": [], \"error\": \"cycle: base\", \"may_contain\": []}, \"passed\": true}, {\"check\": \"regression: nested precautionary labels\", \"actual\": {\"contains\": [\"peanut\", \"sesame\", \"soy\"], \"may_contain\": [], \"error\": null}, \"expected\": {\"contains\": [\"peanut\", \"sesame\", \"soy\"], \"error\": null, \"may_contain\": [\"egg\", \"wheat\"]}, \"passed\": false}, {\"check\": \"repair check: nested precautionary labels\", \"actual\": {\"contains\": [\"egg\", \"soy\", \"tree nut\", \"wheat\"], \"may_contain\": [], \"error\": null}, \"expected\": {\"contains\": [\"egg\", \"soy\", \"tree nut\", \"wheat\"], \"error\": null, \"may_contain\": [\"peanut\"]}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": {\"contains\": [], \"may_contain\": [], \"error\": \"unknown: mystery\"}, \"expected\": {\"contains\": [], \"error\": \"unknown: mystery\", \"may_contain\": []}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"contains\": [\"milk\"], \"may_contain\": [\"tree nut\"], \"error\": null}, \"expected\": {\"contains\": [\"milk\"], \"error\": null, \"may_contain\": [\"tree nut\"]}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"contains\": [], \"may_contain\": [], \"error\": \"cycle: base\"}, \"expected\": {\"contains\": [], \"error\": \"cycle: base\", \"may_contain\": []}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.801,"exit_code":0,"observations":[{"actual":{"contains":["milk"],"error":null,"may_contain":["soy"]},"check":"flat recipe","expected":{"contains":["milk"],"error":null,"may_contain":["soy"]},"passed":true},{"actual":{"contains":["milk","wheat"],"error":null,"may_contain":[]},"check":"diamond sharing","expected":{"contains":["milk","wheat"],"error":null,"may_contain":[]},"passed":true},{"actual":{"contains":[],"error":"cycle: base","may_contain":[]},"check":"cycle","expected":{"contains":[],"error":"cycle: base","may_contain":[]},"passed":true},{"actual":{"contains":["peanut","sesame","soy"],"error":null,"may_contain":["egg","wheat"]},"check":"regression: nested precautionary labels","expected":{"contains":["peanut","sesame","soy"],"error":null,"may_contain":["egg","wheat"]},"passed":true},{"actual":{"contains":["egg","soy","tree nut","wheat"],"error":null,"may_contain":["peanut"]},"check":"repair check: nested precautionary labels","expected":{"contains":["egg","soy","tree nut","wheat"],"error":null,"may_contain":["peanut"]},"passed":true},{"actual":{"contains":[],"error":"unknown: mystery","may_contain":[]},"check":"generated control 1","expected":{"contains":[],"error":"unknown: mystery","may_contain":[]},"passed":true},{"actual":{"contains":["milk"],"error":null,"may_contain":["tree nut"]},"check":"generated control 2","expected":{"contains":["milk"],"error":null,"may_contain":["tree nut"]},"passed":true},{"actual":{"contains":[],"error":"cycle: base","may_contain":[]},"check":"generated control 3","expected":{"contains":[],"error":"cycle: base","may_contain":[]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"flat recipe\", \"actual\": {\"contains\": [\"milk\"], \"may_contain\": [\"soy\"], \"error\": null}, \"expected\": {\"contains\": [\"milk\"], \"error\": null, \"may_contain\": [\"soy\"]}, \"passed\": true}, {\"check\": \"diamond sharing\", \"actual\": {\"contains\": [\"milk\", \"wheat\"], \"may_contain\": [], \"error\": null}, \"expected\": {\"contains\": [\"milk\", \"wheat\"], \"error\": null, \"may_contain\": []}, \"passed\": true}, {\"check\": \"cycle\", \"actual\": {\"contains\": [], \"may_contain\": [], \"error\": \"cycle: base\"}, \"expected\": {\"contains\": [], \"error\": \"cycle: base\", \"may_contain\": []}, \"passed\": true}, {\"check\": \"regression: nested precautionary labels\", \"actual\": {\"contains\": [\"peanut\", \"sesame\", \"soy\"], \"may_contain\": [\"egg\", \"wheat\"], \"error\": null}, \"expected\": {\"contains\": [\"peanut\", \"sesame\", \"soy\"], \"error\": null, \"may_contain\": [\"egg\", \"wheat\"]}, \"passed\": true}, {\"check\": \"repair check: nested precautionary labels\", \"actual\": {\"contains\": [\"egg\", \"soy\", \"tree nut\", \"wheat\"], \"may_contain\": [\"peanut\"], \"error\": null}, \"expected\": {\"contains\": [\"egg\", \"soy\", \"tree nut\", \"wheat\"], \"error\": null, \"may_contain\": [\"peanut\"]}, \"passed\": true}, {\"check\": \"generated control 1\", \"actual\": {\"contains\": [], \"may_contain\": [], \"error\": \"unknown: mystery\"}, \"expected\": {\"contains\": [], \"error\": \"unknown: mystery\", \"may_contain\": []}, \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"contains\": [\"milk\"], \"may_contain\": [\"tree nut\"], \"error\": null}, \"expected\": {\"contains\": [\"milk\"], \"error\": null, \"may_contain\": [\"tree nut\"]}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"contains\": [], \"may_contain\": [], \"error\": \"cycle: base\"}, \"expected\": {\"contains\": [], \"error\": \"cycle: base\", \"may_contain\": []}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}