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_makeMoves(self): #probably calls isLegalMove L=[[4],[1,2,3],[]]; Hanoi.makeMove(L,2,0); Hanoi.makeMove(L,2,2); Hanoi.makeMove(L,0,2); Hanoi.makeMove(L,1,2); Hanoi.makeMove(L,1,0); Hanoi.makeMove(L,2,0); Hanoi.makeMove(L,1,2); Hanoi.makeMove(L,0,1); Hanoi.makeMove(L,0,2); Hanoi.makeMove(L,1,2); k=[[],[],[1,2,3,4]]; self.assertEqual(L,k);