From cfc00067daf415f2bb92a22a307d7f840508ee54 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Fri, 13 Nov 2009 00:16:59 +0100 Subject: [PATCH] t/20: clarify code structure --- t/20-links.t | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/t/20-links.t b/t/20-links.t index afa2b7b..1ae7d4a 100644 --- a/t/20-links.t +++ b/t/20-links.t @@ -2,48 +2,58 @@ use strict; use warnings; -use Test::More tests => 29; +use Test::More tests => 30; use Test::NoWarnings; use Data::Dump 'pp'; BEGIN { use_ok('List::Index' => 'rangematch'); } -for ( +my @RANGETESTS = ( + # single prefix [ q => 'q'], ['#foo.!$' => '\#foo\.\!\$'], [ '-' => ''], [ '' => ''], + # end only [ -q => '(?:(?![q-z])|q)'], [ -qqq => '(?:(?![q-z])|q(?![q-z])|qq(?![q-z])|qqq)'], + # start only [ 'q-' => '[q-z]'], ['qqq-' => '(?:[r-z]|q[r-z]|qq[q-z])'], ['zzz-' => 'zz[z-z]'], - [ 'q-x' => '[q-x]'], + # prefixed range [ 'q-q' => 'q'], [ 'qq-qq' => 'qq'], [ 'qq-qqx' => '(?:qq(?![x-z])|qqx)'], [ 'q-qx' => '(?:q(?![x-z])|qx)'], + # end within prefix + ['qqq-qq' => 'qq[q-z]'], + ['qqq-q' => '(?:q[r-z]|qq[q-z])'], + # interchar range + [ 'q-x' => '[q-x]'], ['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)'], + # interchar mixed length ['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])'], -) { + # reversed + [ 'x-q' => undef], + ['xxx-qqq' => undef], + ['xxx-q' => undef], + ['qqq-qc' => undef], +); + +for (@RANGETESTS) { my ($in, $out) = @$_; - is(eval { rangematch($in) }, "(?i-xsm:^$out)", (length $in ? $in : q{''})); + is( + eval { rangematch($in) }, + defined $out ? "(?i-xsm:^$out)" : undef, + (length $in ? $in : q{''}) . (!defined $out && ' failure') + ); diag($@) if $@; } -for my $in ( - 'qqq-qc', - 'x-q', - 'xxx-qqq', - 'xxx-q', -) { - is(eval { rangematch($in) }, undef, (length $in ? $in : q{''}) . ' failure'); -} - -- 2.30.0