From e2a186365224032ff37caac824d50c9b43130952 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Tue, 17 Nov 2009 18:16:01 +0100 Subject: [PATCH] fix corner case where #items-1 == #pages --- lib/List/Index.pm | 4 ++-- t/10-ranges.t | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) 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 ); -- 2.30.0