def test_distCoherence(self): for iterations in range(10000): R_A=Hanoi.randLocationR(8) T_A=Hanoi.SA2TA(Hanoi.rollcall2SA(R_A)) L_A=Hanoi.rollcall2List(R_A) R_B=Hanoi.randLocationR(8) T_B=Hanoi.SA2TA(Hanoi.rollcall2SA(R_B)) dist0=Hanoi.distTA(T_A,T_B) #look for neighbors of A, and their distances to B Legal=[[False,False,False],[False,False,False],[False,False,False]] for i in range(3): for j in range(3): Legal[i][j]=Hanoi.isLegalMove(L_A,i,j) Legal[i][i]=False #not neighbor to self distVect=[] for i in range(3): for j in range(3): if Legal[i][j]: Hanoi.makeMove(L_A,i,j) T_temp=Hanoi.SA2TA(Hanoi.rollcall2SA(Hanoi.list2Rollcall(L_A))) distVect.append(Hanoi.distTA(T_temp,T_B)) Hanoi.makeMove(L_A,j,i) self.assertTrue((dist0-1 in distVect) or dist0==0) for e in distVect: stmt=(e==dist0 or e==dist0+1 or e==dist0-1) self.assertTrue(stmt) self.assertTrue(len(distVect)==3 or len(distVect)==2)
def test_TA2SA(self): for i in range(7): for j in range(5,10): SA1=Hanoi.randLocationR(j)#It's just 0,1,2's anyhow TA=Hanoi.SA2TA(SA1) SA2=Hanoi.TA2SA(TA) self.assertEqual(SA1,SA2)
def test_SA2rollcall(self): for i in range(7): for j in range(5,10): R1=Hanoi.randLocationR(j) SA=Hanoi.rollcall2SA(R1) R2=Hanoi.SA2rollcall(SA) self.assertEqual(R1,R2)
def test_randLocationR(self): r=Hanoi.randLocationR(100) self.assertEqual(0 in r, True) self.assertEqual(1 in r, True) self.assertEqual(2 in r, True) self.assertEqual(len(r),100) sm=0 for i in range(100): self.assertTrue(r[i]==0 or r[i]==1 or r[i]==2) sm=sm+r[i] self.assertEqual(sm<125, True) self.assertEqual(sm>75, True)
def test_list2Rollcall(self): for i in range(5,100): r1=Hanoi.randLocationR(i) L=Hanoi.rollcall2List(r1) r2=Hanoi.list2Rollcall(L) self.assertEqual(r1,r2)