Algorithm-AhoCorasick

 view release on metacpan or  search on metacpan

t/SearchMachine.t  view on Meta::CPAN

# Tests using Unicode strings crash on perl 5.6.2 .
use Config;
use Test::More tests => (($Config{api_version} < 8) ? 21 : 25);

use Algorithm::AhoCorasick::SearchMachine;

is($Config{api_revision}, 5);

my $expected_pos;
my $expected_keyword;
my $break_flag = 0;
my $counter;

sub check {
    my ($pos, $keyword) = @_;

    ok(defined($pos));
    is($pos, $expected_pos);
    $expected_pos = undef;

    ok(defined($keyword));
    is($keyword, $expected_keyword);
    $expected_keyword = undef;

    return $break_flag;
}

sub count {
    ++$counter;

    return '';
}

my $machine = Algorithm::AhoCorasick::SearchMachine->new("be");

t/SearchMachine.t  view on Meta::CPAN

ok(!defined($rv));

$machine = Algorithm::AhoCorasick::SearchMachine->new("be");
$counter = 0;
$rv = $machine->feed("To be or not to be", \&count);
ok(!defined($rv));
is($counter, 2);

$expected_pos = 3;
$expected_keyword = "be";
$break_flag = 42;
$machine = Algorithm::AhoCorasick::SearchMachine->new("be");
$rv = $machine->feed("To be or not to be", \&check);
is($rv, 42);

$machine = Algorithm::AhoCorasick::SearchMachine->new("sa", "se", "si", "so", "su");
$counter = 0;
$rv = $machine->feed("Un chasseur qui sache chasser ne chase jamais sans son chien", \&count);
ok(!defined($rv));
is($counter, 6);



( run in 2.338 seconds using v1.01-cache-2.11-cpan-94b05bcf43c )