#!perl -w use strict; use Test qw(plan ok); plan tests => 36; use PerlBench::Stats qw(calc_stats); my $res; $res = calc_stats([]); ok(!$res); $res = calc_stats([1]); ok($res); ok($res->{avg}, 1); ok($res->{min}, 1); ok($res->{med}, 1); ok($res->{max}, 1); ok($res->{n}, 1); ok($res->{stddev}, 0); $res = calc_stats([1, 1]); ok($res); ok($res->{avg}, 1); ok($res->{min}, 1); ok($res->{med}, 1); ok($res->{max}, 1); ok($res->{n}, 2); ok($res->{stddev}, 0); $res = calc_stats([1, 2]); ok($res); ok($res->{avg}, 1.5); ok($res->{min}, 1); ok($res->{med}, 1.5); ok($res->{max}, 2); ok($res->{n}, 2); ok(is_about($res->{stddev}, 0.5)); $res = calc_stats([5, 6, 8, 9]); ok($res); ok($res->{avg}, 7); ok($res->{min}, 5); ok($res->{med}, 7); ok($res->{max}, 9); ok($res->{n}, 4); ok(is_about($res->{stddev}, 1.5811)); $res = calc_stats([3, 100, -1]); ok($res); ok($res->{avg}, 34); ok($res->{min}, -1); ok($res->{med}, 3); ok($res->{max}, 100); ok($res->{n}, 3); ok(is_about($res->{stddev}, 46.6976)); sub is_about { my($v, $exp) = @_; return abs($v - $exp) < 1e-3; }