File: GSL.t

package info (click to toggle)
libmath-gsl-perl 0.45-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 192,156 kB
  • sloc: ansic: 895,524; perl: 24,682; makefile: 12
file content (87 lines) | stat: -rw-r--r-- 2,884 bytes parent folder | download | duplicates (3)
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;