From: Mischa POSLAWSKY Date: Wed, 11 Nov 2009 15:57:46 +0000 (+0100) Subject: +++: non-alpha first X-Git-Url: http://git.shiar.nl/perl/list-index.git/commitdiff_plain/5d1c609f28d64e60c9595c9a207b8d19e823b122 +++: non-alpha first --- diff --git a/lib/List/Index.pm b/lib/List/Index.pm index 7214ced..23ab261 100644 --- a/lib/List/Index.pm +++ b/lib/List/Index.pm @@ -43,7 +43,7 @@ sub ranges { for my $i (0 .. $#links - 1) { my ($link, $lastchar) = $links[$i + 1]->[0] =~ /(.*)(.)/; - $link .= $lastchar eq '.' ? 'z' : chr( ord($lastchar) - 1 ) + $link .= $lastchar eq '.' ? 'a' : chr( ord($lastchar) - 1 ) unless $lastchar eq 'a'; $links[$i]->[1] = $link; } diff --git a/t/10-ranges.t b/t/10-ranges.t index 173ec32..eaae0e9 100644 --- a/t/10-ranges.t +++ b/t/10-ranges.t @@ -25,7 +25,7 @@ is_deeply($index->ranges({pagesize => @uniform / 2.1}), [map { [split /-/, $_, 2 { ok(my $index = List::Index->new(['aa'..'zz', 1..193]), 'non-alphabetic values (uniform)'); is_deeply($index->ranges, [map { [split /-/, $_, 2] } qw( - .-.z ..-.z ..-..z ...- + .-.a ..-.a ..-..a ...- a-bv bw-dr ds-fn fo-hk hl-jg jh-k l-m n-ov ow-qr qs-sn so-uk ul-wg wh-x y- )], 'default ranges'); is_deeply($index->ranges({pagesize => 300}), [map { [split /-/, $_, 2] } qw( @@ -38,10 +38,10 @@ ok(my $index = List::Index->new([qw( baa1 baa2 baa3 baaa bbc cbc daaa ea eaaa zed )]), 'variable length values'); is_deeply($index->ranges({pagesize => 2, context => 0}), [ - map { [split /-/, $_, 2] } qw(baa.-baaz baa.-bbb bbc-daa daaa-eaa eaaa-) + map { [split /-/, $_, 2] } qw(baa.-baaa baa.-bbb bbc-daa daaa-eaa eaaa-) ], 'no context'); is_deeply($index->ranges({pagesize => 2}), [ - map { [split /-/, $_, 2] } qw(b-baaz baa.-ba bb-c d-ea eaa-) + map { [split /-/, $_, 2] } qw(b-baaa baa.-ba bb-c d-ea eaa-) ], 'default context'); # context should be 1 is_deeply($index->ranges({pagesize => 2, context => 2}), [ map { [split /-/, $_, 2] } qw(b-a b-ba bb-c d-d e-)