Algorithm-HyperLogLog
view release on metacpan or search on metacpan
},
recommends => {
},
suggests => {
},
build_requires => {
'File::Temp' => '0',
'Test::Fatal' => '0.008',
'Test::More' => '0.98',
},
test_requires => {
},
name => 'Algorithm-HyperLogLog',
module_name => 'Algorithm::HyperLogLog',
allow_pureperl => 0,
"eg",
"examples",
"author",
"builder"
]
},
"prereqs" : {
"build" : {
"requires" : {
"File::Temp" : "0",
"Test::Fatal" : "0.008",
"Test::More" : "0.98"
}
},
"configure" : {
"requires" : {
"Module::Build" : "0.4005",
"Module::Build::XSUtil" : "0.09"
}
},
"develop" : {
---
abstract: 'Implementation of the HyperLogLog cardinality estimation algorithm'
author:
- 'Hideaki Ohno <hide.o.j55 {at} gmail.com>'
build_requires:
File::Temp: '0'
Test::Fatal: '0.008'
Test::More: '0.98'
configure_requires:
Module::Build: '0.4005'
Module::Build::XSUtil: '0.09'
dynamic_config: 0
generated_by: 'Minilla/v3.0.12, CPAN::Meta::Converter version 2.150001'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: '1.4'
requires 'XSLoader';
requires 'Carp';
requires 'Digest::MurmurHash3::PurePerl' => '>=0.02';
on 'configure' => sub {
requires 'Module::Build::XSUtil' => '>=0.09';
};
on 'build' => sub {
requires 'Test::More' => '0.98';
requires 'Test::Fatal' => '0.008';
requires 'File::Temp';
};
on 'develop' => sub {
requires 'Test::Spellunker';
requires 'Test::Perl::Critic';
requires 'Test::Pod';
requires 'Test::Pod::Coverage';
requires 'Software::License';
};
use strict;
use warnings;
use Test::More;
use Test::Fatal qw(exception lives_ok);
use Algorithm::HyperLogLog;
use Algorithm::HyperLogLog::PP;
my $hll = Algorithm::HyperLogLog->new(5);
is $hll->register_size, 2**5;
isa_ok $hll, 'Algorithm::HyperLogLog';
like exception { Algorithm::HyperLogLog->new(3); }, qr/^Number of ragisters must be in the range \[4,16\]/;
like exception { Algorithm::HyperLogLog->new(17); }, qr/^Number of ragisters must be in the range \[4,16\]/;
lives_ok { Algorithm::HyperLogLog->new(4); };
lives_ok { Algorithm::HyperLogLog->new(16); };
t/02_basic.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Fatal qw(exception lives_ok);
use Algorithm::HyperLogLog;
use Algorithm::HyperLogLog::PP;
plan skip_all => 'No XS' unless Algorithm::HyperLogLog->XS;
my $error_sum = 0;
my $repeat = 100;
for ( 1 .. $repeat ) {
use strict;
use warnings;
use Test::More;
use Test::Fatal qw(exception lives_ok);
BEGIN {
$Algorithm::HyperLogLog::PERL_ONLY = 1;
}
use Algorithm::HyperLogLog;
my $hll = Algorithm::HyperLogLog->new(16);
isa_ok $hll, 'Algorithm::HyperLogLog';
ok !$hll->XS, 'is Pure Perl?';
t/04_dump_restore.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Fatal qw(exception lives_ok);
use File::Temp;
use Algorithm::HyperLogLog;
plan 'skip_all' => 'No XS' if !Algorithm::HyperLogLog->XS;
subtest 'dump and restore - immediately after initialize' => sub {
my $hll = Algorithm::HyperLogLog->new(5);
my $dumpfile = File::Temp->new();
lives_ok {
$hll->dump_to_file( $dumpfile->filename );
t/05_dump_restore_pp.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Fatal qw(exception lives_ok);
use File::Temp;
BEGIN {
$Algorithm::HyperLogLog::PERL_ONLY = 1;
}
use Algorithm::HyperLogLog;
subtest 'dump and restore - immediately after initialize' => sub {
my $hll = Algorithm::HyperLogLog->new(5);
my $dumpfile = File::Temp->new();
lives_ok {
t/06_merge.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Fatal qw(exception lives_ok);
use Algorithm::HyperLogLog;
use Algorithm::HyperLogLog::PP;
SKIP: {
skip "No XS" unless Algorithm::HyperLogLog->XS;
my $hlla = Algorithm::HyperLogLog->new(16);
my $hllb = Algorithm::HyperLogLog->new(16);
$hlla->add($_) for 1 .. 100_000;
$hllb->add($_) for 100_000 .. 200_000;
( run in 2.225 seconds using v1.01-cache-2.11-cpan-54e63673c56 )