From 319dd675faee700a9fa0485863889a661ef9dc53 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Thu, 12 Nov 2009 17:15:32 +0100 Subject: [PATCH] XXX: omit range end if it equals start --- lib/List/Index.pm | 1 + t/10-ranges.t | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/List/Index.pm b/lib/List/Index.pm index 50e48a5..00f2bdb 100644 --- a/lib/List/Index.pm +++ b/lib/List/Index.pm @@ -45,6 +45,7 @@ sub ranges { my ($link, $lastchar) = $links[$i + 1]->[0] =~ /(.*)(.)/; $link .= $lastchar eq 'a' ? '.' : chr( ord($lastchar) - 1 ) unless $lastchar eq '.'; + next if $link eq $links[$i]->[0]; $links[$i]->[1] = $link; } $links[-1]->[1] = ''; diff --git a/t/10-ranges.t b/t/10-ranges.t index c5cc3e6..feedb14 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( - .-. ..-. ..-.. ...-. + . ..-. .. ...-. 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( @@ -44,10 +44,10 @@ is_deeply($index->ranges({pagesize => 2}), [ map { [split /-/, $_, 2] } qw(b-baa 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-) + map { [split /-/, $_, 2] } qw(b-a b-ba bb-c d e-) ], 'overlap'); # first item equals second due to large context is_deeply($index->ranges({pagesize => 2, length => 1}), [ - map { [split /-/, $_, 2] } qw(b-a b-a b-c d-d e-) + map { [split /-/, $_, 2] } qw(b-a b-a b-c d e-) ], 'single char'); #pp($index->ranges({pagesize => 2, context => 2, length => 1})); -- 2.30.0