Add the original source packages to maemo, source lenny
[dh-make-perl] / dev / i386 / libarray-compare-perl / libarray-compare-perl-1.16 / t / test.t
diff --git a/dev/i386/libarray-compare-perl/libarray-compare-perl-1.16/t/test.t b/dev/i386/libarray-compare-perl/libarray-compare-perl-1.16/t/test.t
new file mode 100755 (executable)
index 0000000..b73f8d0
--- /dev/null
@@ -0,0 +1,136 @@
+# Before `make install' is performed this script should be runnable with
+# `make test'. After `make install' it should work as `perl test.pl'
+
+use Test::More tests => 30;
+
+use_ok('Array::Compare');
+
+my $comp = Array::Compare->new;
+
+my @A = qw/0 1 2 3 4 5 6 7 8/;
+my @B = qw/0 1 2 3 4 5 X 7 8/;
+my @C = @A;
+
+my %skip1 = (6 => 1);
+my %skip2 = (5 => 1);
+my %skip3 = (6 => 0);
+
+# Compare two different arrays - should fail
+ok(not $comp->compare(\@A, \@B));
+
+# Compare two different arrays but ignore differing column - should succeed
+$comp->Skip(\%skip1);
+ok($comp->compare(\@A, \@B));
+
+# compare two different arrays but ignore non-differing column - should fail
+$comp->Skip(\%skip2);
+ok(not $comp->compare(\@A, \@B));
+
+# Compare two different arrays but ignore differing column (badly) 
+# - should fail as skip value is 0
+$comp->Skip(\%skip3);
+ok(not $comp->compare(\@A, \@B));
+
+# Change separator and compare two identical arrays - should succeed
+$comp->Sep('|');
+ok($comp->compare(\@A, \@C));
+
+# These tests should generate fatal errors - hence the evals
+
+# Compare a number with an array
+eval { print $comp->compare(1, \@A) };
+ok($@);
+
+# Compare an array with a number
+eval { print $comp->compare(\@A, 1) };
+ok($@);
+
+# Call compare with only one argument
+eval { print $comp->compare(\@A) };
+ok($@);
+
+# Switch to full comparison
+$comp->DefFull(1);
+ok($comp->DefFull);
+$comp->Skip({});
+
+# @A and @B differ in column 6
+# Array context
+my @diffs = $comp->compare(\@A, \@B);
+ok(scalar @diffs == 1 && $diffs[0] == 6);
+
+# Scalar context
+my $diffs =  $comp->compare(\@A, \@B);
+ok($diffs);
+
+# @A and @B differ in column 6 (which we ignore)
+$comp->Skip(\%skip1);
+# Array context
+@diffs = $comp->compare(\@A, \@B);
+ok(not @diffs);
+
+# Scalar context
+$diffs = $comp->compare(\@A, \@B);
+ok(not $diffs);
+
+# @A and @C are the same
+# Array context
+@diffs = $comp->compare(\@A, \@C);
+ok(not @diffs);
+
+# Scalar context
+$diffs = $comp->compare(\@A, \@C);
+ok(not $diffs);
+
+# Test arrays of differing length
+my @D = (0 .. 5);
+my @E = (0 .. 10);
+
+$comp->DefFull(0);
+ok( not $comp->compare(\@D, \@E));
+
+$comp->DefFull(1);
+@diffs = $comp->compare(\@D, \@E);
+ok(@diffs == 5);
+
+@diffs = $comp->compare(\@E, \@D);
+ok(@diffs == 5);
+
+$diffs = $comp->compare(\@D, \@E);
+ok($diffs == 5);
+
+# Test Perms
+my @F = (1 .. 5);
+my @G = qw(5 4 3 2 1);
+my @H = qw(3 4 1 2 5);
+my @I = qw(4 3 6 5 2);
+
+ok($comp->perm(\@F, \@G));
+ok($comp->perm(\@F, \@H));
+ok(not $comp->perm(\@F, \@I));
+
+my @J = ('array with', 'white space');
+my @K = ('array  with', 'white space');
+ok($comp->compare(\@J, \@K));
+
+# Turn off whitespace
+$comp->WhiteSpace(0);
+ok(not $comp->compare(\@J, \@K));
+
+$comp->DefFull(0);
+ok($comp->compare(\@J, \@K));
+
+# Turn on whitespace
+$comp->WhiteSpace(1);
+ok(not $comp->compare(\@J, \@K));
+
+my @L = qw(ArRay WiTh DiFfErEnT cAsEs);
+my @M = qw(aRrAY wItH dIfFeReNt CaSeS);
+ok(not $comp->compare(\@L, \@M));
+
+# Turn of case sensitivity
+$comp->Case(0);
+ok($comp->compare(\@L, \@M));
+
+$comp->DefFull(1);
+ok(not $comp->compare(\@L, \@M));