#!/usr/bin/perl
#==================================================================
# Author : Djibril Ousmanou
# Copyright : 2009
# Update : 20/07/2009
# AIM : Test quantile type 7 calcul
#==================================================================
use strict;
use warnings;
use Carp;
use Test::More tests => 15;
use Statistics::Descriptive;
my @data1 = ( 1 .. 10 );
my @data2 = (
601, 449, 424, 568, 569, 447, 425, 621, 616, 573, 584, 635, 480, 437,
724, 711, 717, 576, 724, 585, 458, 752, 753, 709, 584, 748, 628, 483,
739, 747, 694, 601, 758, 653, 487, 720, 750, 660, 588, 719, 631, 492,
584, 647, 548, 585, 649, 532, 492, 598, 653, 524, 567, 570, 506, 475,
640, 725, 688, 567, 634, 520, 488, 718, 769, 739, 576, 718, 527, 497,
698, 736, 785, 581, 733, 540, 537, 683, 691, 785, 588, 733, 531, 564,
581, 554, 765, 580, 626, 510, 533, 495, 470, 713, 571, 573, 476, 526,
441, 431, 686, 563, 496, 447, 518
);
my @data3 = qw/-9 2 3 44 -10 6 7/;
my %DataTest = (
'First sample test' => {
'Data' => \@data1,
'Test' => {
'0' => '1',
'1' => '3.25',
'2' => '5.5',
'3' => '7.75',
'4' => '10',
},
},
'Second sample test' => {
'Data' => \@data2,
'Test' => {
'0' => '424',
'1' => '526',
'2' => '584',
'3' => '698',
'4' => '785',
},
},
'Third sample test' => {
'Data' => \@data3,
'Test' => {
'0' => '-10',
'1' => '-3.5',
'2' => '3',
'3' => '6.5',
'4' => '44',
},
}
);
# Test Quantile,
foreach my $MessageTest ( sort keys %DataTest ) {
my $stat = Statistics::Descriptive::Full->new();
$stat->add_data( @{ $DataTest{$MessageTest}->{Data} } );
for ( 0 .. 4 ) {
is(
$stat->quantile($_),
$DataTest{$MessageTest}->{Test}{$_},
$MessageTest . ", Q$_"
);
}
}