"""Acceptance tests are contracts; generated cases are not counted as separate tests."""importcopyimportimportlibimportosfromcontextlibimportclosingimportitertoolsimportjsonimportmathfrompathlibimportPathimportrandomimportsqlite3importsubprocessimportsysimporttempfileimportunittestPACKAGE=os.environ.get("MANUAL_IMPL","solutions")for_namein("contracts","language","flow","evidence","numerics","network","distributed","planning","ethics","ml","neural","attention","data","research","compiler","scoring"):globals()[_name]=importlib.import_module(f"{PACKAGE}.{_name}")classReasoningTests(unittest.TestCase):deftest_inventory_all_states(self):forninrange(11):reached=contracts.explore(n)self.assertEqual(reached,{contracts.Stock(n-i,i)foriinrange(n+1)})deftest_inventory_rejection_and_zero(self):s=contracts.Stock(2,1)self.assertEqual(contracts.reserve(s,3),s)self.assertEqual(contracts.reserve(s,0),s)forbadin(-1,True,1.5):withself.assertRaises(ValueError):contracts.reserve(s,bad)deftest_lexical_scope(self):e=('let','x',2,('+',('let','x',('+','x',1),'x'),'x'))self.assertEqual(language.evaluate(e),5)self.assertEqual(language.infer(e),'int')deftest_both_branches_checked(self):withself.assertRaises(TypeError):language.infer(('if',True,3,False))withself.assertRaises(TypeError):language.evaluate(('+',True,1))withself.assertRaises(ValueError):language.evaluate('free')deftest_max_flow_against_all_cuts(self):rng=random.Random(31)forninrange(2,7):for_inrange(10):c=[[0ifi==jelserng.randrange(4)forjinrange(n)]foriinrange(n)]original=copy.deepcopy(c)value,side,residual=flow.max_flow(c,0,n-1)possible=[{0}|{i+1fori,binenumerate(bits)ifb}forbitsinitertools.product((False,True),repeat=n-2)]self.assertEqual(value,min(flow.cut_capacity(c,s)forsinpossible))self.assertEqual(value,flow.cut_capacity(c,side))self.assertEqual(c,original)self.assertTrue(all(x>=0forrowinresidualforxinrow))deftest_flow_invalid(self):forc,s,tin[([[0]],0,0),([[0,-1],[0,0]],0,1),([[0,1],[0,0]],0,0)]:withself.assertRaises(ValueError):flow.max_flow(c,s,t)deftest_proportion_endpoints(self):lo,hi=evidence.wilson(0,20)self.assertAlmostEqual(lo,0.)self.assertAlmostEqual(hi,3.8416/23.8416)lo,hi=evidence.wilson(20,20)self.assertAlmostEqual(hi,1.)self.assertGreater(lo,0.)deftest_entropy_quantiles(self):self.assertAlmostEqual(evidence.entropy([.5,.25,.25]),1.5)self.assertEqual(evidence.entropy([0.,1.]),0.)self.assertEqual(evidence.quantile([0,10],.25),2.5)withself.assertRaises(ValueError):evidence.entropy([.2,.2])deftest_paired_resampling(self):a=evidence.paired_bootstrap([10,20,30],[8,18,28],seed=12)self.assertEqual(a['interval'],(-2.,-2.))self.assertEqual(a,evidence.paired_bootstrap([10,20,30],[8,18,28],seed=12))withself.assertRaises(ValueError):evidence.paired_bootstrap([1,2],[1])deftest_qr_known_and_scaled(self):A=[[1.,0.],[1.,1.],[1.,2.]];b=[1.,2.,2.]old=copy.deepcopy(A)forscalein(1.,1e-100,1e100):x=numerics.least_squares([[v*scaleforvinrow]forrowinA],[v*scaleforvinb])self.assertAlmostEqual(x[0],7/6,places=10)self.assertAlmostEqual(x[1],.5,places=10)self.assertEqual(A,old)deftest_qr_generated_exact(self):rng=random.Random(17)for_inrange(50):A=[[rng.uniform(-1,1)for_inrange(3)]for_inrange(5)]x=[rng.uniform(-2,2)for_inrange(3)]b=[math.fsum(a*vfora,vinzip(row,x))forrowinA]actual=numerics.least_squares(A,b)fora,vinzip(actual,x):self.assertAlmostEqual(a,v,places=9)deftest_qr_rank_and_shape(self):forA,bin[([[1,1],[2,2]],[1,2]),([[1,2]],[1]),([[float('nan')]],[1])]:withself.assertRaises(ValueError):numerics.least_squares(A,b)classSystemsTests(unittest.TestCase):deftest_prefix_lookup(self):routes=[('0.0.0.0/0','D'),('10.0.0.0/8','A'),('10.2.0.0/16','B')]forip,resultin[('10.2.1.8','B'),('10.9.1.8','A'),('8.8.8.8','D')]:self.assertEqual(network.route(ip,routes)[1],result)withself.assertRaises(ValueError):network.route('10.0.0.1',[('10.0.0.1/8','bad')])deftest_queue_ties_and_capacity(self):records=network.queue_trace([0,0,0,4])self.assertEqual([r['start']forrinrecords],[0,1,2,4])records=network.queue_trace([0,0,1],capacity=1)self.assertEqual([r['accepted']forrinrecords],[True,False,True])self.assertEqual(records[-1]['start'],1)deftest_queue_invalid(self):forarrivalsin([2,1],[-1],[float('inf')]):withself.assertRaises(ValueError):network.queue_trace(arrivals)withself.assertRaises(ValueError):network.queue_trace([0],service=0)deftest_all_small_quorums(self):forninrange(1,8):forrinrange(1,n+1):forwinrange(1,n+1):witness=distributed.disjoint_quorums(n,r,w)self.assertEqual(witnessisNone,r+w>n)ifwitness:self.assertFalse(witness[0]&witness[1])deftest_clocks_and_expected_unsafe_trace(self):p,q=distributed.LogicalClock(2),distributed.LogicalClock(7)self.assertEqual(p.tick(),3)self.assertEqual(q.receive(3),8)self.assertEqual(distributed.unsafe_register_trace(),((1,'new'),(0,'old')))deftest_critical_path(self):d={'A':3,'B':5,'C':4,'D':2};p={'B':['A'],'C':['A'],'D':['B','C']}r=planning.critical_path(d,p)self.assertEqual(r['finish'],10)self.assertEqual(r['slack'],{'A':0,'B':0,'C':1,'D':0})d['C']=7r=planning.critical_path(d,p)self.assertEqual(r['finish'],12)self.assertEqual(r['slack']['B'],2)deftest_critical_path_invalid_and_disconnected(self):self.assertEqual(planning.critical_path({'A':0,'B':2},{})['finish'],2)withself.assertRaises(ValueError):planning.critical_path({'A':1},{'A':['A']})withself.assertRaises(ValueError):planning.critical_path({'A':1},{'A':['B']})classLearningTests(unittest.TestCase):deftest_group_audit_denominators(self):r=ethics.audit([1,0,1,0],[.9,.6,.4,.2],['A','A','B','B'])self.assertEqual((r['overall']['tp'],r['overall']['fp'],r['overall']['fn'],r['overall']['tn']),(1,1,1,1))self.assertIsNone(ethics.binary_report([0],[.1])['recall'])deftest_stable_logits(self):self.assertTrue(math.isfinite(ml.logit_loss(1000,0)))self.assertAlmostEqual(ml.sigmoid(1000),1.)self.assertAlmostEqual(ml.sigmoid(-1000),0.)withself.assertRaises(ValueError):ml.logit_loss(1,True)deftest_logistic_gradient(self):X=[[-1,2],[1,3],[.5,-1]];y=[0,1,0];theta=[.2,-.3,.1]loss,g,gb=ml.loss_gradient(theta[:2],theta[2],X,y,.1)fori,actualinenumerate(g+[gb]):plus,minus=list(theta),list(theta);plus[i]+=1e-6;minus[i]-=1e-6hi=ml.loss_gradient(plus[:2],plus[2],X,y,.1)[0]lo=ml.loss_gradient(minus[:2],minus[2],X,y,.1)[0]self.assertAlmostEqual(actual,(hi-lo)/2e-6,places=7)deftest_logistic_fit_and_shape(self):X=[[-2],[-1],[1],[2]];y=[0,0,1,1]m=ml.fit(X,y)self.assertLess(m['objective'],math.log(2))self.assertTrue(ml.predict(m,[[-1]])[0]<.5<ml.predict(m,[[1]])[0])withself.assertRaises(ValueError):ml.fit([[1],[1,2]],[0,1])deftest_neural_gradients(self):X=[[0,0],[0,1],[1,0],[1,1]];y=[0,1,1,0]forseedin(3,7,11):self.assertLess(neural.gradient_check(neural.initialize(seed=seed),X,y),1e-7)deftest_softmax_mask_and_shift(self):a=attention.softmax([1,2,3]);b=attention.softmax([1001,1002,1003])forx,yinzip(a,b):self.assertAlmostEqual(x,y)self.assertEqual(attention.softmax([1,9],[True,False]),[1.,0.])withself.assertRaises(ValueError):attention.softmax([1],[False])deftest_causal_attention(self):out,w=attention.attention([[0],[0]],[[1],[2]],[[2],[8]],causal=True)self.assertEqual(out,[[2.],[5.]])self.assertEqual(w,[[1.,0.],[.5,.5]])changed,_=attention.attention([[0],[0]],[[1],[99]],[[2],[999]],causal=True)self.assertEqual(changed[0],out[0])deftest_group_split_and_scaler(self):rows=data.fixture();groups=[r['group']forrinrows];p=data.split_groups(groups)sets=[{groups[i]foriinp[name]}fornamein('train','validation','test')]self.assertFalse(sets[0]&sets[1]orsets[0]&sets[2]orsets[1]&sets[2])scale=data.fit_scaler([[2,5],[4,5]])self.assertEqual(scale,{'mean':[3.,5.],'scale':[1.,1.]})self.assertEqual(data.transform([[3,5]],scale),[[0.,0.]])deftest_kmeans_objective(self):r=data.kmeans([[0.],[2.],[8.],[10.]],[[0.],[10.]])self.assertEqual(r['centers'],[[1.],[9.]])self.assertEqual(r['sse'],4.)self.assertTrue(all(b<=a+1e-12fora,binzip(r['history'],r['history'][1:])))deftest_measurement_order_and_mismatch(self):r=research.paired_trials(research.manual_sum,sum,[1,2,3],repeats=4)self.assertEqual([x['first']forxinr['records']],['old','new','old','new'])withself.assertRaises(AssertionError):research.paired_trials(sum,lambdax:0,[1,2])classCompilerTests(unittest.TestCase):deftest_pipeline_examples(self):forsource,valuein[('2+3*4',14),('let("x",2,let("x",x+1,x)+x)',5),('let("x",6,x*x if x<4 else 0)',0),('-3+2',-1)]:e=compiler.parse(source)self.assertEqual(compiler.run(compiler.compile_expr(e)),value)deftest_generated_semantics(self):rng=random.Random(13)deftree(depth):ifnotdepthorrng.random()<.3:returnrng.randrange(-5,6)return(rng.choice(('+','*')),tree(depth-1),tree(depth-1))for_inrange(200):e=('if',('<',tree(2),tree(2)),tree(3),tree(3))self.assertEqual(compiler.run(compiler.compile_expr(e)),language.evaluate(e))simplified=compiler.simplify(e)self.assertEqual(language.evaluate(simplified),language.evaluate(e))deftest_whitelist_and_types(self):forsourcein('open("secret")','[1,2]','1/2','a.b','x','3 if True else False'):withself.assertRaises((ValueError,TypeError)):compiler.parse(source)deftest_verifier_malformed(self):cases=[[('ADD',),('HALT',)],[('PUSH',True),('PUSH',1),('ADD',),('HALT',)],[('LOAD',0),('HALT',)],[('JMP',0),('HALT',)],[('PUSH',1),('PUSH',2),('HALT',)],[('PUSH',1)]]forcodeincases:withself.assertRaises(ValueError):compiler.verify(code)deftest_verifier_definite_assignment(self):code=[('PUSH',True),('JIF',5),('PUSH',3),('STORE',0),('JMP',6),('JMP',6),('LOAD',0),('HALT',)]withself.assertRaises(ValueError):compiler.verify(code)deftest_simplification_contract(self):self.assertEqual(compiler.simplify(('+',3,0)),3)withself.assertRaises(TypeError):compiler.simplify(('if',True,1,False))e=('*',2**255,2)self.assertEqual(compiler.simplify(e),e)# oversized literal not introducedclassScoringTests(unittest.TestCase):@classmethoddefsetUpClass(cls):cls.artifact,cls.report=scoring.experiment()defsetUp(self):self.temp=tempfile.TemporaryDirectory();self.root=Path(self.temp.name)self.p,self.c=self.root/'p.db',self.root/'c.db'self.art=copy.deepcopy(self.artifact)self.identity=scoring.fingerprint(self.art)deftearDown(self):self.temp.cleanup()defsubmit(self,job='job-1',features=(.2,.3)):con=scoring.connect_store(self.p,'producer')try:returnscoring.submit(con,job,list(features),self.identity)finally:con.close()deftest_artifact_and_reproducibility(self):a,r=scoring.experiment()self.assertEqual(a,self.art);self.assertEqual(r,self.report)groups=list(r['group_partitions'].values())self.assertFalse(set(groups[0])&set(groups[1]))path=self.root/'model.json';path.write_text(scoring.canonical(a))self.assertEqual(scoring.load_artifact(path),a)deftest_artifact_schema_rejection(self):a=copy.deepcopy(self.art);a['features'].reverse()withself.assertRaises(ValueError):scoring.validate_artifact(a)path=self.root/'bad.json';path.write_text('{"schema":1,"schema":1}')withself.assertRaises(ValueError):scoring.load_artifact(path)deftest_duplicate_and_conflict(self):self.assertTrue(self.submit());self.assertFalse(self.submit())withself.assertRaises(ValueError):self.submit(features=(9.,.3))r=scoring.worker(self.p,self.c,self.art)self.assertTrue(0<=r['score']<=1)self.assertIsNone(scoring.worker(self.p,self.c,self.art))deftest_wrong_model(self):self.submit();bad=copy.deepcopy(self.art);bad['bias']+=.1withself.assertRaises(ValueError):scoring.worker(self.p,self.c,bad)deftest_process_death_and_reopen(self):self.submit();path=self.root/'model.json';path.write_text(scoring.canonical(self.art))result=subprocess.run([sys.executable,'-m',f'{PACKAGE}.scoring','crashworker',str(self.p),str(self.c),str(path)],capture_output=True,text=True,timeout=15)self.assertEqual(result.returncode,23,result.stderr)withclosing(sqlite3.connect(self.c))ascon:self.assertEqual(con.execute('SELECT COUNT(*) FROM results').fetchone()[0],1)withclosing(sqlite3.connect(self.p))ascon:self.assertEqual(con.execute('SELECT ack FROM outbox').fetchone()[0],0)scoring.worker(self.p,self.c,self.art)withclosing(sqlite3.connect(self.c))ascon:self.assertEqual(con.execute('SELECT COUNT(*) FROM results').fetchone()[0],1)withclosing(sqlite3.connect(self.p))ascon:self.assertEqual(con.execute('SELECT ack FROM outbox').fetchone()[0],1)deftest_receipt_effect_rollback(self):self.submit();con=scoring.connect_store(self.c,'consumer')con.execute("CREATE TRIGGER reject_result BEFORE INSERT ON results BEGIN SELECT RAISE(ABORT,'test'); END")con.close()withself.assertRaises(sqlite3.IntegrityError):scoring.worker(self.p,self.c,self.art)withclosing(sqlite3.connect(self.c))ascon:self.assertEqual(con.execute('SELECT COUNT(*) FROM receipts').fetchone()[0],0)deftest_producer_transaction_rollback(self):con=scoring.connect_store(self.p,'producer')try:con.execute("CREATE TRIGGER reject_outbox BEFORE INSERT ON outbox BEGIN SELECT RAISE(ABORT,'test'); END")withself.assertRaises(sqlite3.IntegrityError):scoring.submit(con,'x',[1,2],self.identity)self.assertEqual(con.execute('SELECT COUNT(*) FROM jobs').fetchone()[0],0)finally:con.close()deftest_busy_writer(self):self.submit();lock=scoring.connect_store(self.c,'consumer');lock.execute('BEGIN IMMEDIATE')try:withself.assertRaises(sqlite3.OperationalError):scoring.worker(self.p,self.c,self.art)finally:lock.execute('ROLLBACK');lock.close()if__name__=='__main__':unittest.main()