Refactor inclusion of system.i to one place
[Math-GSL.git] / t / Multiroots.t
blob70cc8e76a885359b76388835d1e4274fcb1850eb
1 package Math::GSL::Multiroots::Test;
2 use base q{Test::Class};
3 use Test::More tests => 11;
4 use Math::GSL             qw/:all/;
5 use Math::GSL::Errno      qw/:all/;
6 use Math::GSL::Test       qw/:all/;
7 use Math::GSL::Multiroots qw/:all/;
8 use Data::Dumper;
9 use strict;
11 BEGIN { gsl_set_error_handler_off(); }
13 sub make_fixture : Test(setup) {
14     my $self = shift;
15     $self->{fdfsolver} = gsl_multiroot_fdfsolver_alloc($gsl_multiroot_fdfsolver_newton,2);
16     $self->{fsolver} = gsl_multiroot_fsolver_alloc($gsl_multiroot_fsolver_broyden,2);
19 sub teardown : Test(teardown) {
20     my $self = shift;
21     gsl_multiroot_fsolver_free($self->{fsolver});
22     gsl_multiroot_fdfsolver_free($self->{fdfsolver});
25 sub TEST_FSOLVER_ALLOC : Tests {
26     my $self = shift;
27     isa_ok($self->{fsolver}, 'Math::GSL::Multiroots');
30 sub TEST_FSOLVER_SET : Tests {
31     local $TODO = 'need gsl_multiroot_function typemap';
32     my $self = shift;
33     my $vector = Math::GSL::Vector->new(2);
34     ok_status(gsl_multiroot_fsolver_set($self->{fsolver}, 
35             sub { die 'This will surely fail' },
36             $vector->raw,
37     ));
40 sub TEST_FDFSOLVER_ALLOC : Tests {
41     my $self = shift;
42     isa_ok($self->{fdfsolver}, 'Math::GSL::Multiroots');
45 sub TEST_FSOLVER_TYPES : Tests {
46     my $self = shift;
47     isa_ok( $_, 'Math::GSL::Multiroots') 
48         for ($gsl_multiroot_fsolver_dnewton,
49             $gsl_multiroot_fsolver_broyden,
50             $gsl_multiroot_fsolver_hybrid,
51             $gsl_multiroot_fsolver_hybrids,
52             $gsl_multiroot_fdfsolver_newton,
53             $gsl_multiroot_fdfsolver_gnewton,
54             $gsl_multiroot_fdfsolver_hybridj,
55             $gsl_multiroot_fdfsolver_hybridsj
56         );
58 Test::Class->runtests;