@@ -245,4 +245,52 @@ TEST(Utils, Linspace) {
245245 const arr_real x = linspace (-5 , 5 , 2 );
246246 ASSERT_EQ_ARR_REAL (x, arr_real{-5 , 5 }, 1e-3 );
247247 }
248+ }
249+
250+ // -------------------------------------------------------------------------------------------------
251+ TEST (Utils, Circshift) {
252+ {
253+ arr_real x1 = {1 };
254+ arr_real x2 = circshift (x1, 1 );
255+ ASSERT_EQ_ARR_REAL (x2, arr_real{1 });
256+ }
257+ {
258+ arr_real x1 = {1 , 2 , 3 , 4 , 5 };
259+ arr_real x2 = circshift (x1, 0 );
260+ ASSERT_EQ_ARR_REAL (x2, arr_real{1 , 2 , 3 , 4 , 5 });
261+ }
262+ {
263+ arr_real x1 = {1 , 2 , 3 , 4 , 5 };
264+ arr_real x2 = circshift (x1, 1 );
265+ ASSERT_EQ_ARR_REAL (x2, arr_real{5 , 1 , 2 , 3 , 4 });
266+ }
267+ {
268+ arr_real x1 = {1 , 2 , 3 , 4 , 5 };
269+ arr_real x2 = circshift (x1, -1 );
270+ ASSERT_EQ_ARR_REAL (x2, arr_real{2 , 3 , 4 , 5 , 1 });
271+ }
272+ }
273+
274+ // -------------------------------------------------------------------------------------------------
275+ TEST (Utils, FftShift) {
276+ {
277+ arr_real x1 = {1 , 2 , 3 , 4 , 5 };
278+ arr_real x2 = fftshift (x1);
279+ ASSERT_EQ_ARR_REAL (x2, arr_real{4 , 5 , 1 , 2 , 3 });
280+ }
281+ {
282+ arr_real x1 = {1 , 2 , 3 , 4 , 5 , 6 };
283+ arr_real x2 = fftshift (x1);
284+ ASSERT_EQ_ARR_REAL (x2, arr_real{4 , 5 , 6 , 1 , 2 , 3 });
285+ }
286+ {
287+ arr_real x1 = {1 , 2 };
288+ arr_real x2 = fftshift (x1);
289+ ASSERT_EQ_ARR_REAL (x2, arr_real{2 , 1 });
290+ }
291+ {
292+ arr_real x1 = {1 };
293+ arr_real x2 = fftshift (x1);
294+ ASSERT_EQ_ARR_REAL (x2, arr_real{1 });
295+ }
248296}
0 commit comments