{"abstract":"Fragment null preservation.","category":"Client state","checks":60,"contract":"This route-state adapter models already-decoded query pairs. Repeated pairs and insertion order remain significant, first occurrence is used by single-value readers, explicit empty values override defaults, and fragment absence differs from empty. Operation fragment-null-preservation has the six explicit input/output oracles below.","evaluation_group":"s3-client-state-route-query","failed_approach":"The partial repair `fragment or ''` still violates the explicit fixture contract.","family":"s3-client-state-route-query-fragment-null-preservation","id":"FA-23791","implementations":{"attempt":{"sha256":"4ab7417f2bf5b86aa587e735dffc2d7e32def4a222d7de319bedecdd581dae69","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    pairs, defaults, route, fragment = s\n    if operation == 'repeated-values-retention':\n        return [v for k,v in pairs if k=='tag']\n    if operation == 'empty-query-value':\n        return next((v for k,v in pairs if k=='q'),defaults.get('q'))\n    if operation == 'query-default-merge':\n        return {**defaults,**dict(pairs)}\n    if operation == 'fragment-null-preservation':\n        return fragment or ''\n    if operation == 'state-cache-key':\n        return (route,tuple(pairs))\n    if operation == 'remove-one-query-name':\n        return [(k,v) for k,v in pairs if k!='q']\n    if operation == 'first-value-precedence':\n        return next((v for k,v in pairs if k=='q'),None)\n    if operation == 'debug-exclusion':\n        return [(k,v) for k,v in pairs if k!='debug']\n    if operation == 'explicit-query-key-set':\n        return sorted({k for k,v in pairs})\n    if operation == 'navigation-fragment-key':\n        return (route,fragment)\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('repeated-values-retention scenario 1', solve('repeated-values-retention', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), ['x','y'])\ncheck('repeated-values-retention scenario 2', solve('repeated-values-retention', ([('q','')],{'q':'default'},'/a','')), [])\ncheck('repeated-values-retention scenario 3', solve('repeated-values-retention', ([] ,{'q':'default','page':'1'},'/a',None)), [])\ncheck('repeated-values-retention scenario 4', solve('repeated-values-retention', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), [])\ncheck('repeated-values-retention scenario 5', solve('repeated-values-retention', ([('page','0'),('tag','x')],{},'/a',None)), ['x'])\ncheck('repeated-values-retention scenario 6', solve('repeated-values-retention', ([('q','a'),('q','b')],{},'/b','end')), [])\ncheck('empty-query-value scenario 1', solve('empty-query-value', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), 'a')\ncheck('empty-query-value scenario 2', solve('empty-query-value', ([('q','')],{'q':'default'},'/a','')), '')\ncheck('empty-query-value scenario 3', solve('empty-query-value', ([] ,{'q':'default','page':'1'},'/a',None)), 'default')\ncheck('empty-query-value scenario 4', solve('empty-query-value', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), '0')\ncheck('empty-query-value scenario 5', solve('empty-query-value', ([('page','0'),('tag','x')],{},'/a',None)), None)\ncheck('empty-query-value scenario 6', solve('empty-query-value', ([('q','a'),('q','b')],{},'/b','end')), 'a')\ncheck('query-default-merge scenario 1', solve('query-default-merge', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), {'q':'a','tag':'y'})\ncheck('query-default-merge scenario 2', solve('query-default-merge', ([('q','')],{'q':'default'},'/a','')), {'q':''})\ncheck('query-default-merge scenario 3', solve('query-default-merge', ([] ,{'q':'default','page':'1'},'/a',None)), {'q':'default','page':'1'})\ncheck('query-default-merge scenario 4', solve('query-default-merge', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), {'q':'0','page':'2','debug':'1'})\ncheck('query-default-merge scenario 5', solve('query-default-merge', ([('page','0'),('tag','x')],{},'/a',None)), {'page':'0','tag':'x'})\ncheck('query-default-merge scenario 6', solve('query-default-merge', ([('q','a'),('q','b')],{},'/b','end')), {'q':'b'})\ncheck('fragment-null-preservation scenario 1', solve('fragment-null-preservation', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), 'part')\ncheck('fragment-null-preservation scenario 2', solve('fragment-null-preservation', ([('q','')],{'q':'default'},'/a','')), '')\ncheck('fragment-null-preservation scenario 3', solve('fragment-null-preservation', ([] ,{'q':'default','page':'1'},'/a',None)), 'absent')\ncheck('fragment-null-preservation scenario 4', solve('fragment-null-preservation', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), 'x')\ncheck('fragment-null-preservation scenario 5', solve('fragment-null-preservation', ([('page','0'),('tag','x')],{},'/a',None)), 'absent')\ncheck('fragment-null-preservation scenario 6', solve('fragment-null-preservation', ([('q','a'),('q','b')],{},'/b','end')), 'end')\ncheck('state-cache-key scenario 1', solve('state-cache-key', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), ('/a/'+str(N),(('q','a'),('tag','x'),('tag','y'))))\ncheck('state-cache-key scenario 2', solve('state-cache-key', ([('q','')],{'q':'default'},'/a','')), ('/a',(('q',''),)))\ncheck('state-cache-key scenario 3', solve('state-cache-key', ([] ,{'q':'default','page':'1'},'/a',None)), ('/a',()))\ncheck('state-cache-key scenario 4', solve('state-cache-key', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), ('/b',(('q','0'),('page','2'),('debug','1'))))\ncheck('state-cache-key scenario 5', solve('state-cache-key', ([('page','0'),('tag','x')],{},'/a',None)), ('/a',(('page','0'),('tag','x'))))\ncheck('state-cache-key scenario 6', solve('state-cache-key', ([('q','a'),('q','b')],{},'/b','end')), ('/b',(('q','a'),('q','b'))))\ncheck('remove-one-query-name scenario 1', solve('remove-one-query-name', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), [('tag','x'),('tag','y')])\ncheck('remove-one-query-name scenario 2', solve('remove-one-query-name', ([('q','')],{'q':'default'},'/a','')), [])\ncheck('remove-one-query-name scenario 3', solve('remove-one-query-name', ([] ,{'q':'default','page':'1'},'/a',None)), [])\ncheck('remove-one-query-name scenario 4', solve('remove-one-query-name', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), [('page','2'),('debug','1')])\ncheck('remove-one-query-name scenario 5', solve('remove-one-query-name', ([('page','0'),('tag','x')],{},'/a',None)), [('page','0'),('tag','x')])\ncheck('remove-one-query-name scenario 6', solve('remove-one-query-name', ([('q','a'),('q','b')],{},'/b','end')), [])\ncheck('first-value-precedence scenario 1', solve('first-value-precedence', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), 'a')\ncheck('first-value-precedence scenario 2', solve('first-value-precedence', ([('q','')],{'q':'default'},'/a','')), '')\ncheck('first-value-precedence scenario 3', solve('first-value-precedence', ([] ,{'q':'default','page':'1'},'/a',None)), None)\ncheck('first-value-precedence scenario 4', solve('first-value-precedence', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), '0')\ncheck('first-value-precedence scenario 5', solve('first-value-precedence', ([('page','0'),('tag','x')],{},'/a',None)), None)\ncheck('first-value-precedence scenario 6', solve('first-value-precedence', ([('q','a'),('q','b')],{},'/b','end')), 'a')\ncheck('debug-exclusion scenario 1', solve('debug-exclusion', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), [('q','a'),('tag','x'),('tag','y')])\ncheck('debug-exclusion scenario 2', solve('debug-exclusion', ([('q','')],{'q':'default'},'/a','')), [('q','')])\ncheck('debug-exclusion scenario 3', solve('debug-exclusion', ([] ,{'q':'default','page':'1'},'/a',None)), [])\ncheck('debug-exclusion scenario 4', solve('debug-exclusion', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), [('q','0'),('page','2')])\ncheck('debug-exclusion scenario 5', solve('debug-exclusion', ([('page','0'),('tag','x')],{},'/a',None)), [('page','0'),('tag','x')])\ncheck('debug-exclusion scenario 6', solve('debug-exclusion', ([('q','a'),('q','b')],{},'/b','end')), [('q','a'),('q','b')])\ncheck('explicit-query-key-set scenario 1', solve('explicit-query-key-set', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), ['q','tag'])\ncheck('explicit-query-key-set scenario 2', solve('explicit-query-key-set', ([('q','')],{'q':'default'},'/a','')), ['q'])\ncheck('explicit-query-key-set scenario 3', solve('explicit-query-key-set', ([] ,{'q':'default','page':'1'},'/a',None)), [])\ncheck('explicit-query-key-set scenario 4', solve('explicit-query-key-set', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), ['debug','page','q'])\ncheck('explicit-query-key-set scenario 5', solve('explicit-query-key-set', ([('page','0'),('tag','x')],{},'/a',None)), ['page','tag'])\ncheck('explicit-query-key-set scenario 6', solve('explicit-query-key-set', ([('q','a'),('q','b')],{},'/b','end')), ['q'])\ncheck('navigation-fragment-key scenario 1', solve('navigation-fragment-key', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), ('/a/'+str(N),'part'))\ncheck('navigation-fragment-key scenario 2', solve('navigation-fragment-key', ([('q','')],{'q':'default'},'/a','')), ('/a',''))\ncheck('navigation-fragment-key scenario 3', solve('navigation-fragment-key', ([] ,{'q':'default','page':'1'},'/a',None)), ('/a',None))\ncheck('navigation-fragment-key scenario 4', solve('navigation-fragment-key', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), ('/b','x'))\ncheck('navigation-fragment-key scenario 5', solve('navigation-fragment-key', ([('page','0'),('tag','x')],{},'/a',None)), ('/a',None))\ncheck('navigation-fragment-key scenario 6', solve('navigation-fragment-key', ([('q','a'),('q','b')],{},'/b','end')), ('/b','end'))\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":"a19150403a461ffeb7cab1c4b778a186249e8105444ef5cc15b2e958bd5f5a21","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    pairs, defaults, route, fragment = s\n    if operation == 'repeated-values-retention':\n        return [v for k,v in pairs if k=='tag']\n    if operation == 'empty-query-value':\n        return next((v for k,v in pairs if k=='q'),defaults.get('q'))\n    if operation == 'query-default-merge':\n        return {**defaults,**dict(pairs)}\n    if operation == 'fragment-null-preservation':\n        return fragment or 'absent'\n    if operation == 'state-cache-key':\n        return (route,tuple(pairs))\n    if operation == 'remove-one-query-name':\n        return [(k,v) for k,v in pairs if k!='q']\n    if operation == 'first-value-precedence':\n        return next((v for k,v in pairs if k=='q'),None)\n    if operation == 'debug-exclusion':\n        return [(k,v) for k,v in pairs if k!='debug']\n    if operation == 'explicit-query-key-set':\n        return sorted({k for k,v in pairs})\n    if operation == 'navigation-fragment-key':\n        return (route,fragment)\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('repeated-values-retention scenario 1', solve('repeated-values-retention', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), ['x','y'])\ncheck('repeated-values-retention scenario 2', solve('repeated-values-retention', ([('q','')],{'q':'default'},'/a','')), [])\ncheck('repeated-values-retention scenario 3', solve('repeated-values-retention', ([] ,{'q':'default','page':'1'},'/a',None)), [])\ncheck('repeated-values-retention scenario 4', solve('repeated-values-retention', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), [])\ncheck('repeated-values-retention scenario 5', solve('repeated-values-retention', ([('page','0'),('tag','x')],{},'/a',None)), ['x'])\ncheck('repeated-values-retention scenario 6', solve('repeated-values-retention', ([('q','a'),('q','b')],{},'/b','end')), [])\ncheck('empty-query-value scenario 1', solve('empty-query-value', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), 'a')\ncheck('empty-query-value scenario 2', solve('empty-query-value', ([('q','')],{'q':'default'},'/a','')), '')\ncheck('empty-query-value scenario 3', solve('empty-query-value', ([] ,{'q':'default','page':'1'},'/a',None)), 'default')\ncheck('empty-query-value scenario 4', solve('empty-query-value', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), '0')\ncheck('empty-query-value scenario 5', solve('empty-query-value', ([('page','0'),('tag','x')],{},'/a',None)), None)\ncheck('empty-query-value scenario 6', solve('empty-query-value', ([('q','a'),('q','b')],{},'/b','end')), 'a')\ncheck('query-default-merge scenario 1', solve('query-default-merge', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), {'q':'a','tag':'y'})\ncheck('query-default-merge scenario 2', solve('query-default-merge', ([('q','')],{'q':'default'},'/a','')), {'q':''})\ncheck('query-default-merge scenario 3', solve('query-default-merge', ([] ,{'q':'default','page':'1'},'/a',None)), {'q':'default','page':'1'})\ncheck('query-default-merge scenario 4', solve('query-default-merge', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), {'q':'0','page':'2','debug':'1'})\ncheck('query-default-merge scenario 5', solve('query-default-merge', ([('page','0'),('tag','x')],{},'/a',None)), {'page':'0','tag':'x'})\ncheck('query-default-merge scenario 6', solve('query-default-merge', ([('q','a'),('q','b')],{},'/b','end')), {'q':'b'})\ncheck('fragment-null-preservation scenario 1', solve('fragment-null-preservation', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), 'part')\ncheck('fragment-null-preservation scenario 2', solve('fragment-null-preservation', ([('q','')],{'q':'default'},'/a','')), '')\ncheck('fragment-null-preservation scenario 3', solve('fragment-null-preservation', ([] ,{'q':'default','page':'1'},'/a',None)), 'absent')\ncheck('fragment-null-preservation scenario 4', solve('fragment-null-preservation', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), 'x')\ncheck('fragment-null-preservation scenario 5', solve('fragment-null-preservation', ([('page','0'),('tag','x')],{},'/a',None)), 'absent')\ncheck('fragment-null-preservation scenario 6', solve('fragment-null-preservation', ([('q','a'),('q','b')],{},'/b','end')), 'end')\ncheck('state-cache-key scenario 1', solve('state-cache-key', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), ('/a/'+str(N),(('q','a'),('tag','x'),('tag','y'))))\ncheck('state-cache-key scenario 2', solve('state-cache-key', ([('q','')],{'q':'default'},'/a','')), ('/a',(('q',''),)))\ncheck('state-cache-key scenario 3', solve('state-cache-key', ([] ,{'q':'default','page':'1'},'/a',None)), ('/a',()))\ncheck('state-cache-key scenario 4', solve('state-cache-key', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), ('/b',(('q','0'),('page','2'),('debug','1'))))\ncheck('state-cache-key scenario 5', solve('state-cache-key', ([('page','0'),('tag','x')],{},'/a',None)), ('/a',(('page','0'),('tag','x'))))\ncheck('state-cache-key scenario 6', solve('state-cache-key', ([('q','a'),('q','b')],{},'/b','end')), ('/b',(('q','a'),('q','b'))))\ncheck('remove-one-query-name scenario 1', solve('remove-one-query-name', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), [('tag','x'),('tag','y')])\ncheck('remove-one-query-name scenario 2', solve('remove-one-query-name', ([('q','')],{'q':'default'},'/a','')), [])\ncheck('remove-one-query-name scenario 3', solve('remove-one-query-name', ([] ,{'q':'default','page':'1'},'/a',None)), [])\ncheck('remove-one-query-name scenario 4', solve('remove-one-query-name', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), [('page','2'),('debug','1')])\ncheck('remove-one-query-name scenario 5', solve('remove-one-query-name', ([('page','0'),('tag','x')],{},'/a',None)), [('page','0'),('tag','x')])\ncheck('remove-one-query-name scenario 6', solve('remove-one-query-name', ([('q','a'),('q','b')],{},'/b','end')), [])\ncheck('first-value-precedence scenario 1', solve('first-value-precedence', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), 'a')\ncheck('first-value-precedence scenario 2', solve('first-value-precedence', ([('q','')],{'q':'default'},'/a','')), '')\ncheck('first-value-precedence scenario 3', solve('first-value-precedence', ([] ,{'q':'default','page':'1'},'/a',None)), None)\ncheck('first-value-precedence scenario 4', solve('first-value-precedence', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), '0')\ncheck('first-value-precedence scenario 5', solve('first-value-precedence', ([('page','0'),('tag','x')],{},'/a',None)), None)\ncheck('first-value-precedence scenario 6', solve('first-value-precedence', ([('q','a'),('q','b')],{},'/b','end')), 'a')\ncheck('debug-exclusion scenario 1', solve('debug-exclusion', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), [('q','a'),('tag','x'),('tag','y')])\ncheck('debug-exclusion scenario 2', solve('debug-exclusion', ([('q','')],{'q':'default'},'/a','')), [('q','')])\ncheck('debug-exclusion scenario 3', solve('debug-exclusion', ([] ,{'q':'default','page':'1'},'/a',None)), [])\ncheck('debug-exclusion scenario 4', solve('debug-exclusion', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), [('q','0'),('page','2')])\ncheck('debug-exclusion scenario 5', solve('debug-exclusion', ([('page','0'),('tag','x')],{},'/a',None)), [('page','0'),('tag','x')])\ncheck('debug-exclusion scenario 6', solve('debug-exclusion', ([('q','a'),('q','b')],{},'/b','end')), [('q','a'),('q','b')])\ncheck('explicit-query-key-set scenario 1', solve('explicit-query-key-set', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), ['q','tag'])\ncheck('explicit-query-key-set scenario 2', solve('explicit-query-key-set', ([('q','')],{'q':'default'},'/a','')), ['q'])\ncheck('explicit-query-key-set scenario 3', solve('explicit-query-key-set', ([] ,{'q':'default','page':'1'},'/a',None)), [])\ncheck('explicit-query-key-set scenario 4', solve('explicit-query-key-set', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), ['debug','page','q'])\ncheck('explicit-query-key-set scenario 5', solve('explicit-query-key-set', ([('page','0'),('tag','x')],{},'/a',None)), ['page','tag'])\ncheck('explicit-query-key-set scenario 6', solve('explicit-query-key-set', ([('q','a'),('q','b')],{},'/b','end')), ['q'])\ncheck('navigation-fragment-key scenario 1', solve('navigation-fragment-key', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), ('/a/'+str(N),'part'))\ncheck('navigation-fragment-key scenario 2', solve('navigation-fragment-key', ([('q','')],{'q':'default'},'/a','')), ('/a',''))\ncheck('navigation-fragment-key scenario 3', solve('navigation-fragment-key', ([] ,{'q':'default','page':'1'},'/a',None)), ('/a',None))\ncheck('navigation-fragment-key scenario 4', solve('navigation-fragment-key', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), ('/b','x'))\ncheck('navigation-fragment-key scenario 5', solve('navigation-fragment-key', ([('page','0'),('tag','x')],{},'/a',None)), ('/a',None))\ncheck('navigation-fragment-key scenario 6', solve('navigation-fragment-key', ([('q','a'),('q','b')],{},'/b','end')), ('/b','end'))\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":"47a6968de86aa78ac2d2aa35b1b66c6c8a2f197cdd519430c5b6570b56782b57","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    pairs, defaults, route, fragment = s\n    if operation == 'repeated-values-retention':\n        return [v for k,v in pairs if k=='tag']\n    if operation == 'empty-query-value':\n        return next((v for k,v in pairs if k=='q'),defaults.get('q'))\n    if operation == 'query-default-merge':\n        return {**defaults,**dict(pairs)}\n    if operation == 'fragment-null-preservation':\n        return fragment if fragment is not None else 'absent'\n    if operation == 'state-cache-key':\n        return (route,tuple(pairs))\n    if operation == 'remove-one-query-name':\n        return [(k,v) for k,v in pairs if k!='q']\n    if operation == 'first-value-precedence':\n        return next((v for k,v in pairs if k=='q'),None)\n    if operation == 'debug-exclusion':\n        return [(k,v) for k,v in pairs if k!='debug']\n    if operation == 'explicit-query-key-set':\n        return sorted({k for k,v in pairs})\n    if operation == 'navigation-fragment-key':\n        return (route,fragment)\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('repeated-values-retention scenario 1', solve('repeated-values-retention', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), ['x','y'])\ncheck('repeated-values-retention scenario 2', solve('repeated-values-retention', ([('q','')],{'q':'default'},'/a','')), [])\ncheck('repeated-values-retention scenario 3', solve('repeated-values-retention', ([] ,{'q':'default','page':'1'},'/a',None)), [])\ncheck('repeated-values-retention scenario 4', solve('repeated-values-retention', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), [])\ncheck('repeated-values-retention scenario 5', solve('repeated-values-retention', ([('page','0'),('tag','x')],{},'/a',None)), ['x'])\ncheck('repeated-values-retention scenario 6', solve('repeated-values-retention', ([('q','a'),('q','b')],{},'/b','end')), [])\ncheck('empty-query-value scenario 1', solve('empty-query-value', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), 'a')\ncheck('empty-query-value scenario 2', solve('empty-query-value', ([('q','')],{'q':'default'},'/a','')), '')\ncheck('empty-query-value scenario 3', solve('empty-query-value', ([] ,{'q':'default','page':'1'},'/a',None)), 'default')\ncheck('empty-query-value scenario 4', solve('empty-query-value', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), '0')\ncheck('empty-query-value scenario 5', solve('empty-query-value', ([('page','0'),('tag','x')],{},'/a',None)), None)\ncheck('empty-query-value scenario 6', solve('empty-query-value', ([('q','a'),('q','b')],{},'/b','end')), 'a')\ncheck('query-default-merge scenario 1', solve('query-default-merge', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), {'q':'a','tag':'y'})\ncheck('query-default-merge scenario 2', solve('query-default-merge', ([('q','')],{'q':'default'},'/a','')), {'q':''})\ncheck('query-default-merge scenario 3', solve('query-default-merge', ([] ,{'q':'default','page':'1'},'/a',None)), {'q':'default','page':'1'})\ncheck('query-default-merge scenario 4', solve('query-default-merge', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), {'q':'0','page':'2','debug':'1'})\ncheck('query-default-merge scenario 5', solve('query-default-merge', ([('page','0'),('tag','x')],{},'/a',None)), {'page':'0','tag':'x'})\ncheck('query-default-merge scenario 6', solve('query-default-merge', ([('q','a'),('q','b')],{},'/b','end')), {'q':'b'})\ncheck('fragment-null-preservation scenario 1', solve('fragment-null-preservation', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), 'part')\ncheck('fragment-null-preservation scenario 2', solve('fragment-null-preservation', ([('q','')],{'q':'default'},'/a','')), '')\ncheck('fragment-null-preservation scenario 3', solve('fragment-null-preservation', ([] ,{'q':'default','page':'1'},'/a',None)), 'absent')\ncheck('fragment-null-preservation scenario 4', solve('fragment-null-preservation', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), 'x')\ncheck('fragment-null-preservation scenario 5', solve('fragment-null-preservation', ([('page','0'),('tag','x')],{},'/a',None)), 'absent')\ncheck('fragment-null-preservation scenario 6', solve('fragment-null-preservation', ([('q','a'),('q','b')],{},'/b','end')), 'end')\ncheck('state-cache-key scenario 1', solve('state-cache-key', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), ('/a/'+str(N),(('q','a'),('tag','x'),('tag','y'))))\ncheck('state-cache-key scenario 2', solve('state-cache-key', ([('q','')],{'q':'default'},'/a','')), ('/a',(('q',''),)))\ncheck('state-cache-key scenario 3', solve('state-cache-key', ([] ,{'q':'default','page':'1'},'/a',None)), ('/a',()))\ncheck('state-cache-key scenario 4', solve('state-cache-key', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), ('/b',(('q','0'),('page','2'),('debug','1'))))\ncheck('state-cache-key scenario 5', solve('state-cache-key', ([('page','0'),('tag','x')],{},'/a',None)), ('/a',(('page','0'),('tag','x'))))\ncheck('state-cache-key scenario 6', solve('state-cache-key', ([('q','a'),('q','b')],{},'/b','end')), ('/b',(('q','a'),('q','b'))))\ncheck('remove-one-query-name scenario 1', solve('remove-one-query-name', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), [('tag','x'),('tag','y')])\ncheck('remove-one-query-name scenario 2', solve('remove-one-query-name', ([('q','')],{'q':'default'},'/a','')), [])\ncheck('remove-one-query-name scenario 3', solve('remove-one-query-name', ([] ,{'q':'default','page':'1'},'/a',None)), [])\ncheck('remove-one-query-name scenario 4', solve('remove-one-query-name', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), [('page','2'),('debug','1')])\ncheck('remove-one-query-name scenario 5', solve('remove-one-query-name', ([('page','0'),('tag','x')],{},'/a',None)), [('page','0'),('tag','x')])\ncheck('remove-one-query-name scenario 6', solve('remove-one-query-name', ([('q','a'),('q','b')],{},'/b','end')), [])\ncheck('first-value-precedence scenario 1', solve('first-value-precedence', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), 'a')\ncheck('first-value-precedence scenario 2', solve('first-value-precedence', ([('q','')],{'q':'default'},'/a','')), '')\ncheck('first-value-precedence scenario 3', solve('first-value-precedence', ([] ,{'q':'default','page':'1'},'/a',None)), None)\ncheck('first-value-precedence scenario 4', solve('first-value-precedence', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), '0')\ncheck('first-value-precedence scenario 5', solve('first-value-precedence', ([('page','0'),('tag','x')],{},'/a',None)), None)\ncheck('first-value-precedence scenario 6', solve('first-value-precedence', ([('q','a'),('q','b')],{},'/b','end')), 'a')\ncheck('debug-exclusion scenario 1', solve('debug-exclusion', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), [('q','a'),('tag','x'),('tag','y')])\ncheck('debug-exclusion scenario 2', solve('debug-exclusion', ([('q','')],{'q':'default'},'/a','')), [('q','')])\ncheck('debug-exclusion scenario 3', solve('debug-exclusion', ([] ,{'q':'default','page':'1'},'/a',None)), [])\ncheck('debug-exclusion scenario 4', solve('debug-exclusion', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), [('q','0'),('page','2')])\ncheck('debug-exclusion scenario 5', solve('debug-exclusion', ([('page','0'),('tag','x')],{},'/a',None)), [('page','0'),('tag','x')])\ncheck('debug-exclusion scenario 6', solve('debug-exclusion', ([('q','a'),('q','b')],{},'/b','end')), [('q','a'),('q','b')])\ncheck('explicit-query-key-set scenario 1', solve('explicit-query-key-set', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), ['q','tag'])\ncheck('explicit-query-key-set scenario 2', solve('explicit-query-key-set', ([('q','')],{'q':'default'},'/a','')), ['q'])\ncheck('explicit-query-key-set scenario 3', solve('explicit-query-key-set', ([] ,{'q':'default','page':'1'},'/a',None)), [])\ncheck('explicit-query-key-set scenario 4', solve('explicit-query-key-set', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), ['debug','page','q'])\ncheck('explicit-query-key-set scenario 5', solve('explicit-query-key-set', ([('page','0'),('tag','x')],{},'/a',None)), ['page','tag'])\ncheck('explicit-query-key-set scenario 6', solve('explicit-query-key-set', ([('q','a'),('q','b')],{},'/b','end')), ['q'])\ncheck('navigation-fragment-key scenario 1', solve('navigation-fragment-key', ([('q','a'),('tag','x'),('tag','y')],{'q':'default'},'/a/'+str(N),'part')), ('/a/'+str(N),'part'))\ncheck('navigation-fragment-key scenario 2', solve('navigation-fragment-key', ([('q','')],{'q':'default'},'/a','')), ('/a',''))\ncheck('navigation-fragment-key scenario 3', solve('navigation-fragment-key', ([] ,{'q':'default','page':'1'},'/a',None)), ('/a',None))\ncheck('navigation-fragment-key scenario 4', solve('navigation-fragment-key', ([('q','0'),('page','2'),('debug','1')],{'q':'default'},'/b','x')), ('/b','x'))\ncheck('navigation-fragment-key scenario 5', solve('navigation-fragment-key', ([('page','0'),('tag','x')],{},'/a',None)), ('/a',None))\ncheck('navigation-fragment-key scenario 6', solve('navigation-fragment-key', ([('q','a'),('q','b')],{},'/b','end')), ('/b','end'))\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":"Only the explicitly specified operations and finite deterministic records are modeled; no browser or framework conformance is claimed. 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":"s3-client-state-route-query-fragment-null-preservation","generated_at":"2026-09-29T14:40:51.076492+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline client lifecycle model that isolates a state-management defect without DOM rendering or network services.","repair":"Apply the modeled fragment-null-preservation rule: `fragment if fragment is not None else 'absent'`.","root_cause":"The fragment-null-preservation client decision evaluates `fragment or 'absent'` instead of `fragment if fragment is not None else 'absent'`.","sha256":"4e683109a3c36b63fe7df3f88cf5a824c02685af952fb5f4f6debf296e4fc74e","title":"Client route-state projection: Fragment null preservation · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.732,"exit_code":1,"observations":[{"actual":["x","y"],"check":"repeated-values-retention scenario 1","expected":["x","y"],"passed":true},{"actual":[],"check":"repeated-values-retention scenario 2","expected":[],"passed":true},{"actual":[],"check":"repeated-values-retention scenario 3","expected":[],"passed":true},{"actual":[],"check":"repeated-values-retention scenario 4","expected":[],"passed":true},{"actual":["x"],"check":"repeated-values-retention scenario 5","expected":["x"],"passed":true},{"actual":[],"check":"repeated-values-retention scenario 6","expected":[],"passed":true},{"actual":"a","check":"empty-query-value scenario 1","expected":"a","passed":true},{"actual":"","check":"empty-query-value scenario 2","expected":"","passed":true},{"actual":"default","check":"empty-query-value scenario 3","expected":"default","passed":true},{"actual":"0","check":"empty-query-value scenario 4","expected":"0","passed":true},{"actual":null,"check":"empty-query-value scenario 5","expected":null,"passed":true},{"actual":"a","check":"empty-query-value scenario 6","expected":"a","passed":true},{"actual":{"q":"a","tag":"y"},"check":"query-default-merge scenario 1","expected":{"q":"a","tag":"y"},"passed":true},{"actual":{"q":""},"check":"query-default-merge scenario 2","expected":{"q":""},"passed":true},{"actual":{"page":"1","q":"default"},"check":"query-default-merge scenario 3","expected":{"page":"1","q":"default"},"passed":true},{"actual":{"debug":"1","page":"2","q":"0"},"check":"query-default-merge scenario 4","expected":{"debug":"1","page":"2","q":"0"},"passed":true},{"actual":{"page":"0","tag":"x"},"check":"query-default-merge scenario 5","expected":{"page":"0","tag":"x"},"passed":true},{"actual":{"q":"b"},"check":"query-default-merge scenario 6","expected":{"q":"b"},"passed":true},{"actual":"part","check":"fragment-null-preservation scenario 1","expected":"part","passed":true},{"actual":"","check":"fragment-null-preservation scenario 2","expected":"","passed":true},{"actual":"","check":"fragment-null-preservation scenario 3","expected":"absent","passed":false},{"actual":"x","check":"fragment-null-preservation scenario 4","expected":"x","passed":true},{"actual":"","check":"fragment-null-preservation scenario 5","expected":"absent","passed":false},{"actual":"end","check":"fragment-null-preservation scenario 6","expected":"end","passed":true},{"actual":["/a/1",[["q","a"],["tag","x"],["tag","y"]]],"check":"state-cache-key scenario 1","expected":["/a/1",[["q","a"],["tag","x"],["tag","y"]]],"passed":true},{"actual":["/a",[["q",""]]],"check":"state-cache-key scenario 2","expected":["/a",[["q",""]]],"passed":true},{"actual":["/a",[]],"check":"state-cache-key scenario 3","expected":["/a",[]],"passed":true},{"actual":["/b",[["q","0"],["page","2"],["debug","1"]]],"check":"state-cache-key scenario 4","expected":["/b",[["q","0"],["page","2"],["debug","1"]]],"passed":true},{"actual":["/a",[["page","0"],["tag","x"]]],"check":"state-cache-key scenario 5","expected":["/a",[["page","0"],["tag","x"]]],"passed":true},{"actual":["/b",[["q","a"],["q","b"]]],"check":"state-cache-key scenario 6","expected":["/b",[["q","a"],["q","b"]]],"passed":true},{"actual":[["tag","x"],["tag","y"]],"check":"remove-one-query-name scenario 1","expected":[["tag","x"],["tag","y"]],"passed":true},{"actual":[],"check":"remove-one-query-name scenario 2","expected":[],"passed":true},{"actual":[],"check":"remove-one-query-name scenario 3","expected":[],"passed":true},{"actual":[["page","2"],["debug","1"]],"check":"remove-one-query-name scenario 4","expected":[["page","2"],["debug","1"]],"passed":true},{"actual":[["page","0"],["tag","x"]],"check":"remove-one-query-name scenario 5","expected":[["page","0"],["tag","x"]],"passed":true},{"actual":[],"check":"remove-one-query-name scenario 6","expected":[],"passed":true},{"actual":"a","check":"first-value-precedence scenario 1","expected":"a","passed":true},{"actual":"","check":"first-value-precedence scenario 2","expected":"","passed":true},{"actual":null,"check":"first-value-precedence scenario 3","expected":null,"passed":true},{"actual":"0","check":"first-value-precedence scenario 4","expected":"0","passed":true},{"actual":null,"check":"first-value-precedence scenario 5","expected":null,"passed":true},{"actual":"a","check":"first-value-precedence scenario 6","expected":"a","passed":true},{"actual":[["q","a"],["tag","x"],["tag","y"]],"check":"debug-exclusion scenario 1","expected":[["q","a"],["tag","x"],["tag","y"]],"passed":true},{"actual":[["q",""]],"check":"debug-exclusion scenario 2","expected":[["q",""]],"passed":true},{"actual":[],"check":"debug-exclusion scenario 3","expected":[],"passed":true},{"actual":[["q","0"],["page","2"]],"check":"debug-exclusion scenario 4","expected":[["q","0"],["page","2"]],"passed":true},{"actual":[["page","0"],["tag","x"]],"check":"debug-exclusion scenario 5","expected":[["page","0"],["tag","x"]],"passed":true},{"actual":[["q","a"],["q","b"]],"check":"debug-exclusion scenario 6","expected":[["q","a"],["q","b"]],"passed":true},{"actual":["q","tag"],"check":"explicit-query-key-set scenario 1","expected":["q","tag"],"passed":true},{"actual":["q"],"check":"explicit-query-key-set scenario 2","expected":["q"],"passed":true},{"actual":[],"check":"explicit-query-key-set scenario 3","expected":[],"passed":true},{"actual":["debug","page","q"],"check":"explicit-query-key-set scenario 4","expected":["debug","page","q"],"passed":true},{"actual":["page","tag"],"check":"explicit-query-key-set scenario 5","expected":["page","tag"],"passed":true},{"actual":["q"],"check":"explicit-query-key-set scenario 6","expected":["q"],"passed":true},{"actual":["/a/1","part"],"check":"navigation-fragment-key scenario 1","expected":["/a/1","part"],"passed":true},{"actual":["/a",""],"check":"navigation-fragment-key scenario 2","expected":["/a",""],"passed":true},{"actual":["/a",null],"check":"navigation-fragment-key scenario 3","expected":["/a",null],"passed":true},{"actual":["/b","x"],"check":"navigation-fragment-key scenario 4","expected":["/b","x"],"passed":true},{"actual":["/a",null],"check":"navigation-fragment-key scenario 5","expected":["/a",null],"passed":true},{"actual":["/b","end"],"check":"navigation-fragment-key scenario 6","expected":["/b","end"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"repeated-values-retention scenario 1\", \"actual\": [\"x\", \"y\"], \"expected\": [\"x\", \"y\"], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 5\", \"actual\": [\"x\"], \"expected\": [\"x\"], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty-query-value scenario 1\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"empty-query-value scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"empty-query-value scenario 3\", \"actual\": \"default\", \"expected\": \"default\", \"passed\": true}, {\"check\": \"empty-query-value scenario 4\", \"actual\": \"0\", \"expected\": \"0\", \"passed\": true}, {\"check\": \"empty-query-value scenario 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"empty-query-value scenario 6\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"query-default-merge scenario 1\", \"actual\": {\"q\": \"a\", \"tag\": \"y\"}, \"expected\": {\"q\": \"a\", \"tag\": \"y\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 2\", \"actual\": {\"q\": \"\"}, \"expected\": {\"q\": \"\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 3\", \"actual\": {\"q\": \"default\", \"page\": \"1\"}, \"expected\": {\"q\": \"default\", \"page\": \"1\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 4\", \"actual\": {\"q\": \"0\", \"page\": \"2\", \"debug\": \"1\"}, \"expected\": {\"q\": \"0\", \"page\": \"2\", \"debug\": \"1\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 5\", \"actual\": {\"page\": \"0\", \"tag\": \"x\"}, \"expected\": {\"page\": \"0\", \"tag\": \"x\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 6\", \"actual\": {\"q\": \"b\"}, \"expected\": {\"q\": \"b\"}, \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 1\", \"actual\": \"part\", \"expected\": \"part\", \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 3\", \"actual\": \"\", \"expected\": \"absent\", \"passed\": false}, {\"check\": \"fragment-null-preservation scenario 4\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 5\", \"actual\": \"\", \"expected\": \"absent\", \"passed\": false}, {\"check\": \"fragment-null-preservation scenario 6\", \"actual\": \"end\", \"expected\": \"end\", \"passed\": true}, {\"check\": \"state-cache-key scenario 1\", \"actual\": [\"/a/1\", [[\"q\", \"a\"], [\"tag\", \"x\"], [\"tag\", \"y\"]]], \"expected\": [\"/a/1\", [[\"q\", \"a\"], [\"tag\", \"x\"], [\"tag\", \"y\"]]], \"passed\": true}, {\"check\": \"state-cache-key scenario 2\", \"actual\": [\"/a\", [[\"q\", \"\"]]], \"expected\": [\"/a\", [[\"q\", \"\"]]], \"passed\": true}, {\"check\": \"state-cache-key scenario 3\", \"actual\": [\"/a\", []], \"expected\": [\"/a\", []], \"passed\": true}, {\"check\": \"state-cache-key scenario 4\", \"actual\": [\"/b\", [[\"q\", \"0\"], [\"page\", \"2\"], [\"debug\", \"1\"]]], \"expected\": [\"/b\", [[\"q\", \"0\"], [\"page\", \"2\"], [\"debug\", \"1\"]]], \"passed\": true}, {\"check\": \"state-cache-key scenario 5\", \"actual\": [\"/a\", [[\"page\", \"0\"], [\"tag\", \"x\"]]], \"expected\": [\"/a\", [[\"page\", \"0\"], [\"tag\", \"x\"]]], \"passed\": true}, {\"check\": \"state-cache-key scenario 6\", \"actual\": [\"/b\", [[\"q\", \"a\"], [\"q\", \"b\"]]], \"expected\": [\"/b\", [[\"q\", \"a\"], [\"q\", \"b\"]]], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 1\", \"actual\": [[\"tag\", \"x\"], [\"tag\", \"y\"]], \"expected\": [[\"tag\", \"x\"], [\"tag\", \"y\"]], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 4\", \"actual\": [[\"page\", \"2\"], [\"debug\", \"1\"]], \"expected\": [[\"page\", \"2\"], [\"debug\", \"1\"]], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 5\", \"actual\": [[\"page\", \"0\"], [\"tag\", \"x\"]], \"expected\": [[\"page\", \"0\"], [\"tag\", \"x\"]], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"first-value-precedence scenario 1\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"first-value-precedence scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"first-value-precedence scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"first-value-precedence scenario 4\", \"actual\": \"0\", \"expected\": \"0\", \"passed\": true}, {\"check\": \"first-value-precedence scenario 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"first-value-precedence scenario 6\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"debug-exclusion scenario 1\", \"actual\": [[\"q\", \"a\"], [\"tag\", \"x\"], [\"tag\", \"y\"]], \"expected\": [[\"q\", \"a\"], [\"tag\", \"x\"], [\"tag\", \"y\"]], \"passed\": true}, {\"check\": \"debug-exclusion scenario 2\", \"actual\": [[\"q\", \"\"]], \"expected\": [[\"q\", \"\"]], \"passed\": true}, {\"check\": \"debug-exclusion scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"debug-exclusion scenario 4\", \"actual\": [[\"q\", \"0\"], [\"page\", \"2\"]], \"expected\": [[\"q\", \"0\"], [\"page\", \"2\"]], \"passed\": true}, {\"check\": \"debug-exclusion scenario 5\", \"actual\": [[\"page\", \"0\"], [\"tag\", \"x\"]], \"expected\": [[\"page\", \"0\"], [\"tag\", \"x\"]], \"passed\": true}, {\"check\": \"debug-exclusion scenario 6\", \"actual\": [[\"q\", \"a\"], [\"q\", \"b\"]], \"expected\": [[\"q\", \"a\"], [\"q\", \"b\"]], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 1\", \"actual\": [\"q\", \"tag\"], \"expected\": [\"q\", \"tag\"], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 2\", \"actual\": [\"q\"], \"expected\": [\"q\"], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 4\", \"actual\": [\"debug\", \"page\", \"q\"], \"expected\": [\"debug\", \"page\", \"q\"], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 5\", \"actual\": [\"page\", \"tag\"], \"expected\": [\"page\", \"tag\"], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 6\", \"actual\": [\"q\"], \"expected\": [\"q\"], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 1\", \"actual\": [\"/a/1\", \"part\"], \"expected\": [\"/a/1\", \"part\"], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 2\", \"actual\": [\"/a\", \"\"], \"expected\": [\"/a\", \"\"], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 3\", \"actual\": [\"/a\", null], \"expected\": [\"/a\", null], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 4\", \"actual\": [\"/b\", \"x\"], \"expected\": [\"/b\", \"x\"], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 5\", \"actual\": [\"/a\", null], \"expected\": [\"/a\", null], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 6\", \"actual\": [\"/b\", \"end\"], \"expected\": [\"/b\", \"end\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.573,"exit_code":1,"observations":[{"actual":["x","y"],"check":"repeated-values-retention scenario 1","expected":["x","y"],"passed":true},{"actual":[],"check":"repeated-values-retention scenario 2","expected":[],"passed":true},{"actual":[],"check":"repeated-values-retention scenario 3","expected":[],"passed":true},{"actual":[],"check":"repeated-values-retention scenario 4","expected":[],"passed":true},{"actual":["x"],"check":"repeated-values-retention scenario 5","expected":["x"],"passed":true},{"actual":[],"check":"repeated-values-retention scenario 6","expected":[],"passed":true},{"actual":"a","check":"empty-query-value scenario 1","expected":"a","passed":true},{"actual":"","check":"empty-query-value scenario 2","expected":"","passed":true},{"actual":"default","check":"empty-query-value scenario 3","expected":"default","passed":true},{"actual":"0","check":"empty-query-value scenario 4","expected":"0","passed":true},{"actual":null,"check":"empty-query-value scenario 5","expected":null,"passed":true},{"actual":"a","check":"empty-query-value scenario 6","expected":"a","passed":true},{"actual":{"q":"a","tag":"y"},"check":"query-default-merge scenario 1","expected":{"q":"a","tag":"y"},"passed":true},{"actual":{"q":""},"check":"query-default-merge scenario 2","expected":{"q":""},"passed":true},{"actual":{"page":"1","q":"default"},"check":"query-default-merge scenario 3","expected":{"page":"1","q":"default"},"passed":true},{"actual":{"debug":"1","page":"2","q":"0"},"check":"query-default-merge scenario 4","expected":{"debug":"1","page":"2","q":"0"},"passed":true},{"actual":{"page":"0","tag":"x"},"check":"query-default-merge scenario 5","expected":{"page":"0","tag":"x"},"passed":true},{"actual":{"q":"b"},"check":"query-default-merge scenario 6","expected":{"q":"b"},"passed":true},{"actual":"part","check":"fragment-null-preservation scenario 1","expected":"part","passed":true},{"actual":"absent","check":"fragment-null-preservation scenario 2","expected":"","passed":false},{"actual":"absent","check":"fragment-null-preservation scenario 3","expected":"absent","passed":true},{"actual":"x","check":"fragment-null-preservation scenario 4","expected":"x","passed":true},{"actual":"absent","check":"fragment-null-preservation scenario 5","expected":"absent","passed":true},{"actual":"end","check":"fragment-null-preservation scenario 6","expected":"end","passed":true},{"actual":["/a/1",[["q","a"],["tag","x"],["tag","y"]]],"check":"state-cache-key scenario 1","expected":["/a/1",[["q","a"],["tag","x"],["tag","y"]]],"passed":true},{"actual":["/a",[["q",""]]],"check":"state-cache-key scenario 2","expected":["/a",[["q",""]]],"passed":true},{"actual":["/a",[]],"check":"state-cache-key scenario 3","expected":["/a",[]],"passed":true},{"actual":["/b",[["q","0"],["page","2"],["debug","1"]]],"check":"state-cache-key scenario 4","expected":["/b",[["q","0"],["page","2"],["debug","1"]]],"passed":true},{"actual":["/a",[["page","0"],["tag","x"]]],"check":"state-cache-key scenario 5","expected":["/a",[["page","0"],["tag","x"]]],"passed":true},{"actual":["/b",[["q","a"],["q","b"]]],"check":"state-cache-key scenario 6","expected":["/b",[["q","a"],["q","b"]]],"passed":true},{"actual":[["tag","x"],["tag","y"]],"check":"remove-one-query-name scenario 1","expected":[["tag","x"],["tag","y"]],"passed":true},{"actual":[],"check":"remove-one-query-name scenario 2","expected":[],"passed":true},{"actual":[],"check":"remove-one-query-name scenario 3","expected":[],"passed":true},{"actual":[["page","2"],["debug","1"]],"check":"remove-one-query-name scenario 4","expected":[["page","2"],["debug","1"]],"passed":true},{"actual":[["page","0"],["tag","x"]],"check":"remove-one-query-name scenario 5","expected":[["page","0"],["tag","x"]],"passed":true},{"actual":[],"check":"remove-one-query-name scenario 6","expected":[],"passed":true},{"actual":"a","check":"first-value-precedence scenario 1","expected":"a","passed":true},{"actual":"","check":"first-value-precedence scenario 2","expected":"","passed":true},{"actual":null,"check":"first-value-precedence scenario 3","expected":null,"passed":true},{"actual":"0","check":"first-value-precedence scenario 4","expected":"0","passed":true},{"actual":null,"check":"first-value-precedence scenario 5","expected":null,"passed":true},{"actual":"a","check":"first-value-precedence scenario 6","expected":"a","passed":true},{"actual":[["q","a"],["tag","x"],["tag","y"]],"check":"debug-exclusion scenario 1","expected":[["q","a"],["tag","x"],["tag","y"]],"passed":true},{"actual":[["q",""]],"check":"debug-exclusion scenario 2","expected":[["q",""]],"passed":true},{"actual":[],"check":"debug-exclusion scenario 3","expected":[],"passed":true},{"actual":[["q","0"],["page","2"]],"check":"debug-exclusion scenario 4","expected":[["q","0"],["page","2"]],"passed":true},{"actual":[["page","0"],["tag","x"]],"check":"debug-exclusion scenario 5","expected":[["page","0"],["tag","x"]],"passed":true},{"actual":[["q","a"],["q","b"]],"check":"debug-exclusion scenario 6","expected":[["q","a"],["q","b"]],"passed":true},{"actual":["q","tag"],"check":"explicit-query-key-set scenario 1","expected":["q","tag"],"passed":true},{"actual":["q"],"check":"explicit-query-key-set scenario 2","expected":["q"],"passed":true},{"actual":[],"check":"explicit-query-key-set scenario 3","expected":[],"passed":true},{"actual":["debug","page","q"],"check":"explicit-query-key-set scenario 4","expected":["debug","page","q"],"passed":true},{"actual":["page","tag"],"check":"explicit-query-key-set scenario 5","expected":["page","tag"],"passed":true},{"actual":["q"],"check":"explicit-query-key-set scenario 6","expected":["q"],"passed":true},{"actual":["/a/1","part"],"check":"navigation-fragment-key scenario 1","expected":["/a/1","part"],"passed":true},{"actual":["/a",""],"check":"navigation-fragment-key scenario 2","expected":["/a",""],"passed":true},{"actual":["/a",null],"check":"navigation-fragment-key scenario 3","expected":["/a",null],"passed":true},{"actual":["/b","x"],"check":"navigation-fragment-key scenario 4","expected":["/b","x"],"passed":true},{"actual":["/a",null],"check":"navigation-fragment-key scenario 5","expected":["/a",null],"passed":true},{"actual":["/b","end"],"check":"navigation-fragment-key scenario 6","expected":["/b","end"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"repeated-values-retention scenario 1\", \"actual\": [\"x\", \"y\"], \"expected\": [\"x\", \"y\"], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 5\", \"actual\": [\"x\"], \"expected\": [\"x\"], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty-query-value scenario 1\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"empty-query-value scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"empty-query-value scenario 3\", \"actual\": \"default\", \"expected\": \"default\", \"passed\": true}, {\"check\": \"empty-query-value scenario 4\", \"actual\": \"0\", \"expected\": \"0\", \"passed\": true}, {\"check\": \"empty-query-value scenario 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"empty-query-value scenario 6\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"query-default-merge scenario 1\", \"actual\": {\"q\": \"a\", \"tag\": \"y\"}, \"expected\": {\"q\": \"a\", \"tag\": \"y\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 2\", \"actual\": {\"q\": \"\"}, \"expected\": {\"q\": \"\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 3\", \"actual\": {\"q\": \"default\", \"page\": \"1\"}, \"expected\": {\"q\": \"default\", \"page\": \"1\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 4\", \"actual\": {\"q\": \"0\", \"page\": \"2\", \"debug\": \"1\"}, \"expected\": {\"q\": \"0\", \"page\": \"2\", \"debug\": \"1\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 5\", \"actual\": {\"page\": \"0\", \"tag\": \"x\"}, \"expected\": {\"page\": \"0\", \"tag\": \"x\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 6\", \"actual\": {\"q\": \"b\"}, \"expected\": {\"q\": \"b\"}, \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 1\", \"actual\": \"part\", \"expected\": \"part\", \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 2\", \"actual\": \"absent\", \"expected\": \"\", \"passed\": false}, {\"check\": \"fragment-null-preservation scenario 3\", \"actual\": \"absent\", \"expected\": \"absent\", \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 4\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 5\", \"actual\": \"absent\", \"expected\": \"absent\", \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 6\", \"actual\": \"end\", \"expected\": \"end\", \"passed\": true}, {\"check\": \"state-cache-key scenario 1\", \"actual\": [\"/a/1\", [[\"q\", \"a\"], [\"tag\", \"x\"], [\"tag\", \"y\"]]], \"expected\": [\"/a/1\", [[\"q\", \"a\"], [\"tag\", \"x\"], [\"tag\", \"y\"]]], \"passed\": true}, {\"check\": \"state-cache-key scenario 2\", \"actual\": [\"/a\", [[\"q\", \"\"]]], \"expected\": [\"/a\", [[\"q\", \"\"]]], \"passed\": true}, {\"check\": \"state-cache-key scenario 3\", \"actual\": [\"/a\", []], \"expected\": [\"/a\", []], \"passed\": true}, {\"check\": \"state-cache-key scenario 4\", \"actual\": [\"/b\", [[\"q\", \"0\"], [\"page\", \"2\"], [\"debug\", \"1\"]]], \"expected\": [\"/b\", [[\"q\", \"0\"], [\"page\", \"2\"], [\"debug\", \"1\"]]], \"passed\": true}, {\"check\": \"state-cache-key scenario 5\", \"actual\": [\"/a\", [[\"page\", \"0\"], [\"tag\", \"x\"]]], \"expected\": [\"/a\", [[\"page\", \"0\"], [\"tag\", \"x\"]]], \"passed\": true}, {\"check\": \"state-cache-key scenario 6\", \"actual\": [\"/b\", [[\"q\", \"a\"], [\"q\", \"b\"]]], \"expected\": [\"/b\", [[\"q\", \"a\"], [\"q\", \"b\"]]], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 1\", \"actual\": [[\"tag\", \"x\"], [\"tag\", \"y\"]], \"expected\": [[\"tag\", \"x\"], [\"tag\", \"y\"]], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 4\", \"actual\": [[\"page\", \"2\"], [\"debug\", \"1\"]], \"expected\": [[\"page\", \"2\"], [\"debug\", \"1\"]], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 5\", \"actual\": [[\"page\", \"0\"], [\"tag\", \"x\"]], \"expected\": [[\"page\", \"0\"], [\"tag\", \"x\"]], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"first-value-precedence scenario 1\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"first-value-precedence scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"first-value-precedence scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"first-value-precedence scenario 4\", \"actual\": \"0\", \"expected\": \"0\", \"passed\": true}, {\"check\": \"first-value-precedence scenario 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"first-value-precedence scenario 6\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"debug-exclusion scenario 1\", \"actual\": [[\"q\", \"a\"], [\"tag\", \"x\"], [\"tag\", \"y\"]], \"expected\": [[\"q\", \"a\"], [\"tag\", \"x\"], [\"tag\", \"y\"]], \"passed\": true}, {\"check\": \"debug-exclusion scenario 2\", \"actual\": [[\"q\", \"\"]], \"expected\": [[\"q\", \"\"]], \"passed\": true}, {\"check\": \"debug-exclusion scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"debug-exclusion scenario 4\", \"actual\": [[\"q\", \"0\"], [\"page\", \"2\"]], \"expected\": [[\"q\", \"0\"], [\"page\", \"2\"]], \"passed\": true}, {\"check\": \"debug-exclusion scenario 5\", \"actual\": [[\"page\", \"0\"], [\"tag\", \"x\"]], \"expected\": [[\"page\", \"0\"], [\"tag\", \"x\"]], \"passed\": true}, {\"check\": \"debug-exclusion scenario 6\", \"actual\": [[\"q\", \"a\"], [\"q\", \"b\"]], \"expected\": [[\"q\", \"a\"], [\"q\", \"b\"]], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 1\", \"actual\": [\"q\", \"tag\"], \"expected\": [\"q\", \"tag\"], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 2\", \"actual\": [\"q\"], \"expected\": [\"q\"], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 4\", \"actual\": [\"debug\", \"page\", \"q\"], \"expected\": [\"debug\", \"page\", \"q\"], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 5\", \"actual\": [\"page\", \"tag\"], \"expected\": [\"page\", \"tag\"], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 6\", \"actual\": [\"q\"], \"expected\": [\"q\"], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 1\", \"actual\": [\"/a/1\", \"part\"], \"expected\": [\"/a/1\", \"part\"], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 2\", \"actual\": [\"/a\", \"\"], \"expected\": [\"/a\", \"\"], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 3\", \"actual\": [\"/a\", null], \"expected\": [\"/a\", null], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 4\", \"actual\": [\"/b\", \"x\"], \"expected\": [\"/b\", \"x\"], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 5\", \"actual\": [\"/a\", null], \"expected\": [\"/a\", null], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 6\", \"actual\": [\"/b\", \"end\"], \"expected\": [\"/b\", \"end\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.608,"exit_code":0,"observations":[{"actual":["x","y"],"check":"repeated-values-retention scenario 1","expected":["x","y"],"passed":true},{"actual":[],"check":"repeated-values-retention scenario 2","expected":[],"passed":true},{"actual":[],"check":"repeated-values-retention scenario 3","expected":[],"passed":true},{"actual":[],"check":"repeated-values-retention scenario 4","expected":[],"passed":true},{"actual":["x"],"check":"repeated-values-retention scenario 5","expected":["x"],"passed":true},{"actual":[],"check":"repeated-values-retention scenario 6","expected":[],"passed":true},{"actual":"a","check":"empty-query-value scenario 1","expected":"a","passed":true},{"actual":"","check":"empty-query-value scenario 2","expected":"","passed":true},{"actual":"default","check":"empty-query-value scenario 3","expected":"default","passed":true},{"actual":"0","check":"empty-query-value scenario 4","expected":"0","passed":true},{"actual":null,"check":"empty-query-value scenario 5","expected":null,"passed":true},{"actual":"a","check":"empty-query-value scenario 6","expected":"a","passed":true},{"actual":{"q":"a","tag":"y"},"check":"query-default-merge scenario 1","expected":{"q":"a","tag":"y"},"passed":true},{"actual":{"q":""},"check":"query-default-merge scenario 2","expected":{"q":""},"passed":true},{"actual":{"page":"1","q":"default"},"check":"query-default-merge scenario 3","expected":{"page":"1","q":"default"},"passed":true},{"actual":{"debug":"1","page":"2","q":"0"},"check":"query-default-merge scenario 4","expected":{"debug":"1","page":"2","q":"0"},"passed":true},{"actual":{"page":"0","tag":"x"},"check":"query-default-merge scenario 5","expected":{"page":"0","tag":"x"},"passed":true},{"actual":{"q":"b"},"check":"query-default-merge scenario 6","expected":{"q":"b"},"passed":true},{"actual":"part","check":"fragment-null-preservation scenario 1","expected":"part","passed":true},{"actual":"","check":"fragment-null-preservation scenario 2","expected":"","passed":true},{"actual":"absent","check":"fragment-null-preservation scenario 3","expected":"absent","passed":true},{"actual":"x","check":"fragment-null-preservation scenario 4","expected":"x","passed":true},{"actual":"absent","check":"fragment-null-preservation scenario 5","expected":"absent","passed":true},{"actual":"end","check":"fragment-null-preservation scenario 6","expected":"end","passed":true},{"actual":["/a/1",[["q","a"],["tag","x"],["tag","y"]]],"check":"state-cache-key scenario 1","expected":["/a/1",[["q","a"],["tag","x"],["tag","y"]]],"passed":true},{"actual":["/a",[["q",""]]],"check":"state-cache-key scenario 2","expected":["/a",[["q",""]]],"passed":true},{"actual":["/a",[]],"check":"state-cache-key scenario 3","expected":["/a",[]],"passed":true},{"actual":["/b",[["q","0"],["page","2"],["debug","1"]]],"check":"state-cache-key scenario 4","expected":["/b",[["q","0"],["page","2"],["debug","1"]]],"passed":true},{"actual":["/a",[["page","0"],["tag","x"]]],"check":"state-cache-key scenario 5","expected":["/a",[["page","0"],["tag","x"]]],"passed":true},{"actual":["/b",[["q","a"],["q","b"]]],"check":"state-cache-key scenario 6","expected":["/b",[["q","a"],["q","b"]]],"passed":true},{"actual":[["tag","x"],["tag","y"]],"check":"remove-one-query-name scenario 1","expected":[["tag","x"],["tag","y"]],"passed":true},{"actual":[],"check":"remove-one-query-name scenario 2","expected":[],"passed":true},{"actual":[],"check":"remove-one-query-name scenario 3","expected":[],"passed":true},{"actual":[["page","2"],["debug","1"]],"check":"remove-one-query-name scenario 4","expected":[["page","2"],["debug","1"]],"passed":true},{"actual":[["page","0"],["tag","x"]],"check":"remove-one-query-name scenario 5","expected":[["page","0"],["tag","x"]],"passed":true},{"actual":[],"check":"remove-one-query-name scenario 6","expected":[],"passed":true},{"actual":"a","check":"first-value-precedence scenario 1","expected":"a","passed":true},{"actual":"","check":"first-value-precedence scenario 2","expected":"","passed":true},{"actual":null,"check":"first-value-precedence scenario 3","expected":null,"passed":true},{"actual":"0","check":"first-value-precedence scenario 4","expected":"0","passed":true},{"actual":null,"check":"first-value-precedence scenario 5","expected":null,"passed":true},{"actual":"a","check":"first-value-precedence scenario 6","expected":"a","passed":true},{"actual":[["q","a"],["tag","x"],["tag","y"]],"check":"debug-exclusion scenario 1","expected":[["q","a"],["tag","x"],["tag","y"]],"passed":true},{"actual":[["q",""]],"check":"debug-exclusion scenario 2","expected":[["q",""]],"passed":true},{"actual":[],"check":"debug-exclusion scenario 3","expected":[],"passed":true},{"actual":[["q","0"],["page","2"]],"check":"debug-exclusion scenario 4","expected":[["q","0"],["page","2"]],"passed":true},{"actual":[["page","0"],["tag","x"]],"check":"debug-exclusion scenario 5","expected":[["page","0"],["tag","x"]],"passed":true},{"actual":[["q","a"],["q","b"]],"check":"debug-exclusion scenario 6","expected":[["q","a"],["q","b"]],"passed":true},{"actual":["q","tag"],"check":"explicit-query-key-set scenario 1","expected":["q","tag"],"passed":true},{"actual":["q"],"check":"explicit-query-key-set scenario 2","expected":["q"],"passed":true},{"actual":[],"check":"explicit-query-key-set scenario 3","expected":[],"passed":true},{"actual":["debug","page","q"],"check":"explicit-query-key-set scenario 4","expected":["debug","page","q"],"passed":true},{"actual":["page","tag"],"check":"explicit-query-key-set scenario 5","expected":["page","tag"],"passed":true},{"actual":["q"],"check":"explicit-query-key-set scenario 6","expected":["q"],"passed":true},{"actual":["/a/1","part"],"check":"navigation-fragment-key scenario 1","expected":["/a/1","part"],"passed":true},{"actual":["/a",""],"check":"navigation-fragment-key scenario 2","expected":["/a",""],"passed":true},{"actual":["/a",null],"check":"navigation-fragment-key scenario 3","expected":["/a",null],"passed":true},{"actual":["/b","x"],"check":"navigation-fragment-key scenario 4","expected":["/b","x"],"passed":true},{"actual":["/a",null],"check":"navigation-fragment-key scenario 5","expected":["/a",null],"passed":true},{"actual":["/b","end"],"check":"navigation-fragment-key scenario 6","expected":["/b","end"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"repeated-values-retention scenario 1\", \"actual\": [\"x\", \"y\"], \"expected\": [\"x\", \"y\"], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 5\", \"actual\": [\"x\"], \"expected\": [\"x\"], \"passed\": true}, {\"check\": \"repeated-values-retention scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty-query-value scenario 1\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"empty-query-value scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"empty-query-value scenario 3\", \"actual\": \"default\", \"expected\": \"default\", \"passed\": true}, {\"check\": \"empty-query-value scenario 4\", \"actual\": \"0\", \"expected\": \"0\", \"passed\": true}, {\"check\": \"empty-query-value scenario 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"empty-query-value scenario 6\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"query-default-merge scenario 1\", \"actual\": {\"q\": \"a\", \"tag\": \"y\"}, \"expected\": {\"q\": \"a\", \"tag\": \"y\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 2\", \"actual\": {\"q\": \"\"}, \"expected\": {\"q\": \"\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 3\", \"actual\": {\"q\": \"default\", \"page\": \"1\"}, \"expected\": {\"q\": \"default\", \"page\": \"1\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 4\", \"actual\": {\"q\": \"0\", \"page\": \"2\", \"debug\": \"1\"}, \"expected\": {\"q\": \"0\", \"page\": \"2\", \"debug\": \"1\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 5\", \"actual\": {\"page\": \"0\", \"tag\": \"x\"}, \"expected\": {\"page\": \"0\", \"tag\": \"x\"}, \"passed\": true}, {\"check\": \"query-default-merge scenario 6\", \"actual\": {\"q\": \"b\"}, \"expected\": {\"q\": \"b\"}, \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 1\", \"actual\": \"part\", \"expected\": \"part\", \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 3\", \"actual\": \"absent\", \"expected\": \"absent\", \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 4\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 5\", \"actual\": \"absent\", \"expected\": \"absent\", \"passed\": true}, {\"check\": \"fragment-null-preservation scenario 6\", \"actual\": \"end\", \"expected\": \"end\", \"passed\": true}, {\"check\": \"state-cache-key scenario 1\", \"actual\": [\"/a/1\", [[\"q\", \"a\"], [\"tag\", \"x\"], [\"tag\", \"y\"]]], \"expected\": [\"/a/1\", [[\"q\", \"a\"], [\"tag\", \"x\"], [\"tag\", \"y\"]]], \"passed\": true}, {\"check\": \"state-cache-key scenario 2\", \"actual\": [\"/a\", [[\"q\", \"\"]]], \"expected\": [\"/a\", [[\"q\", \"\"]]], \"passed\": true}, {\"check\": \"state-cache-key scenario 3\", \"actual\": [\"/a\", []], \"expected\": [\"/a\", []], \"passed\": true}, {\"check\": \"state-cache-key scenario 4\", \"actual\": [\"/b\", [[\"q\", \"0\"], [\"page\", \"2\"], [\"debug\", \"1\"]]], \"expected\": [\"/b\", [[\"q\", \"0\"], [\"page\", \"2\"], [\"debug\", \"1\"]]], \"passed\": true}, {\"check\": \"state-cache-key scenario 5\", \"actual\": [\"/a\", [[\"page\", \"0\"], [\"tag\", \"x\"]]], \"expected\": [\"/a\", [[\"page\", \"0\"], [\"tag\", \"x\"]]], \"passed\": true}, {\"check\": \"state-cache-key scenario 6\", \"actual\": [\"/b\", [[\"q\", \"a\"], [\"q\", \"b\"]]], \"expected\": [\"/b\", [[\"q\", \"a\"], [\"q\", \"b\"]]], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 1\", \"actual\": [[\"tag\", \"x\"], [\"tag\", \"y\"]], \"expected\": [[\"tag\", \"x\"], [\"tag\", \"y\"]], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 4\", \"actual\": [[\"page\", \"2\"], [\"debug\", \"1\"]], \"expected\": [[\"page\", \"2\"], [\"debug\", \"1\"]], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 5\", \"actual\": [[\"page\", \"0\"], [\"tag\", \"x\"]], \"expected\": [[\"page\", \"0\"], [\"tag\", \"x\"]], \"passed\": true}, {\"check\": \"remove-one-query-name scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"first-value-precedence scenario 1\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"first-value-precedence scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"first-value-precedence scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"first-value-precedence scenario 4\", \"actual\": \"0\", \"expected\": \"0\", \"passed\": true}, {\"check\": \"first-value-precedence scenario 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"first-value-precedence scenario 6\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"debug-exclusion scenario 1\", \"actual\": [[\"q\", \"a\"], [\"tag\", \"x\"], [\"tag\", \"y\"]], \"expected\": [[\"q\", \"a\"], [\"tag\", \"x\"], [\"tag\", \"y\"]], \"passed\": true}, {\"check\": \"debug-exclusion scenario 2\", \"actual\": [[\"q\", \"\"]], \"expected\": [[\"q\", \"\"]], \"passed\": true}, {\"check\": \"debug-exclusion scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"debug-exclusion scenario 4\", \"actual\": [[\"q\", \"0\"], [\"page\", \"2\"]], \"expected\": [[\"q\", \"0\"], [\"page\", \"2\"]], \"passed\": true}, {\"check\": \"debug-exclusion scenario 5\", \"actual\": [[\"page\", \"0\"], [\"tag\", \"x\"]], \"expected\": [[\"page\", \"0\"], [\"tag\", \"x\"]], \"passed\": true}, {\"check\": \"debug-exclusion scenario 6\", \"actual\": [[\"q\", \"a\"], [\"q\", \"b\"]], \"expected\": [[\"q\", \"a\"], [\"q\", \"b\"]], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 1\", \"actual\": [\"q\", \"tag\"], \"expected\": [\"q\", \"tag\"], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 2\", \"actual\": [\"q\"], \"expected\": [\"q\"], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 4\", \"actual\": [\"debug\", \"page\", \"q\"], \"expected\": [\"debug\", \"page\", \"q\"], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 5\", \"actual\": [\"page\", \"tag\"], \"expected\": [\"page\", \"tag\"], \"passed\": true}, {\"check\": \"explicit-query-key-set scenario 6\", \"actual\": [\"q\"], \"expected\": [\"q\"], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 1\", \"actual\": [\"/a/1\", \"part\"], \"expected\": [\"/a/1\", \"part\"], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 2\", \"actual\": [\"/a\", \"\"], \"expected\": [\"/a\", \"\"], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 3\", \"actual\": [\"/a\", null], \"expected\": [\"/a\", null], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 4\", \"actual\": [\"/b\", \"x\"], \"expected\": [\"/b\", \"x\"], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 5\", \"actual\": [\"/a\", null], \"expected\": [\"/a\", null], \"passed\": true}, {\"check\": \"navigation-fragment-key scenario 6\", \"actual\": [\"/b\", \"end\"], \"expected\": [\"/b\", \"end\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}