from research import *
s=begin(1256,'Generate the full finite placement field','How do thethree source switches produce the405 envelope?',{'T':60,'C':130,'S':215},['C1253','Strategy §4.1','File07 §2.11.1a'])
out=sorted([{'T_on':t,'C_on':c,'S_on':so,'offset':60*t+130*c+215*so} for t in [0,1] for c in [0,1] for so in [0,1]],key=lambda x:x['offset']);values=[x['offset'] for x in out];gaps=[b-a for a,b in zip(values,values[1:])]
a=artifact('model/regular_kernel_eight_state_field.json',json.dumps({'states':out,'ordered_offsets':values,'gaps':gaps,'width':values[-1]-values[0],'ordering_premises':'0<T<C andS>T+C','scope':'source-approvedbinarychoices at a nodewhere allthree supportsapply; not universalwholegenealogytranslations'},indent=2)+'\n')
finish(s,{'placement_field':a,'offsets':values,'gaps':gaps},'The completefield is0,60,130,190,215,275,345,405, with60|70|60|25|60|70|60 spacings. Its405 width comes fromT+C+S, independently of thecoefficientfive formula.','Distinguish thetwo different four-state restrictions that source summaries use.',{'eight_distinct':len(set(values))==8,'width405':values[-1]==405,'spacing':gaps==[60,70,60,25,60,70,60]})
