Math-Interpolator
view release on metacpan or search on metacpan
use warnings;
use strict;
use Test::More tests => 74;
BEGIN { use_ok "Math::Interpolator::Robust"; }
BEGIN { use_ok "Math::Interpolator::Knot"; }
sub pt(@) { Math::Interpolator::Knot->new(@_) }
my $ipl = Math::Interpolator::Robust->new(
pt(0, 1), pt(3, 5), pt(4, 6), pt(6, 5),
pt(9, 5.75), pt(10, 10), pt(12, 12));
eval { $ipl->y(2.5); };
like $@, qr/\Adata does not extend to x=2\.5 /;
eval { $ipl->y(10.5); };
like $@, qr/\Adata does not extend to x=10\.5 /;
while(<DATA>) {
my($x, $ok_y) = split;
is sprintf("%.4f", $ipl->y($x)), $ok_y;
}
1;
__DATA__
3.00 5.0000
3.10 5.1064
3.20 5.2126
3.30 5.3186
3.40 5.4242
3.50 5.5294
3.60 5.6338
3.70 5.7368
3.80 5.8372
3.90 5.9310
4.00 6.0000
4.10 6.0162
4.20 6.0041
4.30 5.9710
4.40 5.9226
4.50 5.8631
4.60 5.7960
4.70 5.7241
4.80 5.6497
4.90 5.5744
5.00 5.5000
5.10 5.4276
5.20 5.3583
5.30 5.2929
5.40 5.2323
5.50 5.1772
5.60 5.1280
5.70 5.0853
5.80 5.0495
5.90 5.0209
6.00 5.0000
6.10 4.9840
6.20 4.9701
6.30 4.9584
6.40 4.9489
6.50 4.9417
6.60 4.9369
6.70 4.9345
6.80 4.9345
6.90 4.9372
7.00 4.9425
( run in 1.224 second using v1.01-cache-2.11-cpan-524268b4103 )