# use this link if it's shorter
if ($trim < length $link) {
$link = substr $after, 0, $trim;
-# $offset += $context + 1;
- $self->[$offset + ++$penalty] =~ /^\Q$link/
- while $offset + $penalty < $#$self;
+ for ($offset .. $#$self) {
+ last if $self->[$offset + $penalty] =~ /^\Q$link/;
+ $penalty++;
+ }
}
}
}
};
subtest 'distribution' => sub {
- plan tests => 2;
+ plan tests => 3;
my $index = List::Index->new([qw(
kkeg kl km kmlu knsy koxb kpeo kuaa kuab kuac
kuap kuaq kuq kux kzb lc lg lgu lgua lguc
lguq lgur lgus lgx lka lkq lks lln llq llx
)]) or return;
-TODO: {
- local $TODO = 'under development';
is_deeply(
$index->ranges({ pagesize=>10, context=>3 }),
# shorten 'kuap' to 'ku' because lookbehind is 'kp...'
[qw(-kt ku-lgt lgu-)],
'lookbehind'
);
-}
is_deeply(
$index->ranges({ pagesize=>10, context=>4 }),
[qw(-kt ku-lf lg-)],
'maximal lookahead'
);
+ is_deeply(
+ $index->ranges({ pagesize=>10, context=>5 }),
+ # after forwarding 'kuap' to 'lc'
+ # disallow backtracking of 'lguq' to 'lc' to prevent qw[-k l-]
+ # so only lookahead (to 'lkq') remains
+ [qw(-k l-lj lk-)],
+ 'lookbehind after full lookahead'
+ );
}