5 use Test::More tests => 29;
9 BEGIN { use_ok('List::Index' => 'rangematch'); }
13 ['#foo.!$' => '\#foo\.\!\$'],
16 [ -q => '(?:(?![q-z])|q)'],
17 [ -qqq => '(?:(?![q-z])|q(?![q-z])|qq(?![q-z])|qqq)'],
19 ['qqq-' => '(?:[r-z]|q[r-z]|qq[q-z])'],
20 ['zzz-' => 'zz[z-z]'],
24 [ 'qq-qqx' => '(?:qq(?![x-z])|qqx)'],
25 [ 'q-qx' => '(?:q(?![x-z])|qx)'],
26 ['qqq-xxx' => '(?:[r-w]|q[r-z]|qq[q-z]|x(?![x-z])|xx(?![x-z])|xxx)'],
27 ['qqq-xqq' => '(?:[r-w]|q[r-z]|qq[q-z]|x(?![q-z])|xq(?![q-z])|xqq)'],
28 ['qqq-xq' => '(?:[r-w]|q[r-z]|qq[q-z]|x(?![q-z])|xq)'],
29 [ 'qq-xqq' => '(?:[r-w]|q[q-z]|' . 'x(?![q-z])|xq(?![q-z])|xqq)'],
30 [ 'q-xxx' => '(?:[q-w]|x(?![x-z])|xx(?![x-z])|xxx)'],
31 ['qqq-x' => '(?:[r-x]|q[r-z]|qq[q-z])'],
32 ['qaa-qb' => '(?:qa[a-z]|qb)'],
33 ['qaa-qq' => '(?:q[b-p]|qa[a-z]|qq)'],
34 ['qqq-q' => '(?:q[r-z]|qq[q-z])'],
37 is(eval { rangematch($in) }, "(?i-xsm:^$out)", (length $in ? $in : q{''}));
47 is(eval { rangematch($in) }, undef, (length $in ? $in : q{''}) . ' failure');