@@ -611,12 +611,44 @@ def test_fftfreq():
611611
612612####################################################################################
613613def test_fftshift ():
614- assert False
614+ for _ in range (50 ):
615+ n = np .random .randint (10 , 1000 )
616+ d = np .random .rand ()
617+ freqs = np .fft .fftfreq (n , d )
618+ cFreqs = NumCpp .NdArray (1 , freqs .size )
619+ cFreqs .setArray (freqs )
620+ assert np .array_equal (np .round (NumCpp .fftshift (cFreqs , NumCpp .Axis .NONE ).flatten (), 8 ), np .round (np .fft .fftshift (freqs ), 8 ))
621+
622+ dim0 = np .random .randint (10 , 100 )
623+ dim1 = np .random .randint (10 , 100 )
624+ n = dim0 * dim1
625+ d = np .random .rand ()
626+ freqs = np .fft .fftfreq (n , d ).reshape (dim0 , dim1 )
627+ cFreqs = NumCpp .NdArray (freqs .shape [0 ], freqs .shape [1 ])
628+ cFreqs .setArray (freqs )
629+ assert np .array_equal (np .round (NumCpp .fftshift (cFreqs , NumCpp .Axis .ROW ), 8 ), np .round (np .fft .fftshift (freqs , axes = 0 ), 8 ))
630+ assert np .array_equal (np .round (NumCpp .fftshift (cFreqs , NumCpp .Axis .COL ), 8 ), np .round (np .fft .fftshift (freqs , axes = 1 ), 8 ))
615631
616632
617633####################################################################################
618634def test_ifftshift ():
619- assert False
635+ for _ in range (50 ):
636+ n = np .random .randint (10 , 1000 )
637+ d = np .random .rand ()
638+ freqs = np .fft .fftfreq (n , d )
639+ cFreqs = NumCpp .NdArray (1 , freqs .size )
640+ cFreqs .setArray (freqs )
641+ assert np .array_equal (np .round (NumCpp .ifftshift (cFreqs , NumCpp .Axis .NONE ).flatten (), 8 ), np .round (np .fft .ifftshift (freqs ), 8 ))
642+
643+ dim0 = np .random .randint (10 , 100 )
644+ dim1 = np .random .randint (10 , 100 )
645+ n = dim0 * dim1
646+ d = np .random .rand ()
647+ freqs = np .fft .fftfreq (n , d ).reshape (dim0 , dim1 )
648+ cFreqs = NumCpp .NdArray (freqs .shape [0 ], freqs .shape [1 ])
649+ cFreqs .setArray (freqs )
650+ assert np .array_equal (np .round (NumCpp .ifftshift (cFreqs , NumCpp .Axis .ROW ), 8 ), np .round (np .fft .ifftshift (freqs , axes = 0 ), 8 ))
651+ assert np .array_equal (np .round (NumCpp .ifftshift (cFreqs , NumCpp .Axis .COL ), 8 ), np .round (np .fft .ifftshift (freqs , axes = 1 ), 8 ))
620652
621653
622654####################################################################################
0 commit comments