{"abstract":"Push resets position.","category":"Client state","checks":60,"contract":"Scroll state belongs to a history entry, not its repeated URL. Pop restores after layout, pushes start at top, explicit anchors including the empty anchor take precedence, and positions clamp to the scrollable extent. Operation push-resets-position has the six explicit input/output oracles below.","evaluation_group":"s3-client-state-scroll-session","failed_approach":"The partial repair `0` still violates the explicit fixture contract.","family":"s3-client-state-scroll-session-push-resets-position","id":"FA-23731","implementations":{"attempt":{"sha256":"259e459c94202983f19b7acc19890f613125a8b373d5325a64722fb999918a1e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    positions, entry, path, event, ready, anchor, height, viewport = s\n    if operation == 'entry-key-lookup':\n        return positions.get(entry,0)\n    if operation == 'push-resets-position':\n        return 0\n    if operation == 'layout-ready-deferral':\n        return positions.get(entry,0) if ready else None\n    if operation == 'clamp-restored-position':\n        return min(max(0,positions.get(entry,0)),max(0,height-viewport))\n    if operation == 'anchor-precedes-saved-position':\n        return anchor if anchor is not None else positions.get(entry,0)\n    if operation == 'missing-entry-detection':\n        return entry not in positions\n    if operation == 'restoration-mode':\n        return 'manual' if event=='pop' else 'auto'\n    if operation == 'saved-position-prune':\n        return {k:v for k,v in positions.items() if k!=entry}\n    if operation == 'anchor-layout-gate':\n        return anchor if ready and anchor is not None else None\n    if operation == 'restore-command':\n        return 'wait' if not ready else ('anchor' if anchor is not None else ('saved' if event=='pop' else 'top'))\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('entry-key-lookup scenario 1', solve('entry-key-lookup', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('entry-key-lookup scenario 2', solve('entry-key-lookup', ({'e1':0},'e1','/a','push',True,'section',100,20)), 0)\ncheck('entry-key-lookup scenario 3', solve('entry-key-lookup', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('entry-key-lookup scenario 4', solve('entry-key-lookup', ({'e1':90},'e1','/a','pop',False,None,100,20)), 90)\ncheck('entry-key-lookup scenario 5', solve('entry-key-lookup', ({'e1':-5},'e1','/b','replace',True,'',100,20)), -5)\ncheck('entry-key-lookup scenario 6', solve('entry-key-lookup', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 15)\ncheck('push-resets-position scenario 1', solve('push-resets-position', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('push-resets-position scenario 2', solve('push-resets-position', ({'e1':0},'e1','/a','push',True,'section',100,20)), 0)\ncheck('push-resets-position scenario 3', solve('push-resets-position', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('push-resets-position scenario 4', solve('push-resets-position', ({'e1':90},'e1','/a','pop',False,None,100,20)), 90)\ncheck('push-resets-position scenario 5', solve('push-resets-position', ({'e1':-5},'e1','/b','replace',True,'',100,20)), 0)\ncheck('push-resets-position scenario 6', solve('push-resets-position', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 15)\ncheck('layout-ready-deferral scenario 1', solve('layout-ready-deferral', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('layout-ready-deferral scenario 2', solve('layout-ready-deferral', ({'e1':0},'e1','/a','push',True,'section',100,20)), 0)\ncheck('layout-ready-deferral scenario 3', solve('layout-ready-deferral', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('layout-ready-deferral scenario 4', solve('layout-ready-deferral', ({'e1':90},'e1','/a','pop',False,None,100,20)), None)\ncheck('layout-ready-deferral scenario 5', solve('layout-ready-deferral', ({'e1':-5},'e1','/b','replace',True,'',100,20)), -5)\ncheck('layout-ready-deferral scenario 6', solve('layout-ready-deferral', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 15)\ncheck('clamp-restored-position scenario 1', solve('clamp-restored-position', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('clamp-restored-position scenario 2', solve('clamp-restored-position', ({'e1':0},'e1','/a','push',True,'section',100,20)), 0)\ncheck('clamp-restored-position scenario 3', solve('clamp-restored-position', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('clamp-restored-position scenario 4', solve('clamp-restored-position', ({'e1':90},'e1','/a','pop',False,None,100,20)), 80)\ncheck('clamp-restored-position scenario 5', solve('clamp-restored-position', ({'e1':-5},'e1','/b','replace',True,'',100,20)), 0)\ncheck('clamp-restored-position scenario 6', solve('clamp-restored-position', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 15)\ncheck('anchor-precedes-saved-position scenario 1', solve('anchor-precedes-saved-position', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('anchor-precedes-saved-position scenario 2', solve('anchor-precedes-saved-position', ({'e1':0},'e1','/a','push',True,'section',100,20)), 'section')\ncheck('anchor-precedes-saved-position scenario 3', solve('anchor-precedes-saved-position', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('anchor-precedes-saved-position scenario 4', solve('anchor-precedes-saved-position', ({'e1':90},'e1','/a','pop',False,None,100,20)), 90)\ncheck('anchor-precedes-saved-position scenario 5', solve('anchor-precedes-saved-position', ({'e1':-5},'e1','/b','replace',True,'',100,20)), '')\ncheck('anchor-precedes-saved-position scenario 6', solve('anchor-precedes-saved-position', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 'section')\ncheck('missing-entry-detection scenario 1', solve('missing-entry-detection', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), False)\ncheck('missing-entry-detection scenario 2', solve('missing-entry-detection', ({'e1':0},'e1','/a','push',True,'section',100,20)), False)\ncheck('missing-entry-detection scenario 3', solve('missing-entry-detection', ({},'e2','/a','pop',True,None,10,20)), True)\ncheck('missing-entry-detection scenario 4', solve('missing-entry-detection', ({'e1':90},'e1','/a','pop',False,None,100,20)), False)\ncheck('missing-entry-detection scenario 5', solve('missing-entry-detection', ({'e1':-5},'e1','/b','replace',True,'',100,20)), False)\ncheck('missing-entry-detection scenario 6', solve('missing-entry-detection', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), False)\ncheck('restoration-mode scenario 1', solve('restoration-mode', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), 'manual')\ncheck('restoration-mode scenario 2', solve('restoration-mode', ({'e1':0},'e1','/a','push',True,'section',100,20)), 'auto')\ncheck('restoration-mode scenario 3', solve('restoration-mode', ({},'e2','/a','pop',True,None,10,20)), 'manual')\ncheck('restoration-mode scenario 4', solve('restoration-mode', ({'e1':90},'e1','/a','pop',False,None,100,20)), 'manual')\ncheck('restoration-mode scenario 5', solve('restoration-mode', ({'e1':-5},'e1','/b','replace',True,'',100,20)), 'auto')\ncheck('restoration-mode scenario 6', solve('restoration-mode', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 'manual')\ncheck('saved-position-prune scenario 1', solve('saved-position-prune', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), {'e2':50})\ncheck('saved-position-prune scenario 2', solve('saved-position-prune', ({'e1':0},'e1','/a','push',True,'section',100,20)), {})\ncheck('saved-position-prune scenario 3', solve('saved-position-prune', ({},'e2','/a','pop',True,None,10,20)), {})\ncheck('saved-position-prune scenario 4', solve('saved-position-prune', ({'e1':90},'e1','/a','pop',False,None,100,20)), {})\ncheck('saved-position-prune scenario 5', solve('saved-position-prune', ({'e1':-5},'e1','/b','replace',True,'',100,20)), {})\ncheck('saved-position-prune scenario 6', solve('saved-position-prune', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), {'/a':70})\ncheck('anchor-layout-gate scenario 1', solve('anchor-layout-gate', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), None)\ncheck('anchor-layout-gate scenario 2', solve('anchor-layout-gate', ({'e1':0},'e1','/a','push',True,'section',100,20)), 'section')\ncheck('anchor-layout-gate scenario 3', solve('anchor-layout-gate', ({},'e2','/a','pop',True,None,10,20)), None)\ncheck('anchor-layout-gate scenario 4', solve('anchor-layout-gate', ({'e1':90},'e1','/a','pop',False,None,100,20)), None)\ncheck('anchor-layout-gate scenario 5', solve('anchor-layout-gate', ({'e1':-5},'e1','/b','replace',True,'',100,20)), '')\ncheck('anchor-layout-gate scenario 6', solve('anchor-layout-gate', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 'section')\ncheck('restore-command scenario 1', solve('restore-command', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), 'saved')\ncheck('restore-command scenario 2', solve('restore-command', ({'e1':0},'e1','/a','push',True,'section',100,20)), 'anchor')\ncheck('restore-command scenario 3', solve('restore-command', ({},'e2','/a','pop',True,None,10,20)), 'saved')\ncheck('restore-command scenario 4', solve('restore-command', ({'e1':90},'e1','/a','pop',False,None,100,20)), 'wait')\ncheck('restore-command scenario 5', solve('restore-command', ({'e1':-5},'e1','/b','replace',True,'',100,20)), 'anchor')\ncheck('restore-command scenario 6', solve('restore-command', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 'anchor')\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":"4921eeee093a857a28824bbb2eb3e32cda44decc9d0b429369428fa54dd6aebb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    positions, entry, path, event, ready, anchor, height, viewport = s\n    if operation == 'entry-key-lookup':\n        return positions.get(entry,0)\n    if operation == 'push-resets-position':\n        return positions.get(entry,0)\n    if operation == 'layout-ready-deferral':\n        return positions.get(entry,0) if ready else None\n    if operation == 'clamp-restored-position':\n        return min(max(0,positions.get(entry,0)),max(0,height-viewport))\n    if operation == 'anchor-precedes-saved-position':\n        return anchor if anchor is not None else positions.get(entry,0)\n    if operation == 'missing-entry-detection':\n        return entry not in positions\n    if operation == 'restoration-mode':\n        return 'manual' if event=='pop' else 'auto'\n    if operation == 'saved-position-prune':\n        return {k:v for k,v in positions.items() if k!=entry}\n    if operation == 'anchor-layout-gate':\n        return anchor if ready and anchor is not None else None\n    if operation == 'restore-command':\n        return 'wait' if not ready else ('anchor' if anchor is not None else ('saved' if event=='pop' else 'top'))\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('entry-key-lookup scenario 1', solve('entry-key-lookup', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('entry-key-lookup scenario 2', solve('entry-key-lookup', ({'e1':0},'e1','/a','push',True,'section',100,20)), 0)\ncheck('entry-key-lookup scenario 3', solve('entry-key-lookup', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('entry-key-lookup scenario 4', solve('entry-key-lookup', ({'e1':90},'e1','/a','pop',False,None,100,20)), 90)\ncheck('entry-key-lookup scenario 5', solve('entry-key-lookup', ({'e1':-5},'e1','/b','replace',True,'',100,20)), -5)\ncheck('entry-key-lookup scenario 6', solve('entry-key-lookup', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 15)\ncheck('push-resets-position scenario 1', solve('push-resets-position', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('push-resets-position scenario 2', solve('push-resets-position', ({'e1':0},'e1','/a','push',True,'section',100,20)), 0)\ncheck('push-resets-position scenario 3', solve('push-resets-position', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('push-resets-position scenario 4', solve('push-resets-position', ({'e1':90},'e1','/a','pop',False,None,100,20)), 90)\ncheck('push-resets-position scenario 5', solve('push-resets-position', ({'e1':-5},'e1','/b','replace',True,'',100,20)), 0)\ncheck('push-resets-position scenario 6', solve('push-resets-position', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 15)\ncheck('layout-ready-deferral scenario 1', solve('layout-ready-deferral', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('layout-ready-deferral scenario 2', solve('layout-ready-deferral', ({'e1':0},'e1','/a','push',True,'section',100,20)), 0)\ncheck('layout-ready-deferral scenario 3', solve('layout-ready-deferral', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('layout-ready-deferral scenario 4', solve('layout-ready-deferral', ({'e1':90},'e1','/a','pop',False,None,100,20)), None)\ncheck('layout-ready-deferral scenario 5', solve('layout-ready-deferral', ({'e1':-5},'e1','/b','replace',True,'',100,20)), -5)\ncheck('layout-ready-deferral scenario 6', solve('layout-ready-deferral', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 15)\ncheck('clamp-restored-position scenario 1', solve('clamp-restored-position', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('clamp-restored-position scenario 2', solve('clamp-restored-position', ({'e1':0},'e1','/a','push',True,'section',100,20)), 0)\ncheck('clamp-restored-position scenario 3', solve('clamp-restored-position', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('clamp-restored-position scenario 4', solve('clamp-restored-position', ({'e1':90},'e1','/a','pop',False,None,100,20)), 80)\ncheck('clamp-restored-position scenario 5', solve('clamp-restored-position', ({'e1':-5},'e1','/b','replace',True,'',100,20)), 0)\ncheck('clamp-restored-position scenario 6', solve('clamp-restored-position', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 15)\ncheck('anchor-precedes-saved-position scenario 1', solve('anchor-precedes-saved-position', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('anchor-precedes-saved-position scenario 2', solve('anchor-precedes-saved-position', ({'e1':0},'e1','/a','push',True,'section',100,20)), 'section')\ncheck('anchor-precedes-saved-position scenario 3', solve('anchor-precedes-saved-position', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('anchor-precedes-saved-position scenario 4', solve('anchor-precedes-saved-position', ({'e1':90},'e1','/a','pop',False,None,100,20)), 90)\ncheck('anchor-precedes-saved-position scenario 5', solve('anchor-precedes-saved-position', ({'e1':-5},'e1','/b','replace',True,'',100,20)), '')\ncheck('anchor-precedes-saved-position scenario 6', solve('anchor-precedes-saved-position', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 'section')\ncheck('missing-entry-detection scenario 1', solve('missing-entry-detection', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), False)\ncheck('missing-entry-detection scenario 2', solve('missing-entry-detection', ({'e1':0},'e1','/a','push',True,'section',100,20)), False)\ncheck('missing-entry-detection scenario 3', solve('missing-entry-detection', ({},'e2','/a','pop',True,None,10,20)), True)\ncheck('missing-entry-detection scenario 4', solve('missing-entry-detection', ({'e1':90},'e1','/a','pop',False,None,100,20)), False)\ncheck('missing-entry-detection scenario 5', solve('missing-entry-detection', ({'e1':-5},'e1','/b','replace',True,'',100,20)), False)\ncheck('missing-entry-detection scenario 6', solve('missing-entry-detection', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), False)\ncheck('restoration-mode scenario 1', solve('restoration-mode', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), 'manual')\ncheck('restoration-mode scenario 2', solve('restoration-mode', ({'e1':0},'e1','/a','push',True,'section',100,20)), 'auto')\ncheck('restoration-mode scenario 3', solve('restoration-mode', ({},'e2','/a','pop',True,None,10,20)), 'manual')\ncheck('restoration-mode scenario 4', solve('restoration-mode', ({'e1':90},'e1','/a','pop',False,None,100,20)), 'manual')\ncheck('restoration-mode scenario 5', solve('restoration-mode', ({'e1':-5},'e1','/b','replace',True,'',100,20)), 'auto')\ncheck('restoration-mode scenario 6', solve('restoration-mode', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 'manual')\ncheck('saved-position-prune scenario 1', solve('saved-position-prune', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), {'e2':50})\ncheck('saved-position-prune scenario 2', solve('saved-position-prune', ({'e1':0},'e1','/a','push',True,'section',100,20)), {})\ncheck('saved-position-prune scenario 3', solve('saved-position-prune', ({},'e2','/a','pop',True,None,10,20)), {})\ncheck('saved-position-prune scenario 4', solve('saved-position-prune', ({'e1':90},'e1','/a','pop',False,None,100,20)), {})\ncheck('saved-position-prune scenario 5', solve('saved-position-prune', ({'e1':-5},'e1','/b','replace',True,'',100,20)), {})\ncheck('saved-position-prune scenario 6', solve('saved-position-prune', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), {'/a':70})\ncheck('anchor-layout-gate scenario 1', solve('anchor-layout-gate', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), None)\ncheck('anchor-layout-gate scenario 2', solve('anchor-layout-gate', ({'e1':0},'e1','/a','push',True,'section',100,20)), 'section')\ncheck('anchor-layout-gate scenario 3', solve('anchor-layout-gate', ({},'e2','/a','pop',True,None,10,20)), None)\ncheck('anchor-layout-gate scenario 4', solve('anchor-layout-gate', ({'e1':90},'e1','/a','pop',False,None,100,20)), None)\ncheck('anchor-layout-gate scenario 5', solve('anchor-layout-gate', ({'e1':-5},'e1','/b','replace',True,'',100,20)), '')\ncheck('anchor-layout-gate scenario 6', solve('anchor-layout-gate', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 'section')\ncheck('restore-command scenario 1', solve('restore-command', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), 'saved')\ncheck('restore-command scenario 2', solve('restore-command', ({'e1':0},'e1','/a','push',True,'section',100,20)), 'anchor')\ncheck('restore-command scenario 3', solve('restore-command', ({},'e2','/a','pop',True,None,10,20)), 'saved')\ncheck('restore-command scenario 4', solve('restore-command', ({'e1':90},'e1','/a','pop',False,None,100,20)), 'wait')\ncheck('restore-command scenario 5', solve('restore-command', ({'e1':-5},'e1','/b','replace',True,'',100,20)), 'anchor')\ncheck('restore-command scenario 6', solve('restore-command', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 'anchor')\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":"cb71b5a554b5164393c32d7d3adaec784e19f354b0c1022e63d132cf52dd979a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    positions, entry, path, event, ready, anchor, height, viewport = s\n    if operation == 'entry-key-lookup':\n        return positions.get(entry,0)\n    if operation == 'push-resets-position':\n        return positions.get(entry,0) if event=='pop' else 0\n    if operation == 'layout-ready-deferral':\n        return positions.get(entry,0) if ready else None\n    if operation == 'clamp-restored-position':\n        return min(max(0,positions.get(entry,0)),max(0,height-viewport))\n    if operation == 'anchor-precedes-saved-position':\n        return anchor if anchor is not None else positions.get(entry,0)\n    if operation == 'missing-entry-detection':\n        return entry not in positions\n    if operation == 'restoration-mode':\n        return 'manual' if event=='pop' else 'auto'\n    if operation == 'saved-position-prune':\n        return {k:v for k,v in positions.items() if k!=entry}\n    if operation == 'anchor-layout-gate':\n        return anchor if ready and anchor is not None else None\n    if operation == 'restore-command':\n        return 'wait' if not ready else ('anchor' if anchor is not None else ('saved' if event=='pop' else 'top'))\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('entry-key-lookup scenario 1', solve('entry-key-lookup', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('entry-key-lookup scenario 2', solve('entry-key-lookup', ({'e1':0},'e1','/a','push',True,'section',100,20)), 0)\ncheck('entry-key-lookup scenario 3', solve('entry-key-lookup', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('entry-key-lookup scenario 4', solve('entry-key-lookup', ({'e1':90},'e1','/a','pop',False,None,100,20)), 90)\ncheck('entry-key-lookup scenario 5', solve('entry-key-lookup', ({'e1':-5},'e1','/b','replace',True,'',100,20)), -5)\ncheck('entry-key-lookup scenario 6', solve('entry-key-lookup', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 15)\ncheck('push-resets-position scenario 1', solve('push-resets-position', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('push-resets-position scenario 2', solve('push-resets-position', ({'e1':0},'e1','/a','push',True,'section',100,20)), 0)\ncheck('push-resets-position scenario 3', solve('push-resets-position', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('push-resets-position scenario 4', solve('push-resets-position', ({'e1':90},'e1','/a','pop',False,None,100,20)), 90)\ncheck('push-resets-position scenario 5', solve('push-resets-position', ({'e1':-5},'e1','/b','replace',True,'',100,20)), 0)\ncheck('push-resets-position scenario 6', solve('push-resets-position', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 15)\ncheck('layout-ready-deferral scenario 1', solve('layout-ready-deferral', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('layout-ready-deferral scenario 2', solve('layout-ready-deferral', ({'e1':0},'e1','/a','push',True,'section',100,20)), 0)\ncheck('layout-ready-deferral scenario 3', solve('layout-ready-deferral', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('layout-ready-deferral scenario 4', solve('layout-ready-deferral', ({'e1':90},'e1','/a','pop',False,None,100,20)), None)\ncheck('layout-ready-deferral scenario 5', solve('layout-ready-deferral', ({'e1':-5},'e1','/b','replace',True,'',100,20)), -5)\ncheck('layout-ready-deferral scenario 6', solve('layout-ready-deferral', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 15)\ncheck('clamp-restored-position scenario 1', solve('clamp-restored-position', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('clamp-restored-position scenario 2', solve('clamp-restored-position', ({'e1':0},'e1','/a','push',True,'section',100,20)), 0)\ncheck('clamp-restored-position scenario 3', solve('clamp-restored-position', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('clamp-restored-position scenario 4', solve('clamp-restored-position', ({'e1':90},'e1','/a','pop',False,None,100,20)), 80)\ncheck('clamp-restored-position scenario 5', solve('clamp-restored-position', ({'e1':-5},'e1','/b','replace',True,'',100,20)), 0)\ncheck('clamp-restored-position scenario 6', solve('clamp-restored-position', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 15)\ncheck('anchor-precedes-saved-position scenario 1', solve('anchor-precedes-saved-position', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), N*10)\ncheck('anchor-precedes-saved-position scenario 2', solve('anchor-precedes-saved-position', ({'e1':0},'e1','/a','push',True,'section',100,20)), 'section')\ncheck('anchor-precedes-saved-position scenario 3', solve('anchor-precedes-saved-position', ({},'e2','/a','pop',True,None,10,20)), 0)\ncheck('anchor-precedes-saved-position scenario 4', solve('anchor-precedes-saved-position', ({'e1':90},'e1','/a','pop',False,None,100,20)), 90)\ncheck('anchor-precedes-saved-position scenario 5', solve('anchor-precedes-saved-position', ({'e1':-5},'e1','/b','replace',True,'',100,20)), '')\ncheck('anchor-precedes-saved-position scenario 6', solve('anchor-precedes-saved-position', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 'section')\ncheck('missing-entry-detection scenario 1', solve('missing-entry-detection', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), False)\ncheck('missing-entry-detection scenario 2', solve('missing-entry-detection', ({'e1':0},'e1','/a','push',True,'section',100,20)), False)\ncheck('missing-entry-detection scenario 3', solve('missing-entry-detection', ({},'e2','/a','pop',True,None,10,20)), True)\ncheck('missing-entry-detection scenario 4', solve('missing-entry-detection', ({'e1':90},'e1','/a','pop',False,None,100,20)), False)\ncheck('missing-entry-detection scenario 5', solve('missing-entry-detection', ({'e1':-5},'e1','/b','replace',True,'',100,20)), False)\ncheck('missing-entry-detection scenario 6', solve('missing-entry-detection', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), False)\ncheck('restoration-mode scenario 1', solve('restoration-mode', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), 'manual')\ncheck('restoration-mode scenario 2', solve('restoration-mode', ({'e1':0},'e1','/a','push',True,'section',100,20)), 'auto')\ncheck('restoration-mode scenario 3', solve('restoration-mode', ({},'e2','/a','pop',True,None,10,20)), 'manual')\ncheck('restoration-mode scenario 4', solve('restoration-mode', ({'e1':90},'e1','/a','pop',False,None,100,20)), 'manual')\ncheck('restoration-mode scenario 5', solve('restoration-mode', ({'e1':-5},'e1','/b','replace',True,'',100,20)), 'auto')\ncheck('restoration-mode scenario 6', solve('restoration-mode', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 'manual')\ncheck('saved-position-prune scenario 1', solve('saved-position-prune', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), {'e2':50})\ncheck('saved-position-prune scenario 2', solve('saved-position-prune', ({'e1':0},'e1','/a','push',True,'section',100,20)), {})\ncheck('saved-position-prune scenario 3', solve('saved-position-prune', ({},'e2','/a','pop',True,None,10,20)), {})\ncheck('saved-position-prune scenario 4', solve('saved-position-prune', ({'e1':90},'e1','/a','pop',False,None,100,20)), {})\ncheck('saved-position-prune scenario 5', solve('saved-position-prune', ({'e1':-5},'e1','/b','replace',True,'',100,20)), {})\ncheck('saved-position-prune scenario 6', solve('saved-position-prune', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), {'/a':70})\ncheck('anchor-layout-gate scenario 1', solve('anchor-layout-gate', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), None)\ncheck('anchor-layout-gate scenario 2', solve('anchor-layout-gate', ({'e1':0},'e1','/a','push',True,'section',100,20)), 'section')\ncheck('anchor-layout-gate scenario 3', solve('anchor-layout-gate', ({},'e2','/a','pop',True,None,10,20)), None)\ncheck('anchor-layout-gate scenario 4', solve('anchor-layout-gate', ({'e1':90},'e1','/a','pop',False,None,100,20)), None)\ncheck('anchor-layout-gate scenario 5', solve('anchor-layout-gate', ({'e1':-5},'e1','/b','replace',True,'',100,20)), '')\ncheck('anchor-layout-gate scenario 6', solve('anchor-layout-gate', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 'section')\ncheck('restore-command scenario 1', solve('restore-command', ({'e1':N*10,'e2':50},'e1','/a','pop',True,None,100,20)), 'saved')\ncheck('restore-command scenario 2', solve('restore-command', ({'e1':0},'e1','/a','push',True,'section',100,20)), 'anchor')\ncheck('restore-command scenario 3', solve('restore-command', ({},'e2','/a','pop',True,None,10,20)), 'saved')\ncheck('restore-command scenario 4', solve('restore-command', ({'e1':90},'e1','/a','pop',False,None,100,20)), 'wait')\ncheck('restore-command scenario 5', solve('restore-command', ({'e1':-5},'e1','/b','replace',True,'',100,20)), 'anchor')\ncheck('restore-command scenario 6', solve('restore-command', ({'/a':70,'e1':15},'e1','/a','pop',True,'section',40,20)), 'anchor')\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-scroll-session-push-resets-position","generated_at":"2026-09-29T14:40:50.546781+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 push-resets-position rule: `positions.get(entry,0) if event=='pop' else 0`.","root_cause":"The push-resets-position client decision evaluates `positions.get(entry,0)` instead of `positions.get(entry,0) if event=='pop' else 0`.","sha256":"3e41d3ea5983e56f9f1ee28aca1c7bc579071e832ef5f39377a60023a2ec0ea9","title":"Per-history-entry scroll restoration: Push resets position · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":47.09,"exit_code":1,"observations":[{"actual":10,"check":"entry-key-lookup scenario 1","expected":10,"passed":true},{"actual":0,"check":"entry-key-lookup scenario 2","expected":0,"passed":true},{"actual":0,"check":"entry-key-lookup scenario 3","expected":0,"passed":true},{"actual":90,"check":"entry-key-lookup scenario 4","expected":90,"passed":true},{"actual":-5,"check":"entry-key-lookup scenario 5","expected":-5,"passed":true},{"actual":15,"check":"entry-key-lookup scenario 6","expected":15,"passed":true},{"actual":0,"check":"push-resets-position scenario 1","expected":10,"passed":false},{"actual":0,"check":"push-resets-position scenario 2","expected":0,"passed":true},{"actual":0,"check":"push-resets-position scenario 3","expected":0,"passed":true},{"actual":0,"check":"push-resets-position scenario 4","expected":90,"passed":false},{"actual":0,"check":"push-resets-position scenario 5","expected":0,"passed":true},{"actual":0,"check":"push-resets-position scenario 6","expected":15,"passed":false},{"actual":10,"check":"layout-ready-deferral scenario 1","expected":10,"passed":true},{"actual":0,"check":"layout-ready-deferral scenario 2","expected":0,"passed":true},{"actual":0,"check":"layout-ready-deferral scenario 3","expected":0,"passed":true},{"actual":null,"check":"layout-ready-deferral scenario 4","expected":null,"passed":true},{"actual":-5,"check":"layout-ready-deferral scenario 5","expected":-5,"passed":true},{"actual":15,"check":"layout-ready-deferral scenario 6","expected":15,"passed":true},{"actual":10,"check":"clamp-restored-position scenario 1","expected":10,"passed":true},{"actual":0,"check":"clamp-restored-position scenario 2","expected":0,"passed":true},{"actual":0,"check":"clamp-restored-position scenario 3","expected":0,"passed":true},{"actual":80,"check":"clamp-restored-position scenario 4","expected":80,"passed":true},{"actual":0,"check":"clamp-restored-position scenario 5","expected":0,"passed":true},{"actual":15,"check":"clamp-restored-position scenario 6","expected":15,"passed":true},{"actual":10,"check":"anchor-precedes-saved-position scenario 1","expected":10,"passed":true},{"actual":"section","check":"anchor-precedes-saved-position scenario 2","expected":"section","passed":true},{"actual":0,"check":"anchor-precedes-saved-position scenario 3","expected":0,"passed":true},{"actual":90,"check":"anchor-precedes-saved-position scenario 4","expected":90,"passed":true},{"actual":"","check":"anchor-precedes-saved-position scenario 5","expected":"","passed":true},{"actual":"section","check":"anchor-precedes-saved-position scenario 6","expected":"section","passed":true},{"actual":false,"check":"missing-entry-detection scenario 1","expected":false,"passed":true},{"actual":false,"check":"missing-entry-detection scenario 2","expected":false,"passed":true},{"actual":true,"check":"missing-entry-detection scenario 3","expected":true,"passed":true},{"actual":false,"check":"missing-entry-detection scenario 4","expected":false,"passed":true},{"actual":false,"check":"missing-entry-detection scenario 5","expected":false,"passed":true},{"actual":false,"check":"missing-entry-detection scenario 6","expected":false,"passed":true},{"actual":"manual","check":"restoration-mode scenario 1","expected":"manual","passed":true},{"actual":"auto","check":"restoration-mode scenario 2","expected":"auto","passed":true},{"actual":"manual","check":"restoration-mode scenario 3","expected":"manual","passed":true},{"actual":"manual","check":"restoration-mode scenario 4","expected":"manual","passed":true},{"actual":"auto","check":"restoration-mode scenario 5","expected":"auto","passed":true},{"actual":"manual","check":"restoration-mode scenario 6","expected":"manual","passed":true},{"actual":{"e2":50},"check":"saved-position-prune scenario 1","expected":{"e2":50},"passed":true},{"actual":{},"check":"saved-position-prune scenario 2","expected":{},"passed":true},{"actual":{},"check":"saved-position-prune scenario 3","expected":{},"passed":true},{"actual":{},"check":"saved-position-prune scenario 4","expected":{},"passed":true},{"actual":{},"check":"saved-position-prune scenario 5","expected":{},"passed":true},{"actual":{"/a":70},"check":"saved-position-prune scenario 6","expected":{"/a":70},"passed":true},{"actual":null,"check":"anchor-layout-gate scenario 1","expected":null,"passed":true},{"actual":"section","check":"anchor-layout-gate scenario 2","expected":"section","passed":true},{"actual":null,"check":"anchor-layout-gate scenario 3","expected":null,"passed":true},{"actual":null,"check":"anchor-layout-gate scenario 4","expected":null,"passed":true},{"actual":"","check":"anchor-layout-gate scenario 5","expected":"","passed":true},{"actual":"section","check":"anchor-layout-gate scenario 6","expected":"section","passed":true},{"actual":"saved","check":"restore-command scenario 1","expected":"saved","passed":true},{"actual":"anchor","check":"restore-command scenario 2","expected":"anchor","passed":true},{"actual":"saved","check":"restore-command scenario 3","expected":"saved","passed":true},{"actual":"wait","check":"restore-command scenario 4","expected":"wait","passed":true},{"actual":"anchor","check":"restore-command scenario 5","expected":"anchor","passed":true},{"actual":"anchor","check":"restore-command scenario 6","expected":"anchor","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"entry-key-lookup scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 4\", \"actual\": 90, \"expected\": 90, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 5\", \"actual\": -5, \"expected\": -5, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 6\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"push-resets-position scenario 1\", \"actual\": 0, \"expected\": 10, \"passed\": false}, {\"check\": \"push-resets-position scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"push-resets-position scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"push-resets-position scenario 4\", \"actual\": 0, \"expected\": 90, \"passed\": false}, {\"check\": \"push-resets-position scenario 5\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"push-resets-position scenario 6\", \"actual\": 0, \"expected\": 15, \"passed\": false}, {\"check\": \"layout-ready-deferral scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 5\", \"actual\": -5, \"expected\": -5, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 6\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 4\", \"actual\": 80, \"expected\": 80, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 5\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 6\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 2\", \"actual\": \"section\", \"expected\": \"section\", \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 4\", \"actual\": 90, \"expected\": 90, \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 5\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 6\", \"actual\": \"section\", \"expected\": \"section\", \"passed\": true}, {\"check\": \"missing-entry-detection scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"restoration-mode scenario 1\", \"actual\": \"manual\", \"expected\": \"manual\", \"passed\": true}, {\"check\": \"restoration-mode scenario 2\", \"actual\": \"auto\", \"expected\": \"auto\", \"passed\": true}, {\"check\": \"restoration-mode scenario 3\", \"actual\": \"manual\", \"expected\": \"manual\", \"passed\": true}, {\"check\": \"restoration-mode scenario 4\", \"actual\": \"manual\", \"expected\": \"manual\", \"passed\": true}, {\"check\": \"restoration-mode scenario 5\", \"actual\": \"auto\", \"expected\": \"auto\", \"passed\": true}, {\"check\": \"restoration-mode scenario 6\", \"actual\": \"manual\", \"expected\": \"manual\", \"passed\": true}, {\"check\": \"saved-position-prune scenario 1\", \"actual\": {\"e2\": 50}, \"expected\": {\"e2\": 50}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 2\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 3\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 4\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 5\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 6\", \"actual\": {\"/a\": 70}, \"expected\": {\"/a\": 70}, \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 1\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 2\", \"actual\": \"section\", \"expected\": \"section\", \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 5\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 6\", \"actual\": \"section\", \"expected\": \"section\", \"passed\": true}, {\"check\": \"restore-command scenario 1\", \"actual\": \"saved\", \"expected\": \"saved\", \"passed\": true}, {\"check\": \"restore-command scenario 2\", \"actual\": \"anchor\", \"expected\": \"anchor\", \"passed\": true}, {\"check\": \"restore-command scenario 3\", \"actual\": \"saved\", \"expected\": \"saved\", \"passed\": true}, {\"check\": \"restore-command scenario 4\", \"actual\": \"wait\", \"expected\": \"wait\", \"passed\": true}, {\"check\": \"restore-command scenario 5\", \"actual\": \"anchor\", \"expected\": \"anchor\", \"passed\": true}, {\"check\": \"restore-command scenario 6\", \"actual\": \"anchor\", \"expected\": \"anchor\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.013,"exit_code":1,"observations":[{"actual":10,"check":"entry-key-lookup scenario 1","expected":10,"passed":true},{"actual":0,"check":"entry-key-lookup scenario 2","expected":0,"passed":true},{"actual":0,"check":"entry-key-lookup scenario 3","expected":0,"passed":true},{"actual":90,"check":"entry-key-lookup scenario 4","expected":90,"passed":true},{"actual":-5,"check":"entry-key-lookup scenario 5","expected":-5,"passed":true},{"actual":15,"check":"entry-key-lookup scenario 6","expected":15,"passed":true},{"actual":10,"check":"push-resets-position scenario 1","expected":10,"passed":true},{"actual":0,"check":"push-resets-position scenario 2","expected":0,"passed":true},{"actual":0,"check":"push-resets-position scenario 3","expected":0,"passed":true},{"actual":90,"check":"push-resets-position scenario 4","expected":90,"passed":true},{"actual":-5,"check":"push-resets-position scenario 5","expected":0,"passed":false},{"actual":15,"check":"push-resets-position scenario 6","expected":15,"passed":true},{"actual":10,"check":"layout-ready-deferral scenario 1","expected":10,"passed":true},{"actual":0,"check":"layout-ready-deferral scenario 2","expected":0,"passed":true},{"actual":0,"check":"layout-ready-deferral scenario 3","expected":0,"passed":true},{"actual":null,"check":"layout-ready-deferral scenario 4","expected":null,"passed":true},{"actual":-5,"check":"layout-ready-deferral scenario 5","expected":-5,"passed":true},{"actual":15,"check":"layout-ready-deferral scenario 6","expected":15,"passed":true},{"actual":10,"check":"clamp-restored-position scenario 1","expected":10,"passed":true},{"actual":0,"check":"clamp-restored-position scenario 2","expected":0,"passed":true},{"actual":0,"check":"clamp-restored-position scenario 3","expected":0,"passed":true},{"actual":80,"check":"clamp-restored-position scenario 4","expected":80,"passed":true},{"actual":0,"check":"clamp-restored-position scenario 5","expected":0,"passed":true},{"actual":15,"check":"clamp-restored-position scenario 6","expected":15,"passed":true},{"actual":10,"check":"anchor-precedes-saved-position scenario 1","expected":10,"passed":true},{"actual":"section","check":"anchor-precedes-saved-position scenario 2","expected":"section","passed":true},{"actual":0,"check":"anchor-precedes-saved-position scenario 3","expected":0,"passed":true},{"actual":90,"check":"anchor-precedes-saved-position scenario 4","expected":90,"passed":true},{"actual":"","check":"anchor-precedes-saved-position scenario 5","expected":"","passed":true},{"actual":"section","check":"anchor-precedes-saved-position scenario 6","expected":"section","passed":true},{"actual":false,"check":"missing-entry-detection scenario 1","expected":false,"passed":true},{"actual":false,"check":"missing-entry-detection scenario 2","expected":false,"passed":true},{"actual":true,"check":"missing-entry-detection scenario 3","expected":true,"passed":true},{"actual":false,"check":"missing-entry-detection scenario 4","expected":false,"passed":true},{"actual":false,"check":"missing-entry-detection scenario 5","expected":false,"passed":true},{"actual":false,"check":"missing-entry-detection scenario 6","expected":false,"passed":true},{"actual":"manual","check":"restoration-mode scenario 1","expected":"manual","passed":true},{"actual":"auto","check":"restoration-mode scenario 2","expected":"auto","passed":true},{"actual":"manual","check":"restoration-mode scenario 3","expected":"manual","passed":true},{"actual":"manual","check":"restoration-mode scenario 4","expected":"manual","passed":true},{"actual":"auto","check":"restoration-mode scenario 5","expected":"auto","passed":true},{"actual":"manual","check":"restoration-mode scenario 6","expected":"manual","passed":true},{"actual":{"e2":50},"check":"saved-position-prune scenario 1","expected":{"e2":50},"passed":true},{"actual":{},"check":"saved-position-prune scenario 2","expected":{},"passed":true},{"actual":{},"check":"saved-position-prune scenario 3","expected":{},"passed":true},{"actual":{},"check":"saved-position-prune scenario 4","expected":{},"passed":true},{"actual":{},"check":"saved-position-prune scenario 5","expected":{},"passed":true},{"actual":{"/a":70},"check":"saved-position-prune scenario 6","expected":{"/a":70},"passed":true},{"actual":null,"check":"anchor-layout-gate scenario 1","expected":null,"passed":true},{"actual":"section","check":"anchor-layout-gate scenario 2","expected":"section","passed":true},{"actual":null,"check":"anchor-layout-gate scenario 3","expected":null,"passed":true},{"actual":null,"check":"anchor-layout-gate scenario 4","expected":null,"passed":true},{"actual":"","check":"anchor-layout-gate scenario 5","expected":"","passed":true},{"actual":"section","check":"anchor-layout-gate scenario 6","expected":"section","passed":true},{"actual":"saved","check":"restore-command scenario 1","expected":"saved","passed":true},{"actual":"anchor","check":"restore-command scenario 2","expected":"anchor","passed":true},{"actual":"saved","check":"restore-command scenario 3","expected":"saved","passed":true},{"actual":"wait","check":"restore-command scenario 4","expected":"wait","passed":true},{"actual":"anchor","check":"restore-command scenario 5","expected":"anchor","passed":true},{"actual":"anchor","check":"restore-command scenario 6","expected":"anchor","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"entry-key-lookup scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 4\", \"actual\": 90, \"expected\": 90, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 5\", \"actual\": -5, \"expected\": -5, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 6\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"push-resets-position scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"push-resets-position scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"push-resets-position scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"push-resets-position scenario 4\", \"actual\": 90, \"expected\": 90, \"passed\": true}, {\"check\": \"push-resets-position scenario 5\", \"actual\": -5, \"expected\": 0, \"passed\": false}, {\"check\": \"push-resets-position scenario 6\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 5\", \"actual\": -5, \"expected\": -5, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 6\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 4\", \"actual\": 80, \"expected\": 80, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 5\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 6\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 2\", \"actual\": \"section\", \"expected\": \"section\", \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 4\", \"actual\": 90, \"expected\": 90, \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 5\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 6\", \"actual\": \"section\", \"expected\": \"section\", \"passed\": true}, {\"check\": \"missing-entry-detection scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"restoration-mode scenario 1\", \"actual\": \"manual\", \"expected\": \"manual\", \"passed\": true}, {\"check\": \"restoration-mode scenario 2\", \"actual\": \"auto\", \"expected\": \"auto\", \"passed\": true}, {\"check\": \"restoration-mode scenario 3\", \"actual\": \"manual\", \"expected\": \"manual\", \"passed\": true}, {\"check\": \"restoration-mode scenario 4\", \"actual\": \"manual\", \"expected\": \"manual\", \"passed\": true}, {\"check\": \"restoration-mode scenario 5\", \"actual\": \"auto\", \"expected\": \"auto\", \"passed\": true}, {\"check\": \"restoration-mode scenario 6\", \"actual\": \"manual\", \"expected\": \"manual\", \"passed\": true}, {\"check\": \"saved-position-prune scenario 1\", \"actual\": {\"e2\": 50}, \"expected\": {\"e2\": 50}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 2\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 3\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 4\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 5\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 6\", \"actual\": {\"/a\": 70}, \"expected\": {\"/a\": 70}, \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 1\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 2\", \"actual\": \"section\", \"expected\": \"section\", \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 5\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 6\", \"actual\": \"section\", \"expected\": \"section\", \"passed\": true}, {\"check\": \"restore-command scenario 1\", \"actual\": \"saved\", \"expected\": \"saved\", \"passed\": true}, {\"check\": \"restore-command scenario 2\", \"actual\": \"anchor\", \"expected\": \"anchor\", \"passed\": true}, {\"check\": \"restore-command scenario 3\", \"actual\": \"saved\", \"expected\": \"saved\", \"passed\": true}, {\"check\": \"restore-command scenario 4\", \"actual\": \"wait\", \"expected\": \"wait\", \"passed\": true}, {\"check\": \"restore-command scenario 5\", \"actual\": \"anchor\", \"expected\": \"anchor\", \"passed\": true}, {\"check\": \"restore-command scenario 6\", \"actual\": \"anchor\", \"expected\": \"anchor\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":50.699,"exit_code":0,"observations":[{"actual":10,"check":"entry-key-lookup scenario 1","expected":10,"passed":true},{"actual":0,"check":"entry-key-lookup scenario 2","expected":0,"passed":true},{"actual":0,"check":"entry-key-lookup scenario 3","expected":0,"passed":true},{"actual":90,"check":"entry-key-lookup scenario 4","expected":90,"passed":true},{"actual":-5,"check":"entry-key-lookup scenario 5","expected":-5,"passed":true},{"actual":15,"check":"entry-key-lookup scenario 6","expected":15,"passed":true},{"actual":10,"check":"push-resets-position scenario 1","expected":10,"passed":true},{"actual":0,"check":"push-resets-position scenario 2","expected":0,"passed":true},{"actual":0,"check":"push-resets-position scenario 3","expected":0,"passed":true},{"actual":90,"check":"push-resets-position scenario 4","expected":90,"passed":true},{"actual":0,"check":"push-resets-position scenario 5","expected":0,"passed":true},{"actual":15,"check":"push-resets-position scenario 6","expected":15,"passed":true},{"actual":10,"check":"layout-ready-deferral scenario 1","expected":10,"passed":true},{"actual":0,"check":"layout-ready-deferral scenario 2","expected":0,"passed":true},{"actual":0,"check":"layout-ready-deferral scenario 3","expected":0,"passed":true},{"actual":null,"check":"layout-ready-deferral scenario 4","expected":null,"passed":true},{"actual":-5,"check":"layout-ready-deferral scenario 5","expected":-5,"passed":true},{"actual":15,"check":"layout-ready-deferral scenario 6","expected":15,"passed":true},{"actual":10,"check":"clamp-restored-position scenario 1","expected":10,"passed":true},{"actual":0,"check":"clamp-restored-position scenario 2","expected":0,"passed":true},{"actual":0,"check":"clamp-restored-position scenario 3","expected":0,"passed":true},{"actual":80,"check":"clamp-restored-position scenario 4","expected":80,"passed":true},{"actual":0,"check":"clamp-restored-position scenario 5","expected":0,"passed":true},{"actual":15,"check":"clamp-restored-position scenario 6","expected":15,"passed":true},{"actual":10,"check":"anchor-precedes-saved-position scenario 1","expected":10,"passed":true},{"actual":"section","check":"anchor-precedes-saved-position scenario 2","expected":"section","passed":true},{"actual":0,"check":"anchor-precedes-saved-position scenario 3","expected":0,"passed":true},{"actual":90,"check":"anchor-precedes-saved-position scenario 4","expected":90,"passed":true},{"actual":"","check":"anchor-precedes-saved-position scenario 5","expected":"","passed":true},{"actual":"section","check":"anchor-precedes-saved-position scenario 6","expected":"section","passed":true},{"actual":false,"check":"missing-entry-detection scenario 1","expected":false,"passed":true},{"actual":false,"check":"missing-entry-detection scenario 2","expected":false,"passed":true},{"actual":true,"check":"missing-entry-detection scenario 3","expected":true,"passed":true},{"actual":false,"check":"missing-entry-detection scenario 4","expected":false,"passed":true},{"actual":false,"check":"missing-entry-detection scenario 5","expected":false,"passed":true},{"actual":false,"check":"missing-entry-detection scenario 6","expected":false,"passed":true},{"actual":"manual","check":"restoration-mode scenario 1","expected":"manual","passed":true},{"actual":"auto","check":"restoration-mode scenario 2","expected":"auto","passed":true},{"actual":"manual","check":"restoration-mode scenario 3","expected":"manual","passed":true},{"actual":"manual","check":"restoration-mode scenario 4","expected":"manual","passed":true},{"actual":"auto","check":"restoration-mode scenario 5","expected":"auto","passed":true},{"actual":"manual","check":"restoration-mode scenario 6","expected":"manual","passed":true},{"actual":{"e2":50},"check":"saved-position-prune scenario 1","expected":{"e2":50},"passed":true},{"actual":{},"check":"saved-position-prune scenario 2","expected":{},"passed":true},{"actual":{},"check":"saved-position-prune scenario 3","expected":{},"passed":true},{"actual":{},"check":"saved-position-prune scenario 4","expected":{},"passed":true},{"actual":{},"check":"saved-position-prune scenario 5","expected":{},"passed":true},{"actual":{"/a":70},"check":"saved-position-prune scenario 6","expected":{"/a":70},"passed":true},{"actual":null,"check":"anchor-layout-gate scenario 1","expected":null,"passed":true},{"actual":"section","check":"anchor-layout-gate scenario 2","expected":"section","passed":true},{"actual":null,"check":"anchor-layout-gate scenario 3","expected":null,"passed":true},{"actual":null,"check":"anchor-layout-gate scenario 4","expected":null,"passed":true},{"actual":"","check":"anchor-layout-gate scenario 5","expected":"","passed":true},{"actual":"section","check":"anchor-layout-gate scenario 6","expected":"section","passed":true},{"actual":"saved","check":"restore-command scenario 1","expected":"saved","passed":true},{"actual":"anchor","check":"restore-command scenario 2","expected":"anchor","passed":true},{"actual":"saved","check":"restore-command scenario 3","expected":"saved","passed":true},{"actual":"wait","check":"restore-command scenario 4","expected":"wait","passed":true},{"actual":"anchor","check":"restore-command scenario 5","expected":"anchor","passed":true},{"actual":"anchor","check":"restore-command scenario 6","expected":"anchor","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"entry-key-lookup scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 4\", \"actual\": 90, \"expected\": 90, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 5\", \"actual\": -5, \"expected\": -5, \"passed\": true}, {\"check\": \"entry-key-lookup scenario 6\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"push-resets-position scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"push-resets-position scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"push-resets-position scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"push-resets-position scenario 4\", \"actual\": 90, \"expected\": 90, \"passed\": true}, {\"check\": \"push-resets-position scenario 5\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"push-resets-position scenario 6\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 5\", \"actual\": -5, \"expected\": -5, \"passed\": true}, {\"check\": \"layout-ready-deferral scenario 6\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 4\", \"actual\": 80, \"expected\": 80, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 5\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"clamp-restored-position scenario 6\", \"actual\": 15, \"expected\": 15, \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 2\", \"actual\": \"section\", \"expected\": \"section\", \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 4\", \"actual\": 90, \"expected\": 90, \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 5\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"anchor-precedes-saved-position scenario 6\", \"actual\": \"section\", \"expected\": \"section\", \"passed\": true}, {\"check\": \"missing-entry-detection scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"missing-entry-detection scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"restoration-mode scenario 1\", \"actual\": \"manual\", \"expected\": \"manual\", \"passed\": true}, {\"check\": \"restoration-mode scenario 2\", \"actual\": \"auto\", \"expected\": \"auto\", \"passed\": true}, {\"check\": \"restoration-mode scenario 3\", \"actual\": \"manual\", \"expected\": \"manual\", \"passed\": true}, {\"check\": \"restoration-mode scenario 4\", \"actual\": \"manual\", \"expected\": \"manual\", \"passed\": true}, {\"check\": \"restoration-mode scenario 5\", \"actual\": \"auto\", \"expected\": \"auto\", \"passed\": true}, {\"check\": \"restoration-mode scenario 6\", \"actual\": \"manual\", \"expected\": \"manual\", \"passed\": true}, {\"check\": \"saved-position-prune scenario 1\", \"actual\": {\"e2\": 50}, \"expected\": {\"e2\": 50}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 2\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 3\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 4\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 5\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"saved-position-prune scenario 6\", \"actual\": {\"/a\": 70}, \"expected\": {\"/a\": 70}, \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 1\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 2\", \"actual\": \"section\", \"expected\": \"section\", \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 5\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"anchor-layout-gate scenario 6\", \"actual\": \"section\", \"expected\": \"section\", \"passed\": true}, {\"check\": \"restore-command scenario 1\", \"actual\": \"saved\", \"expected\": \"saved\", \"passed\": true}, {\"check\": \"restore-command scenario 2\", \"actual\": \"anchor\", \"expected\": \"anchor\", \"passed\": true}, {\"check\": \"restore-command scenario 3\", \"actual\": \"saved\", \"expected\": \"saved\", \"passed\": true}, {\"check\": \"restore-command scenario 4\", \"actual\": \"wait\", \"expected\": \"wait\", \"passed\": true}, {\"check\": \"restore-command scenario 5\", \"actual\": \"anchor\", \"expected\": \"anchor\", \"passed\": true}, {\"check\": \"restore-command scenario 6\", \"actual\": \"anchor\", \"expected\": \"anchor\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}