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 )