Beispiel #1
0
 def test_getitem(self):
     """Test for item getting, slicing, basic evaluation correctness."""
     
     shape = self.code_array.shape
     x_list = v.getints(1, shape[0]-1, 100)
     y_list = v.getints(1, shape[1]-1, 100)
     z_list = v.getints(1, shape[2]-1, 100)
     for x, y, z in zip(x_list, y_list, z_list):
         assert self.code_array[x, y, z] == None
         self.code_array[:x, :y, :z]
         self.code_array[:x:2, :y:2, :z:-1]
         
     get_shape = numpy.array(self.code_array[:, :, :]).shape
     orig_shape = self.code_array.shape
     assert get_shape == orig_shape
     
     empty_grid = CodeArray((0, 0, 0))
     assert empty_grid[:, :, :].tolist() == []
     
     gridsize = 100
     filled_grid = CodeArray((gridsize, 10, 1))
     for i in v.getints(-2**99, 2**99, 10):
         for j in xrange(gridsize):
             filled_grid[j, 0, 0] = str(i)
             filled_grid[j, 1, 0] = str(i) + '+' + str(j)
             filled_grid[j, 2, 0] = str(i) + '*' + str(j)                
         
         for j in xrange(gridsize):
             assert filled_grid[j, 0, 0] == i
             assert filled_grid[j, 1, 0] == i + j
             assert filled_grid[j, 2, 0] == i * j
             
         for j, funcname in enumerate(['int', 'gmpy.mpz', 'gmpy.mpq']):
             filled_grid[0, 0, 0] = "gmpy = __import__('gmpy')"
             filled_grid[0, 0, 0]
             filled_grid[1, 0, 0] = "math = __import__('math')"
             filled_grid[1, 0, 0]
             filled_grid[j, 3, 0] = funcname +' (' + str(i) + ')'
             
             res = eval(funcname +"("+"i"+")")
             assert filled_grid[j, 3, 0] == eval(funcname +"("+"i"+")")
     #Test X, Y, Z
     for i in xrange(10):
         self.code_array[i, 0, 0] = str(i)
     assert [self.code_array((i, 0, 0)) for i in xrange(10)] == \
                 map(str, xrange(10))
     
     assert [self.code_array[i, 0, 0] for i in xrange(10)] == range(10)
     
     # Test cycle detection
     
     filled_grid[0, 0, 0] = "numpy.arange(0, 10, 0.1)"
     filled_grid[1, 0, 0] = "sum(S[0,0,0])"
     
     assert filled_grid[1, 0, 0] == sum(numpy.arange(0, 10, 0.1))
     
     filled_grid[0, 0, 0] = "S[5:10, 1, 0]"
     assert filled_grid[0, 0, 0].tolist() == range(7, 12)
Beispiel #2
0
 def test_new(self):
     """Tests creation of a new spreadsheets"""
     
     no_tests = 10
     
     dims = vartypes.getints(1, 1000000, no_tests*3)
     dims = zip(dims[::3], dims[1::3], dims[2::3])
     
     for dim in dims:
         code_array = CodeArray(dim)
         self.event.code_array = code_array
         self.grid.actions.new(self.event)
         assert self.grid.GetTable().data_array.shape == dim