From: Mischa POSLAWSKY Date: Sun, 15 Nov 2009 00:22:52 +0000 (+0100) Subject: fix pagesize < 1 X-Git-Url: http://git.shiar.nl/perl/list-index.git/commitdiff_plain/9d8572d98bcc078f2946094bacc6a47dfbbd934b fix pagesize < 1 --- diff --git a/lib/List/Index.pm b/lib/List/Index.pm index b11b5f8..e67e5ae 100644 --- a/lib/List/Index.pm +++ b/lib/List/Index.pm @@ -22,7 +22,7 @@ sub ranges { my $length = $options->{length } || 4; my $pages = $options->{pages } || 1 + int $#$self / $pagesize; - $pagesize = @$self / $pages; + $pagesize = $pages >= $#$self ? 1 : @$self / $pages; my $offset = $pagesize + .5; my $lookbehind = -$context; my $lookahead = $context; diff --git a/t/10-ranges.t b/t/10-ranges.t index 4515aa6..01971c8 100644 --- a/t/10-ranges.t +++ b/t/10-ranges.t @@ -10,7 +10,7 @@ BEGIN { use_ok('List::Index'); } ok(eval { List::Index->VERSION(1) }, 'version 1.00 compatibility'); subtest 'single-char alphabet' => sub { - plan tests => 4; + plan tests => 5; my @uniform = 'a'..'z'; my $index = List::Index->new(\@uniform) or return; is_deeply(\@uniform, ['a'..'z'], 'original data unaltered'); @@ -19,6 +19,7 @@ subtest 'single-char alphabet' => sub { is_deeply($index->ranges({pagesize => @uniform / 2.1}), [qw( -i j-q r- )], 'equivalent pagesize'); + is_deeply($index->ranges({ pages => 500 }), ['-a', 'b'..'y', 'z-'], 'max pages'); }; subtest 'uniform alphanumeric' => sub {