fix pagesize < 1
authorMischa POSLAWSKY <perl@shiar.org>
Sun, 15 Nov 2009 00:22:52 +0000 (01:22 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Sun, 15 Nov 2009 00:22:55 +0000 (01:22 +0100)
lib/List/Index.pm
t/10-ranges.t

index b11b5f86eeab9e88ebd0716e0739dd1cfdd9ca86..e67e5ae730202bafb8bd4ff3640d35656b51c129 100644 (file)
@@ -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;
index 4515aa6fdc7037f89ca5150e7f2620c20df6c8f5..01971c8988af506cdda5845d11671d99c1bb8a5c 100644 (file)
@@ -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 {