Make Deriv use Test::Class
[Math-GSL.git] / lib / Math / GSL / Deriv / Test.pm
bloba18a6729ff35a9004e46293f5a5e691e2e0d6cb6
1 package Math::GSL::Deriv::Test;
2 use base 'Test::Class';
3 use Test::More 'no_plan';
4 use Math::GSL qw/:all/;
5 use Math::GSL::Deriv qw/:all/;
6 use Math::GSL::Errno qw/:all/;
7 use Test::Exception;
8 use Data::Dumper;
9 use strict;
10 use warnings;
12 BEGIN{ gsl_set_error_handler_off() };
14 sub make_fixture : Test(setup) {
15 my $self = shift;
16 $self->{gsl_func} = Math::GSL::Deriv::gsl_function_struct->new;
19 sub teardown : Test(teardown) {
22 sub TEST_FUNCTION_STRUCT : Tests {
23 my $self = shift;
25 my $gsl_func = Math::GSL::Deriv::gsl_function_struct->new;
27 isa_ok( $gsl_func,'Math::GSL::Deriv::gsl_function_struct');
30 sub TEST_DERIV_CENTRAL: Tests {
31 my ($status, $result, $abserr);
32 my ($x,$h)=(10,0.01);
33 my $self = shift;
34 my $gsl_func = $self->{gsl_func};
36 ($status, $result, $abserr) = gsl_deriv_central ( $gsl_func, $x, $h);
37 ok_status( $status, $GSL_SUCCESS);
38 ok_similar( $result, 2*$x, 'gsl_deriv_central works for a static function' );
40 dies_ok( sub {
41 gsl_deriv_central( 'IAMNOTACODEREF', $x, $h);
42 });
44 local $TODO = "gsl_function *";
45 $gsl_func->swig_function_set( sub { print "FOO\n" } );
46 my $func = $gsl_func->swig_function_get();
47 ok( ref $func eq 'CODE', 'swig_function_get works' );
49 $gsl_func->swig_params_set(42);
50 my $params = $gsl_func->swig_params_get();
51 ok(defined $params && $params == 42, 'swig_params_get works' );