1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
#!perl -T
package Math::GSL::GSL::Test;
# TODO: modules must be findable without consulting PERL5LIB
# when run with "prove", but not "./Build test"
# use lib ...
use base q{Test::Class};
use Test::Most;
use Test::Exception;
use Test::Taint;
use Math::GSL::SF qw/:all/;
use Math::GSL::BLAS qw/:all/;
use Math::GSL::Vector qw/:all/;
use Math::GSL::Complex qw/:all/;
use Math::GSL::Matrix qw/:all/;
use Math::GSL::CBLAS qw/:all/;
use Math::GSL qw/:all/;
use Math::GSL::Test qw/:all/;
use Math::GSL::Errno qw/:all/;
use Math::GSL qw/gsl_version/;
use Data::Dumper;
use strict;
use warnings;
BEGIN { gsl_set_error_handler_off(); }
sub make_fixture : Test(setup) {
}
sub teardown : Test(teardown) {
}
sub TEST_STUFF : Tests {
{
my $results = {
q{is_similar(undef, [1,2,3]) } => [ 0 ],
q{is_similar(0.10005,0.1000501, 1e-5)} => [ 1 ],
# TODO: temporarily disable this test (june 2020, see issue #176
# https://github.com/leto/math--gsl/issues/176
# This test fails for perl 5.28.3 on GNU/Linux with
# quadmath. The reason is still unclear.
# q{is_similar(0.10005,0.1000501, 1e-7)} => [ 0 ],
q{is_similar([1,2,3 ], [1,2,3.001])} => [ 0 ],
q{is_similar([1,2,3.001], [1,2,3.001])} => [ 1 ],
q{is_similar([1,2,3.001], [1,2,3.001],1e-2)} => [ 1 ],
q{is_similar([1,2,3.0010001], [1,2,3.0010002], 1e-5)} => [ 1 ],
q{is_similar([1,2,3.0010001], [1,2,3.0010002] )} => [ 0 ],
q{is_similar_relative( 1e8, 1e8 + 1, 1e-7) } => [ 1 ],
q{is_similar_relative( 1e8, 1e8 + 1e3, 1e-7) } => [ 0 ],
q{is_status_ok($GSL_SUCCESS)} => [ 1 ],
q{is_status_ok($GSL_EDOM)} => [ 0 ],
};
verify($results, 'Math::GSL');
}
{
ok_status(0,$GSL_SUCCESS);
ok_status(0);
}
{
my $fh = gsl_fopen('mrfuji','w');
ok(defined $fh, 'gsl_fopen can create files');
ok_status(gsl_fclose($fh));
}
{
my $fh = gsl_fopen('mrfuji','r');
ok(defined $fh, 'gsl_fopen can read files');
ok_status(gsl_fclose($fh));
unlink 'mrfuji' if -e 'mrfuji';
}
{
taint_checking_ok();
my $file = "foo";
taint($file);
dies_ok(
sub { my $fh = gsl_fopen($file, 'w'); },
"gsl_fopen doesn't work with tainted variables");
}
}
sub TEST_VERSION : Tests {
isa_ok(gsl_version(), "version");
}
Test::Class->runtests;
|