예제 #1
0
 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)    
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
 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)