summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
1c9de66)
Odd items gravitated to later pages, for example a..z:
abcdefgh ijklmnopq rstuvwxyz
Change initial offset to create a more uniform distribution:
abcdefghi jklmnopq rstuvwxyz
my $pages = $options->{pages } || 1 + int $#$self / $pagesize;
$pagesize = @$self / $pages;
my $pages = $options->{pages } || 1 + int $#$self / $pagesize;
$pagesize = @$self / $pages;
- my $offset = $pagesize;
+ my $offset = $pagesize + .5;
my @links = ('');
while ($offset < @$self) {
my $link = substr $self->[$offset], 0, $length;
my @links = ('');
while ($offset < @$self) {
my $link = substr $self->[$offset], 0, $length;
ok(my $index = List::Index->new(\@uniform), 'object (single-char values)');
is_deeply(\@uniform, ['a'..'z'], 'original data unaltered');
is_deeply($index->ranges, ['-'], 'single page');
ok(my $index = List::Index->new(\@uniform), 'object (single-char values)');
is_deeply(\@uniform, ['a'..'z'], 'original data unaltered');
is_deeply($index->ranges, ['-'], 'single page');
-is_deeply($index->ranges({pages => 3}), [qw(-h i-q r-)], 'given pages');
+is_deeply($index->ranges({pages => 3}), [qw(-i j-q r-)], 'given pages');
is_deeply($index->ranges({pagesize => @uniform / 2.1}), [qw(
is_deeply($index->ranges({pagesize => @uniform / 2.1}), [qw(
)], 'equivalent pagesize');
}
{
)], 'equivalent pagesize');
}
{
-ok(my $index = List::Index->new(['aa'..'zz', 1..193]), 'non-alphabetic values (uniform)');
+ok(my $index = List::Index->new(['aa'..'zz', 1..202]), 'non-alphabetic values (uniform)');
is_deeply($index->ranges, [qw(
is_deeply($index->ranges, [qw(
- -. .
- a-b c-dr ds-fn fo-hk hl-jg jh-k l-m n-o p-qr qs-sn so-uk ul-wg wh-x y-
+ -.
+ .-bp bq-dm dn-fi fj-hf hg-i j-k l-m n-os ot-qp qq-sm sn-uj uk-wf wg-x y-
+
)], 'default ranges');
is_deeply($index->ranges({pagesize => 300}), [qw(-c d-o p-)], 'large pagesize');
}
)], 'default ranges');
is_deeply($index->ranges({pagesize => 300}), [qw(-c d-o p-)], 'large pagesize');
}