From e1d043951e85f70947c0eeb12bcdc289fbb69a0f Mon Sep 17 00:00:00 2001 From: Thierry Moisan Date: Wed, 20 Aug 2008 21:08:27 -0400 Subject: [PATCH] Finishing to add test to Statistics coming from the GSL source --- lib/Math/GSL/Statistics/Test.pm | 72 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/lib/Math/GSL/Statistics/Test.pm b/lib/Math/GSL/Statistics/Test.pm index ea1cdac..052b44e 100644 --- a/lib/Math/GSL/Statistics/Test.pm +++ b/lib/Math/GSL/Statistics/Test.pm @@ -2,6 +2,7 @@ package Math::GSL::Statistics::Test; use base q{Test::Class}; use Test::More; use Math::GSL::Statistics qw/:all/; +use Math::GSL::Sort qw/:all/; use Math::GSL qw/:all/; use strict; @@ -110,4 +111,75 @@ sub GSL_STATS_MIN_INDEX : Tests { my $x = gsl_stats_min_index($self->{data}, 1, 20); ok(is_similar_relative($x, 12)); } + +sub GSL_STATS_MINMAX_INDEX : Tests { + my $self = shift; + my ($min, $max) = gsl_stats_minmax_index($self->{data}, 1, 20); + ok(is_similar_relative($min, 12)); + ok(is_similar_relative($max, 9)); +} + +sub GSL_STATS_MEDIAN_FROM_SORTED_DATA_EVEN : Tests { + my $self = shift; + my $sorted = gsl_sort($self->{data}, 1, 20); + my $x = gsl_stats_median_from_sorted_data($sorted, 1, 20); + ok(is_similar_relative($x, 18)); +} + +sub GSL_STATS_MEDIAN_FROM_SORTED_DATA_ODD : Tests { + my $self = shift; + my $sorted = gsl_sort($self->{data}, 1, 20); + my $x = gsl_stats_median_from_sorted_data($sorted, 1, 19); + ok(is_similar_relative($x, 18)); +} + +sub GSL_STATS_QUANTILE_FROM_SORTED_DATA_0 : Tests { + my $self = shift; + my $sorted = gsl_sort($self->{data}, 1, 20); + my $x = gsl_stats_quantile_from_sorted_data($sorted, 1, 20, 0); + ok(is_similar_relative($x, 8)); +} + +sub GSL_STATS_QUANTILE_FROM_SORTED_DATA_100 : Tests { + my $self = shift; + my $sorted = gsl_sort($self->{data}, 1, 20); + my $x = gsl_stats_quantile_from_sorted_data($sorted, 1, 20, 1); + ok(is_similar_relative($x, 22)); +} + +sub GSL_STATS_QUANTILE_FROM_SORTED_DATA_50_EVEN : Tests { + my $self = shift; + my $sorted = gsl_sort($self->{data}, 1, 20); + my $x = gsl_stats_quantile_from_sorted_data($sorted, 1, 20, 0.5); + ok(is_similar_relative($x, 18)); +} + +sub GSL_STATS_QUANTILE_FROM_SORTED_DATA_50_ODD : Tests { + my $self = shift; + my $sorted = gsl_sort($self->{data}, 1, 20); + my $x = gsl_stats_quantile_from_sorted_data($sorted, 1, 20, 0.5); + ok(is_similar_relative($x, 18)); +} + +sub GSL_STATS_LAG1_AUTOCORRELATION : Tests { + my $nacc3 = 1001 ; + my $i; + my $numacc3; + $numacc3->[0] = 1000000.2 ; + for ($i = 1 ; $i < 1000 ; $i += 2) + { + $numacc3->[$i] = 1000000.1 ; + $numacc3->[$i+1] = 1000000.3 ; } + my $mean = gsl_stats_mean ($numacc3, 1, $nacc3); + my $sd = gsl_stats_sd ($numacc3, 1, $nacc3); + my $lag1 = gsl_stats_lag1_autocorrelation ($numacc3, 1, $nacc3); + + my $expected_mean = 1000000.2; + my $expected_sd = 0.1; + my $expected_lag1 = -0.999; + + ok(is_similar_relative($mean, $expected_mean)); + ok(is_similar_relative($sd, $expected_sd)); + ok(is_similar_relative($lag1, $expected_lag1)); +} 1; -- 2.11.4.GIT