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_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_rollcall2SA(self): R=[1,0,2,0,0,1,0] SA=[1,2,1,0,0,2,1] self.assertEqual(Hanoi.rollcall2SA(R),SA)