use strict;
use vars qw($i $loaded $num);
BEGIN {
use ShiftJIS::Collate;
$| = 1;
$num = 10 + 1;
print "1..$num\n";
}
END {print "not ok 1\n" unless $loaded;}
$loaded = 1;
print "ok 1\n";
my $Collator = new ShiftJIS::Collate;
chomp(my @data = <DATA>);
unshift @data, "";
my $data = join ":",@data;
for $i (2..$num){
my @arr = shuffle(@data);
my $arr = join ":",@arr;
my @sort = $Collator->sort(@arr);
my $sort = join ":",@sort;
print $sort eq $data ? "ok" : "not ok", " $i\n";
}
sub shuffle {
my @array = @_;
my $i;
for ($i = @array; --$i; ) {
my $j = int rand ($i+1);
next if $i == $j;
@array[$i,$j] = @array[$j,$i];
}
return @array;
}
1;
__DATA__
q
q
s
W
Ws
W
Ws
W
Ws
WW
WsW
Ö
¶q
q
q
qq
qs
W
W
sqW
W
V[
VC
VB
V
¿å±
¿æ±
`R[g
Ä[½
e[^
eF^
Ħ½
Å[½
f[^
fF^
Ŧ½
e[^
Ä¥½
Ä¥½f
eF^f
Ä[½[
e[^@
Ä[½
eF^[
Ä¥½
Ħ½[
Å[½[
f[^@
ÅF½@
f¥^
fG^A
Ðä
Ñã
Òã
Ñã [
r
A[
Òã [
s
A[
q
E
qE
r
EA
Ñã[ [
r
[A[
r
EA[
Ðãñ
Òãñ
Ó[è
t[

ÓDè
ÓD
tE
Ô[è
u[

uDè
Õ¤è
vE
Ó[è[
tD[
ÓDèB
t£¡
tE[
Ó¤è¡
uEC
Õ[è[
ÕDèC
Õ¤è[
vEC
tR
ÓU
ÔT
ÔÓ
Ôt
uÓ
ut
ÔU
ÔÕ
uÕ
ÕT
vR
ÕÓ