File: 60_bigfloats.t

package info (click to toggle)
libstatistics-basic-perl 1.6611-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 392 kB
  • sloc: perl: 947; makefile: 2
file content (37 lines) | stat: -rw-r--r-- 1,130 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
use t::locale_hack;
use strict;
use Test;
use Statistics::Basic qw(:all toler=0.000_001);

plan tests => (my $t = 4);

unless( eval 'use Math::BigFloat; 1' ) {
    warn " [skipping all Math::BigFloat tests, as it does't appear to load]\n";
    skip(1,1,1) for 1 .. $t;
    exit 0;
}

my $v = $Math::BigFloat::VERSION;
warn " [M::BF version: $v]\n";
if( $v < 1.60 ) {
    warn " [skipping all Math::BigFloat tests, mysterious problems crop up without recent versions of M::BF]\n";
    skip(1,1,1) for 1 .. $t;
    exit 0;
}

my  $corr = new Statistics::Basic::Correlation([1 .. 10], [1 .. 10]);
ok( $corr == 1 );

    $corr->insert( 11, 7 );
ok( $corr == ( (129/20) / (sqrt(609/100) * sqrt(165/20))));

$corr = new Statistics::Basic::Correlation([map {Math::BigFloat->new($_)} 1 .. 10], [map {Math::BigFloat->new($_)} 1 .. 10]);
ok( $corr == 1 );

$corr->insert( map {Math::BigFloat->new($_)} 11, 7 );
my $tv = ((Math::BigFloat->new(129)/20) / (sqrt(Math::BigFloat->new(609)/100) * sqrt(Math::BigFloat->new(165)/20)));
#my $d  = $corr - $tv;
#warn " d: $d"; # 0.0000362452

$Statistics::Basic::TOLER = 0.000_1;
ok( $corr == $tv );