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)
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