from research import *
s=begin(996,'Complete retained-part field reconstruction','Do the two measurements recover every supplied component pair?',{'fields':[[690,700,750],[720,730,780],[750,760,810],[12600,12740,13440]]},['C995','SupplementA','File52c'])
rows=[]
for t0,tp,te in s['inputs']['fields']:
 u=69*(tp-t0);v=t0-u;rows.append({'totals':[t0,tp,te],'recovered':[u,v],'residual':5*t0-6*tp+te})
a=artifact('model/retained_part_complete_field.json',json.dumps(rows,indent=2)+'\n')
finish(s,{'complete_field':a,'recovered':[r['recovered'] for r in rows]},'The same two-measurement inverse recovers690 with zero, one or two30 flanks, and the9660|2940 macro split. The third total is a dependent consistency check.','Determine what this numerical recovery leaves to the sources.',{'all_residuals_zero':all(r['residual']==0 for r in rows),'all_parts': [r['recovered'] for r in rows]==[[690,0],[690,30],[690,60],[9660,2940]]})
