1 package Math
::GSL
::FFT
::Test
;
2 use base
q{Test::Class};
4 use Math
::GSL
::FFT qw
/:all/;
5 use Math
::GSL qw
/:all/;
7 use Math
::GSL
::Errno qw
/:all/;
10 BEGIN { gsl_set_error_handler_off
(); }
11 sub make_fixture
: Test
(setup
) {
14 sub teardown
: Test
(teardown
) {
15 unlink 'fft' if -f
'fft';
17 sub FFT_REAL_RADIX2_TRANSFORM
: Tests
19 my $data = [ (0) x
5, (1) x
22, (0) x
5 ];
20 ok_status
( gsl_fft_real_radix2_transform
($data, 1, 32));
21 print Dumper
[ $data ];
24 sub FFT_COMPLEX_RADIX2_FORWARD
: Tests
26 my $data = [ (1) x
10, (0) x
236, (1) x
10 ];
27 ok_status
( gsl_fft_complex_radix2_forward
($data, 1, 128) );
29 sub FFT_VARS
: Tests
{
30 cmp_ok
( $gsl_fft_forward, '==', -1, 'gsl_fft_forward' );
31 cmp_ok
( $gsl_fft_backward, '==', +1, 'gsl_fft_backward' );
33 sub WAVETABLE_ALLOC_FREE
: Tests
{
34 my $wavetable = gsl_fft_complex_wavetable_alloc
(42);
35 isa_ok
($wavetable, 'Math::GSL::FFT' );
36 gsl_fft_complex_wavetable_free
($wavetable);
37 ok
(!$@
, 'gsl_fft_complex_wavetable_free');
39 $wavetable = gsl_fft_halfcomplex_wavetable_alloc
(42);
40 isa_ok
($wavetable, 'Math::GSL::FFT' );
41 gsl_fft_halfcomplex_wavetable_free
($wavetable);
42 ok
(!$@
, 'gsl_fft_halfcomplex_wavetable_free');
44 $wavetable = gsl_fft_real_wavetable_alloc
(42);
45 isa_ok
($wavetable, 'Math::GSL::FFT' );
46 gsl_fft_real_wavetable_free
($wavetable);
47 ok
(!$@
, 'gsl_fft_real_wavetable_free');
51 sub WORKSPACE_ALLOC_FREE
: Tests
{
52 my $workspace = gsl_fft_complex_workspace_alloc
(42);
53 isa_ok
($workspace, 'Math::GSL::FFT' );
54 gsl_fft_complex_workspace_free
($workspace);
55 ok
(!$@
, 'gsl_fft_complex_workspace_free');
57 # there are no gsl_fft_halfcomplex_workspace_* functions
59 $workspace = gsl_fft_real_workspace_alloc
(42);
60 isa_ok
($workspace, 'Math::GSL::FFT' );
61 gsl_fft_real_workspace_free
($workspace);
62 ok
(!$@
, 'gsl_fft_real_workspace_free');