5 use Test::More tests => 30;
9 BEGIN { use_ok('List::Index' => 'rangematch'); }
14 ['#foo.!$' => '\#foo\.\!\$'],
18 [ -q => '(?:(?![q-z])|q)'],
19 [ -qqq => '(?:(?![q-z])|q(?![q-z])|qq(?![q-z])|qqq)'],
22 ['qqq-' => '(?:[r-z]|q[r-z]|qq[q-z])'],
23 ['zzz-' => 'zz[z-z]'],
27 [ 'qq-qqx' => '(?:qq(?![x-z])|qqx)'],
28 [ 'q-qx' => '(?:q(?![x-z])|qx)'],
30 ['qqq-qq' => 'qq[q-z]'],
31 ['qqq-q' => '(?:q[r-z]|qq[q-z])'],
34 ['qqq-xxx' => '(?:[r-w]|q[r-z]|qq[q-z]|x(?![x-z])|xx(?![x-z])|xxx)'],
35 ['qqq-xqq' => '(?:[r-w]|q[r-z]|qq[q-z]|x(?![q-z])|xq(?![q-z])|xqq)'],
36 # interchar mixed length
37 ['qqq-xq' => '(?:[r-w]|q[r-z]|qq[q-z]|x(?![q-z])|xq)'],
38 [ 'qq-xqq' => '(?:[r-w]|q[q-z]|' . 'x(?![q-z])|xq(?![q-z])|xqq)'],
39 [ 'q-xxx' => '(?:[q-w]|x(?![x-z])|xx(?![x-z])|xxx)'],
40 ['qqq-x' => '(?:[r-x]|q[r-z]|qq[q-z])'],
41 ['qaa-qb' => '(?:qa[a-z]|qb)'],
42 ['qaa-qq' => '(?:q[b-p]|qa[a-z]|qq)'],
53 eval { rangematch($in) },
54 defined $out ? "(?i-xsm:^$out)" : undef,
55 (length $in ? $in : q{''}) . (!defined $out && ' failure')