The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::More tests => 6;
use constant EPS => 1e-2;

BEGIN { use_ok('Statistics::SDT') };

my $val;

# test inverse-phi access from Math::Cephes and return value
eval { $val = Statistics::SDT::ndtri(.05)  };

ok(!$@);

ok( about_equal($val, -1.64), "z by Math::Cephes::ndtri $val != -1.64");

# Smith (1982) examples (ensuring are using what his method expects):
$val = Statistics::SDT::ndtri(1-.5);
ok( about_equal($val, 0), "z by Math::Cephes::ndtri $val != 0");

#$val = Statistics::SDT::ndtri(1-0.1586);
#ok( about_equal($val, 1), "z by Math::Cephes::ndtri $val != 1");


# test log10 from Math::Cephes and return value
eval { $val = Statistics::SDT::log10(2)  };

ok(!$@);

ok( about_equal($val, 0.301), "z by Math::Cephes::ndtri $val != 0.301");

sub about_equal {
    return 0 if ! defined $_[0] || ! defined $_[1];
    return 1 if $_[0] + EPS > $_[1] and $_[0] - EPS < $_[1];
    return 0;
}