# Test routine for PDL::Fit::Gaussian module use PDL; use PDL::Fit::Gaussian; print "1..2\n"; kill INT,$$ if $ENV{UNDER_DEBUGGER}; # Useful for debugging. $count=1; sub ok { my $no = $count++ ; my $result = shift ; print "not " unless $result ; print "ok $no\n" ; } sub nint{int($_[0]->at+0.5)}; $g1 = pdl qw[ 2.1990459 1.9464173 2.1565406 2.1672124 2.2701938 1.82992 1.914893 2.1466146 1.8822749 2.0293979 2.0101469 2.210302 2.6183602 4.3191846 7.8333737 11.525845 13.069404 11.364827 7.2853706 4.3667506 2.2601078 2.0051197 1.802916 2.1735853 1.7985277 1.9498281 1.7745239 1.7534224 2.6137111 1.8443813 2.0064845 2.1981632 2.0572412 1.8928303 2.0703847 2.0121833 1.9967828 2.3846479 1.8907906 2.1486651]; $g2 = pdl qw[ 13.013418 11.397573 7.4494489 4.5594057 2.5728955 2.0687907 2.1953927 2.2819689 1.7046446 2.3276816 2.0130417 1.72691 1.8260466 2.0842572 2.2455532 1.9223378 1.695866 1.5893454 1.9787549 1.6941413 1.8576307 2.3780392 2.2588472 2.2080773 1.8754143 2.019966 1.9363813 2.1414206 2.0062853 2.0867273 2.0158617 1.6481802 1.9686077 2.2979197 2.2963699 2.1171346 1.8859732 2.1277667 2.0716804 1.9251175]; my ($xc, $pk, $fwhm, $back, $err, $fit) = fitgauss1d(xvals($g1), $g1); #points $g1; hold; line $fit; rel; ok( nint($xc)==16 && nint($pk)==11 && nint($fwhm)==4 && nint($back)==2 && nint($err)==0 && sum(abs($g1-$fit))<10); ($pk, $fwhm, $back, $err, $fit) = fitgauss1dr(xvals($g2),$g2); #points $g2; hold; line $fit; rel; ok(nint($pk)==11 && nint($fwhm)==4 && nint($back)==2 && nint($err)==0 && sum(abs($g2-$fit))<10);