Algorithm-HyperLogLog

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN

    },

    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,

META.json  view on Meta::CPAN

         "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" : {

META.yml  view on Meta::CPAN

---
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'

cpanfile  view on Meta::CPAN

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';
};

t/01_new.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;

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 ) {

t/03_pp.t  view on Meta::CPAN

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 )