From ddd199f8833ef785eb2483f3d9ec0a8507e15008 Mon Sep 17 00:00:00 2001 From: Jonathan Leto Date: Fri, 1 Aug 2008 00:41:40 -0700 Subject: [PATCH] Refactor Histogram tests. --- lib/Math/GSL/Histogram/Test.pm | 56 ++++++++++++++---------------------------- 1 file changed, 18 insertions(+), 38 deletions(-) diff --git a/lib/Math/GSL/Histogram/Test.pm b/lib/Math/GSL/Histogram/Test.pm index d8bc45f..02df531 100644 --- a/lib/Math/GSL/Histogram/Test.pm +++ b/lib/Math/GSL/Histogram/Test.pm @@ -12,6 +12,7 @@ BEGIN{ gsl_set_error_handler_off(); } sub make_fixture : Test(setup) { my $self = shift; $self->{H} = gsl_histogram_alloc( 100 ); + gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); } sub teardown : Test(teardown) { @@ -26,9 +27,9 @@ sub ALLOC_FREE : Tests { } sub SET_RANGES_UNIFORM : Tests { - my $self = shift; - ok_status(gsl_histogram_set_ranges_uniform($self->{H}, 0, 100)); - ok_status(gsl_histogram_set_ranges_uniform($self->{H}, 0, -100), $GSL_EINVAL); + my $H = gsl_histogram_alloc(100); + ok_status(gsl_histogram_set_ranges_uniform($H, 0, 100)); + ok_status(gsl_histogram_set_ranges_uniform($H, 0, -100), $GSL_EINVAL); } sub SET_RANGES : Tests { @@ -41,7 +42,6 @@ sub SET_RANGES : Tests { sub CLONE : Tests { my $self = shift; - local $TODO = "gsl_histogram_clone does not return a gsl_histogram_t"; my $copy = gsl_histogram_clone($self->{H}); isa_ok( $copy, 'Math::GSL::Histogram'); } @@ -59,7 +59,6 @@ sub MEMCPY : Tests { sub INCREMENT : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); ok_status(gsl_histogram_increment($self->{H}, 50.5 )); ok_status(gsl_histogram_increment($self->{H}, -150.5 ), $GSL_EDOM); @@ -68,7 +67,6 @@ sub INCREMENT : Tests { sub GET : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); ok_status(gsl_histogram_increment($self->{H}, 50.5 )); cmp_ok(1,'==', gsl_histogram_get($self->{H}, 50 ) ); @@ -76,7 +74,6 @@ sub GET : Tests { sub MIN_MAX : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); ok_status(gsl_histogram_increment($self->{H}, 50.5 )); cmp_ok(100,'==', gsl_histogram_max($self->{H})); @@ -85,7 +82,6 @@ sub MIN_MAX : Tests { sub MIN_VAL_MAX_VAL : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); ok_status(gsl_histogram_increment($self->{H}, 50.5 )); cmp_ok(1,'==', gsl_histogram_max_val($self->{H})); @@ -94,7 +90,6 @@ sub MIN_VAL_MAX_VAL : Tests { sub MEAN : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); ok_status(gsl_histogram_increment($self->{H}, 50.5 )); ok_status(gsl_histogram_increment($self->{H}, 11.5 )); @@ -103,16 +98,13 @@ sub MEAN : Tests { sub SUM : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); - -ok_status(gsl_histogram_increment($self->{H}, 50.5 )); + ok_status(gsl_histogram_increment($self->{H}, 50.5 )); ok_status(gsl_histogram_increment($self->{H}, 11.5 )); ok_similar(2, gsl_histogram_sum($self->{H})); } sub SHIFT : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); ok_status(gsl_histogram_shift($self->{H}, 2)); is_deeply( [ map { gsl_histogram_get($self->{H}, $_) } (0..99) ], [ (2) x 100 ] @@ -122,11 +114,10 @@ sub SHIFT : Tests { sub FWRITE_FREAD : Tests { my $self = shift; my $stream = fopen("histogram", "w"); - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); ok_status(gsl_histogram_increment($self->{H}, 50.5 )); ok_status(gsl_histogram_fwrite($stream, $self->{H})); - fclose($stream); + ok_status(fclose($stream)); $stream = fopen("histogram", "r"); my $h = gsl_histogram_alloc(100); @@ -134,12 +125,11 @@ sub FWRITE_FREAD : Tests { is_deeply( [ map { gsl_histogram_get($h, $_) } (0..99) ], [ (0) x 50, 1, (0) x 49 ] ); - fclose($stream); + ok_status(fclose($stream)); } sub GET_RANGE : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); my @got = gsl_histogram_get_range($self->{H}, 50); ok_status($got[0]); is_deeply( [ $got[1], $got[2]], [50, 51]); @@ -147,7 +137,6 @@ sub GET_RANGE : Tests { sub FIND : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); my @got = gsl_histogram_find($self->{H}, 1); ok_status($got[0]); cmp_ok($got[1], '==', 1); @@ -155,7 +144,6 @@ sub FIND : Tests { sub ACCUMULATE : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); ok_status(gsl_histogram_accumulate($self->{H}, 50.5, 3 )); cmp_ok(3,'==', gsl_histogram_get($self->{H}, 50 ) ); @@ -164,15 +152,13 @@ sub ACCUMULATE : Tests { sub BINS : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); cmp_ok(gsl_histogram_bins($self->{H}), '==', 100); } sub RESET : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); - gsl_histogram_shift($self->{H}, 2); - gsl_histogram_reset($self->{H}); + ok_status(gsl_histogram_shift($self->{H}, 2)); + ok_status(gsl_histogram_reset($self->{H})); is_deeply( [ map { gsl_histogram_get($self->{H}, $_) } (0..99) ], [ (0) x 100 ] ); @@ -180,20 +166,21 @@ sub RESET : Tests { sub MIN_BIN_MAX_BIN : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); ok_status(gsl_histogram_increment($self->{H}, 50.5 )); cmp_ok(gsl_histogram_min_bin($self->{H}), '==', 0); cmp_ok(gsl_histogram_max_bin($self->{H}), '==', 50); } sub GSL_HISTOGRAM_SIGMA : Tests { - local $TODO = "Don't know how to test this function"; + my $self = shift; + map { gsl_histogram_increment($self->{H}, $_ ) } (0,1); + my $standard_deviation = gsl_histogram_sigma($self->{H}); + ok_similar ( 0.5, $standard_deviation ); } sub EQUAL_BINS_P : Tests { my $self = shift; my $h2 = gsl_histogram_alloc(100); - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); gsl_histogram_set_ranges_uniform($h2, 0, 100); cmp_ok(gsl_histogram_equal_bins_p($self->{H}, $h2), '==', 1); gsl_histogram_set_ranges_uniform($self->{H}, 0, 50); @@ -203,7 +190,6 @@ sub EQUAL_BINS_P : Tests { sub ADD : Tests { my $self = shift; my $h2 = gsl_histogram_alloc(100); - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); gsl_histogram_set_ranges_uniform($h2, 0, 100); gsl_histogram_increment($h2, 50.5 ); ok_status(gsl_histogram_add($self->{H}, $h2)); @@ -213,7 +199,6 @@ sub ADD : Tests { sub SUB : Tests { my $self = shift; my $h2 = gsl_histogram_alloc(100); - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); gsl_histogram_set_ranges_uniform($h2, 0, 100); gsl_histogram_increment($h2, 50.5 ); gsl_histogram_increment($self->{H}, 50.5 ); @@ -224,7 +209,6 @@ sub SUB : Tests { sub MUL : Tests { my $self = shift; my $h2 = gsl_histogram_alloc(100); - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); gsl_histogram_set_ranges_uniform($h2, 0, 100); gsl_histogram_accumulate($h2, 50.5, 2); gsl_histogram_accumulate($self->{H}, 50.5, 3); @@ -235,17 +219,15 @@ sub MUL : Tests { sub DIV : Tests { my $self = shift; my $h2 = gsl_histogram_alloc(100); - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); - gsl_histogram_set_ranges_uniform($h2, 0, 100); - gsl_histogram_accumulate($h2, 50.5, 2); - gsl_histogram_accumulate($self->{H}, 50.5, 4); + ok_status(gsl_histogram_set_ranges_uniform($h2, 0, 100)); + ok_status(gsl_histogram_accumulate($h2, 50.5, 2)); + ok_status(gsl_histogram_accumulate($self->{H}, 50.5, 4)); ok_status(gsl_histogram_div($self->{H}, $h2)); cmp_ok(gsl_histogram_get($self->{H}, 50), '==', 2); } sub SCALE : Tests { my $self = shift; - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); gsl_histogram_accumulate($self->{H}, 50.5, 4); gsl_histogram_increment($self->{H}, 33.5 ); ok_status(gsl_histogram_scale($self->{H}, 2)); @@ -256,11 +238,10 @@ sub SCALE : Tests { sub FPRINTF_FSCANF : Tests { my $self = shift; my $stream = fopen("histogram", "w"); - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); ok_status(gsl_histogram_increment($self->{H}, 50.5 )); ok_status(gsl_histogram_fprintf($stream, $self->{H}, "%e", "%e")); - fclose($stream); + ok_status(fclose($stream)); $stream = fopen("histogram", "r"); my $h = gsl_histogram_alloc(100); @@ -268,7 +249,7 @@ sub FPRINTF_FSCANF : Tests { is_deeply( [ map { gsl_histogram_get($h, $_) } (0..99) ], [ (0) x 50, 1, (0) x 49 ] ); - fclose($stream); + ok_status(fclose($stream)); } sub PDF_ALLOC : Tests { @@ -281,7 +262,6 @@ sub PDF_ALLOC : Tests { sub PDF_INIT : Tests { my $self = shift; my $p = gsl_histogram_pdf_alloc(100); - gsl_histogram_set_ranges_uniform($self->{H}, 0, 100); ok_status(gsl_histogram_pdf_init ($p, $self->{H})); gsl_histogram_accumulate($self->{H}, 50.5, -4); ok_status(gsl_histogram_pdf_init ($p, $self->{H}), $GSL_EDOM); -- 2.11.4.GIT