from fractions import Fraction as Q from collections import Counter def run(load,check): E=Q(25,23);J=Q(300,299);reg=load('C286_DATA.json')['target_register'];keys=['tradition','rail','Cainan','Terah60','full430'] def family(r):return tuple(r.get(k) for k in keys) families=sorted({family(r) for r in reg if r['role']=='Noah birth'}) def take(f,g,role): ff=dict(zip(keys,f));xs=[r for r in reg if r['gear']==g and r['role']==role and all(r.get(k)==v for k,v in ff.items() if k!='rail' or not role.startswith('Flood'))] assert len(xs)==1,(f,g,role,len(xs));return xs[0] def val(r):return Q(r['center']) def apply(a,k,x):return a+k*(x-a) trials=[];hits=[];counts=Counter();familiesout=[dict(zip(keys,f)) for f in families] for g in [1,2]: for fi,src in enumerate(families): xr=take(src,g,'Noah birth');yr=take(src,g+1,'Noah birth');x=val(xr);y=val(yr) check('source family two-year edge '+str((g,fi)),y-x==2) for fj,target in enumerate(families): nr=take(target,g,'Noah birth');n1r=take(target,g+1,'Noah birth');zr=take(target,g,'Shem birth');wr=take(target,g+1,'Shem birth');dr=take(target,g+1,'Shem death');N,N1,z,w,D=map(val,[nr,n1r,zr,wr,dr]) for boundary in ['Flood start','Flood close']: ar=take(src,g+1,boundary);A=val(ar);low=apply(A,J,x)==y;up=apply(D,J,z)==w;el=apply(N,E,x)==z;er=apply(N1,E,y)==w;ok=low and up and el and er mask=''.join('1' if t else '0' for t in [low,up,el,er]);counts[mask]+=1 trials.append({'input_Gear':g,'source_family':fi,'target_family':fj,'Flood_boundary':boundary,'J_lower':low,'J_upper':up,'E_left':el,'E_right':er,'complete':ok}) if ok: hits.append({'input_Gear':g,'source_family':dict(zip(keys,src)),'target_family':dict(zip(keys,target)),'Flood_boundary':boundary,'records':{'x':xr,'y':yr,'N':nr,'N_next':n1r,'z':zr,'w':wr,'A':ar,'D':dr},'observed_spans':{'N_minus_x':int(N-x),'N_minus_A':int(N-A),'x_minus_A':int(x-A),'N_minus_z':int(N-z),'w_minus_D':int(w-D)}}) check('fixed family inventory',len(families)==32 and len(trials)==4096) check('complete finite census',len(hits)==8 and sum(t['complete'] for t in trials)==8 and sum(t['E_left'] and t['E_right'] for t in trials)==16 and all(t['J_upper'] for t in trials)) previous=load('C385_DATA.json')['rows'];old=set() for r in previous: for lift in r['source_context_lifts']: old.add((r['original_tuple'][2],r['original_tuple'][3],lift['tradition'],lift['Noah_input_record']['gear'],lift['Noah_input_record']['full430'])) new={(h['records']['x']['center'],h['records']['y']['center'],h['target_family']['tradition'],h['input_Gear'],h['target_family']['full430']) for h in hits} check('post-census comparison equals earlier positive cases',new==old) return {'step':'C390','families':familiesout,'trials':trials,'hits':hits,'outcome_masks_Jlower_Jupper_Eleft_Eright':dict(sorted(counts.items())),'counts':{'source_families':32,'target_families':32,'Gear_transitions':2,'Flood_boundaries':2,'labelled_trials':4096,'two_vertical_E_edges_pass':16,'complete_E_J_squares':8,'complete_coordinate_squares':4,'all_upper_Shem_J_edges_pass':True},'interpretation':'The unconditioned finite coherent-family census recovers exactly the four coordinate squares/eight labelled contexts already found. The original1058 side is an observed output, not a filter. This is selectivity within a defined family motif, not a probability estimate or independent historical corroboration.'}