def test_center(self): """Test that _centered method is compatible with shift/unshift""" shape = (5, 2) a0 = np.arange(10).reshape(shape) a_pad = fft._pad(a0, (9, 11)) truth = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0], [0, 0, 0, 0, 0, 4, 5, 0, 0, 0, 0], [0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0], [0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] assert_array_equal(a_pad, truth) a_shift = np.fft.ifftshift(a_pad) truth = [[4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0], [6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0]] assert_array_equal(a_shift, truth) # Shifting back should give us a_pad again a_shift_back = np.fft.fftshift(a_shift) assert_array_equal(a_shift_back, a_pad) # _centered should undo the padding, returning the original array a_final = fft._centered(a_pad, shape) assert_array_equal(a_final, a0)
def test_shift(self): """Test that padding and fft shift/unshift are consistent""" a0 = np.ones((1, 1)) a_pad = fft._pad(a0, (5, 4)) truth = [ [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], ] assert_array_equal(a_pad, truth) a_shift = np.fft.ifftshift(a_pad) truth = [ [1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], ] assert_array_equal(a_shift, truth) # Shifting back should give us a_pad again a_shift_back = np.fft.fftshift(a_shift) assert_array_equal(a_shift_back, a_pad)