+++: rangematch() fixes
[perl/list-index.git] / t / 20-links.t
index 6a093145f265fb45b02a665a655a975e93e96d17..11803985c362a70ef2db9bebe8d965a6e6f7f34b 100644 (file)
@@ -2,29 +2,32 @@
 use strict;
 use warnings;
 
-use Test::More tests => 18;
+use Test::More tests => 21;
 use Test::NoWarnings;
 use Data::Dump 'pp';
 
 BEGIN { use_ok('List::Index' => 'rangematch'); }
 
 for (
-       [   q      => 'q'],
-       ['#foo.!$' => '\#foo\.\!\$'],
+       [   q      =>          'q'],
+       ['#foo.!$' =>          '\#foo\.\!\$'],
        [    -q    =>            '(?:(?![q-z])|q)'],
        [    -qqq  =>            '(?:(?![q-z])|q(?![q-z])|qq(?![q-z])|qqq)'],
        [  'q-'    =>    '[q-z]'],
        ['qqq-'    => '(?:[r-z]|q[r-z]|qq[q-z])'],
        [  'q-x'   =>    '[q-x]'],
-       [  'q-q'   =>    '[q-q]'],
+       [  'q-q'   =>          'q'],
        [ 'qq-qq'  =>                 'qq'],
-       [ 'qq-qqx' =>                                    'qq(?![x-z])|qqx'],
+       [ 'qq-qqx' =>                                 '(?:qq(?![x-z])|qqx)'],
        [  'q-qx'  =>                      '(?:q(?![x-z])|qx)'],
        ['qqq-xxx' => '(?:[r-w]|q[r-z]|qq[q-z]|x(?![x-z])|xx(?![x-z])|xxx)'],
+       ['qqq-xqq' => '(?:[r-w]|q[r-z]|qq[q-z]|x(?![q-z])|xq(?![q-z])|xqq)'],
+       ['qqq-xq'  => '(?:[r-w]|q[r-z]|qq[q-z]|x(?![q-z])|xq)'],
+       [ 'qq-xqq' => '(?:[r-w]|q[q-z]|'   .  'x(?![q-z])|xq(?![q-z])|xqq)'],
+       [  'q-xxx' =>                '(?:[q-w]|x(?![x-z])|xx(?![x-z])|xxx)'],
        ['qqq-x'   => '(?:[r-x]|q[r-z]|qq[q-z])'],
+       ['qaa-qb'  =>              '(?:qa[a-z]|qb)'],
        ['qqq-q'   =>       '(?:q[r-z]|qq[q-z])'],
-       ['qaa-qb'  =>              '(?:qa[a-z]|q(?![b-z]))'],
-       [  'q-xxx' =>                '(?:[q-w]|x(?![x-z])|xx(?![x-z])|xxx)'],
 ) {
        my ($in, $out) = @$_;
        is(eval { rangematch($in) }, "(?i-xsm:^$out)", $in);