From: Mischa POSLAWSKY Date: Tue, 17 Nov 2009 17:16:01 +0000 (+0100) Subject: fix corner case where #items-1 == #pages X-Git-Url: http://git.shiar.nl/perl/list-index.git/commitdiff_plain/e2a186365224032ff37caac824d50c9b43130952 fix corner case where #items-1 == #pages --- diff --git a/lib/List/Index.pm b/lib/List/Index.pm index f58e43e..35f0549 100644 --- a/lib/List/Index.pm +++ b/lib/List/Index.pm @@ -24,9 +24,9 @@ sub ranges { my $pagesize = $options->{pagesize} || 50; my $context = $options->{context } // 1 + ($pagesize >> 4); my $length = $options->{length } || 4; - my $pages = $options->{pages } || 1 + int $#rows / $pagesize; + my $pages = $options->{pages } || 1 + int($#rows / $pagesize); - $pagesize = $pages >= $#rows ? 1 : @rows / $pages; + $pagesize = $pages >= @rows ? 1 : @rows / $pages; my $shrunk = 0; my $enlarged = 0; diff --git a/t/10-ranges.t b/t/10-ranges.t index 5c994c1..3a465b8 100644 --- a/t/10-ranges.t +++ b/t/10-ranges.t @@ -2,7 +2,7 @@ use strict; use warnings; -use Test::More tests => 9; +use Test::More tests => 10; use Test::NoWarnings; use Data::Dump 'pp'; @@ -165,6 +165,16 @@ subtest 'modulo' => sub { ); }; +subtest 'corner cases' => sub { + plan tests => 1; + + is_deeply( + List::Index->new->ranges(['foo','bar']), + ['-'], + '2 rows 1 page' + ); +}; + subtest 'context' => sub { plan tests => 4; my @data = qw( baa1 baa2 baa3 baaa bbc cbc daaa ea eaaa zed );