X-Git-Url: http://git.shiar.net/perl/list-index.git/blobdiff_plain/d61e8685992586de85f6b7b58fee20f15c8111b0..0f46a9fa54c9ecca0f0c3180b51f7c3079d048a8:/t/20-links.t diff --git a/t/20-links.t b/t/20-links.t index 89f5dee..b1879e3 100644 --- a/t/20-links.t +++ b/t/20-links.t @@ -2,26 +2,47 @@ use strict; use warnings; -use Test::More tests => 13; +use Test::More tests => 28; 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'], + [ 'qq-qq' => 'qq'], + [ '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)'], + ['qaa-qq' => '(?:q[b-p]|qa[a-z]|qq)'], ['qqq-q' => '(?:q[r-z]|qq[q-z])'], - [ 'q-xxx' => '(?:[q-w]|x(?![x-z])|xx(?![x-z])|xxx)'], ) { my ($in, $out) = @$_; - is(eval { rangematch($in) }, "(?i-xsm:^$out)", $in); + is(eval { rangematch($in) }, "(?i-xsm:^$out)", (length $in ? $in : q{''})); diag($@) if $@; } +for my $in ( + 'qqq-qc', + 'x-q', + 'xxx-qqq', + 'xxx-q', +) { + is(eval { rangematch($in) }, undef, (length $in ? $in : q{''}) . ' failure'); +} +