1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl test.pl'
# Time-stamp: "2004-12-29 18:29:18 AST"
use strict;
use Test;
# use a BEGIN block so we print our plan before MyModule is loaded
BEGIN { plan tests => 21 }
ok(1);
#sub Sort::Naturally::DEBUG () {0}
use Sort::Naturally;
print "# Perl v$], Sort::Naturally v$Sort::Naturally::VERSION\n#\n";
sub shuffle {
my @out;
while(@_) { push @out, splice @_, rand(@_), 1 };
return @out
}
my $ok1 = '9x 14 foo fooa foolio Foolio foo12 foo12a Foo12a foo12z foo13a';
my $ok2 = '9x 14 foo fooa Foolio foolio foo12 Foo12a foo12a foo12z foo13a';
for(1 .. 10 ){
my @x = shuffle
qw(
foo12a foo12z foo13a foo 14 9x foo12 fooa foolio Foolio Foo12a
)
;
print "#\n# In: <@x>\n";
print "# nsort ...\n";
my @y = nsort(map $_, @x);
print "# ncmp ...\n";
my @z = sort {&ncmp($a,$b)}
# map $_,
@x
;
#print "OK, <@x> => <@y>\n";
print(
"@y" eq "@z"
? scalar(ok(1), "# Good, eq") : scalar(ok(0), "# Feh, NE!\n< <@x>"),
"\n# <@y>\n# :<@z>\n"
);
if("@y" eq $ok1) {
ok 1;
print "# sorts happily as ok1 <$ok1>\n";
} elsif("@y" eq $ok2) {
ok 1;
print "# sorts happily as ok2 <$ok2>\n";
} else {
ok 0;
print "# sorts unhappily, not as <$ok1> nor as <$ok2>\n";
}
}
|