# SelTran.t test selective translation 31jan10waw use warnings FATAL => 'all' ; use strict; use Test::More # tests => ?? 'no_plan' ; BEGIN { use_ok('SelTran'); } my @translate = ( # insert... for... except in... [ 'TWENTY', 'score', qw(twoscore unscored? score[srd]) ], [ 'CENTER', 'core', qw(encore[sd]? score[sd]? core[rd]) ], [ 'CENTERS', 'cores', qw(encores scores) ], [ 'JOHN', 'Johann', qw(Johannesburg) ], [ 'CENTER', 'centre', ], [ 'TRAVELED', 'travelled', ], [ 'HAS NOT', 'hasn\'t', ], ); my $xlate = SelTran->iter(\@translate) or die "failed"; note "single-word translations ----------------------"; for my $ar_vector ( [ 'core', 'CENTER' ], [ 'cores', 'CENTERS' ], [ 'hasn\'t', 'HAS NOT' ], [ 'Johann', 'JOHN' ], ) { my ($from, $to) = @$ar_vector; is $xlate->($from), $to; } note "multi-word translations with some exclusions -------------"; for my $ar_vector ( [ 'core encore encores encored scores scored corer cored', 'CENTER encore encores encored scores scored corer cored' ], [ 'core cores xcore corex xcorex core', 'CENTER CENTERS xCENTER CENTERx xCENTERx CENTER' ], [ 'cores core encores scores', 'CENTERS CENTER encores scores' ], [ 'cores xcores coresx xcoresx cores', 'CENTERS xCENTERS CENTERSx xCENTERSx CENTERS' ], ) { my ($from, $to) = @$ar_vector; is $xlate->($from), $to; }