import json
from pathlib import Path
p=Path(__file__).parent
read=lambda f:json.loads((p/f).read_text())
for lane,name in [('B','crud-original-B.json'),('C','crud-create-by-green-time-red-C.json')]:
    r=read(name);assert r['failure'] is None and len(r['cases'])==19 and r['retained_owned_rows']==2
    assert all(r['natural_tables_unchanged'].values()) and r['staff_user_reference_unchanged']
    assert all(x['create_time_length']==(19 if lane=='B' else 26) and x['all_source_fields_equal'] for x in r['cases'] if 'create_time_length' in x)
    f=read(f'finish-{lane}.json');assert f['failure'] is None and len(f['cases'])==12 and len({x['path'] for x in r['cases']+f['cases']})==10
    assert f['business_dml']==2 and f['fixture_dml']==0 and all(f['natural_tables_returned_to_original'].values()) and all(v==0 for v in f['rows_remaining'].values())
    assert f['staff_user_reference_unchanged'] and all(all(x.values()) for x in f['source_checks'].values())
    assert all(x['create_time_length']==19 and x['all_original_fields_types_source_equal'] and (lane!='B' or x['B_original_same_input_wire_unchanged']) for x in f['cases'] if 'create_time_length' in x)
    a=read(f'independent-audit-{lane}.json');assert a['independent_new_connection'] and a['all_passed'] and all(a['checks'].values()) and a['business_dml']==a['ddl']==a['retained_rows']==0
    cl=read('cleanup.json')[lane];assert cl['worker_stopped'] and cl['port_not_listening'] and cl['private_source_and_copied_config_removed'] and cl['private_responses_and_lease_removed']
    assert cl['private_cache_files_remaining']==cl['private_runtime_files_remaining']==cl['archive_rows_retained']==cl['staff_user_business_dml']==0
for module in ['grade','judgment']:
    red=read(f'crud-original-{module}-C.json');assert red['failure'] is not None and len(red['cases'])==2 and red['cases'][1]['code']==1 and red['retained_owned_rows']==0 and all(red['natural_tables_unchanged'].values())
u=read('unit-result.json');assert u['create_by']['checks']==22 and u['time']['checks']==38 and u['create_by_checks_rerun_after_time']==22
assert read('wire-comparison.json')['passed'] and read('wire-comparison.json')['complete_wire_cases']==12
print('PASS: 10 actual Store POST keys, 19 B/19 C valid-path scenes and 12 final wire pairs, bounded DM create_by/time red-green, B full same-record wire unchanged, independent audits and stopped resources; Grade write-validation negatives remain untested')
