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_distTA(self): self.assertEqual(Hanoi.distTA([5,14,11],[13,6,11]),12) self.assertEqual(Hanoi.distTA([1,7,6],[7,2,5]),7) self.assertEqual(Hanoi.distTA(Hanoi.SA2TA([0,0,0,2]),Hanoi.SA2TA([1,1,2,0])),14) self.assertEqual(Hanoi.distTA(Hanoi.SA2TA([1,2,1,0,0,0,2]),Hanoi.SA2TA([1,2,1,1,1,2,0])),14) self.assertEqual(Hanoi.distTA(Hanoi.SA2TA([0,0,0,2]),Hanoi.SA2TA([0,0,0,2])),0)