class TestShapeletSetPolarExp(object): """ class to test Shapelets """ def setup(self): self.shapeletSet = ShapeletSetPolar(exponential=True) self.shapelets = ShapeletsPolarExp() self.x, self.y = util.make_grid(10, 0.1, 1) def test_shapelet_set(self): """ #:return: """ n_max = 2 beta = 1. amp = [1, 0, 0, 0, 0, 0, 0, 0, 0] output = self.shapeletSet.function(np.array(1), np.array(1), amp, n_max, beta, center_x=0, center_y=0) npt.assert_almost_equal(output, 0.19397908887786985, decimal=8) input = np.array(0.) input += output output = self.shapeletSet.function(self.x, self.y, amp, n_max, beta, center_x=0, center_y=0) npt.assert_almost_equal(output[10], 0.4511844400064266, decimal=8) output = self.shapeletSet.function(1, 1, amp, n_max, beta, center_x=0, center_y=0) npt.assert_almost_equal(output, 0.19397908887786985, decimal=8) n_max = -1 beta = 1. amp = [1, 0, 0] output = self.shapeletSet.function(np.array(1), np.array(1), amp, n_max, beta, center_x=0, center_y=0) assert output == 0 def test_decomposition(self): """ #:return: """ scale = 10 n_max = 2 beta = 1. * scale deltaPix = 0.5 * scale amp = np.array([1, 1, -1, 1, 1, 1, 1, 1, 1]) x, y = util.make_grid(1000, deltaPix, 1) input = self.shapeletSet.function(x, y, amp, n_max, beta, center_x=0, center_y=0) amp_out = self.shapeletSet.decomposition(input, x, y, n_max, beta, deltaPix, center_x=0, center_y=0) print(amp_out, 'amp_out') for i in range(len(amp)): print(self.shapeletSet.shapelets.index2poly(i)) for i in range(len(amp)): print(i, 'i test') npt.assert_almost_equal(amp_out[i], amp[i], decimal=2) def test_function_split(self): n_max = 2 beta = 10. deltaPix = 0.1 amp = np.array([1, 1, 1, 1, 1, 1, 1, 1, 1]) x, y = util.make_grid(10, deltaPix, 1) function_set = self.shapeletSet.function_split(x, y, amp, n_max, beta, center_x=0, center_y=0) test_flux = self.shapelets.function(x, y, amp=1., n=0, m=0, complex_bool=False, beta=beta, center_x=0, center_y=0) print(np.shape(function_set)) print(np.shape(test_flux)) assert function_set[0][10] == test_flux[10] def test_index2poly(self): index = 0 n, m, complex_bool = self.shapeletSet.index2poly(index) assert n == 0 assert m == 0 assert complex_bool is False
class TestShapeletSetPolar(object): """ class to test Shapelets """ def setup(self): self.shapeletSet = ShapeletSetPolar() self.shapelets = ShapeletsPolar() self.x, self.y = util.make_grid(10, 0.1, 1) def test_shapelet_set(self): """ :return: """ n_max = 2 beta = 1. amp = [1, 0, 0, 0, 0, 0] output = self.shapeletSet.function(np.array(1), np.array(1), amp, n_max, beta, center_x=0, center_y=0) npt.assert_almost_equal(output, 0.20755374871029739, decimal=8) input = np.array(0.) input += output output = self.shapeletSet.function(self.x, self.y, amp, n_max, beta, center_x=0, center_y=0) npt.assert_almost_equal(output[10], 0.47957022395315946, decimal=8) output = self.shapeletSet.function(1, 1, amp, n_max, beta, center_x=0, center_y=0) npt.assert_almost_equal(output, 0.20755374871029739, decimal=8) n_max = -1 beta = 1. amp = [1, 0, 0, 0, 0, 0] output = self.shapeletSet.function(np.array(1), np.array(1), amp, n_max, beta, center_x=0, center_y=0) assert output == 0 def test_decomposition(self): """ :return: """ n_max = 2 beta = 10. deltaPix = 2 amp = np.array([1, 1, -1, 1, 1, 1]) x, y = util.make_grid(100, deltaPix, 1) input = self.shapeletSet.function(x, y, amp, n_max, beta, center_x=0, center_y=0) amp_out = self.shapeletSet.decomposition(input, x, y, n_max, beta, deltaPix, center_x=0, center_y=0) print(amp_out, 'amp_out') for i in range(len(amp)): print(i, 'i test') npt.assert_almost_equal(amp_out[i], amp[i], decimal=4) def test_function_split(self): n_max = 2 beta = 10. deltaPix = 0.1 amp = np.array([1, 1, 1, 1, 1, 1]) x, y = util.make_grid(10, deltaPix, 1) function_set = self.shapeletSet.function_split(x, y, amp, n_max, beta, center_x=0, center_y=0) test_flux = self.shapelets.function(x, y, amp=1., n=0, m=0, complex_bool=False, beta=beta, center_x=0, center_y=0) print(np.shape(function_set)) print(np.shape(test_flux)) assert function_set[0][10] == test_flux[10]