my($this, $that, $name) = @_;
my $ok;
- if( !ref $this && !ref $that ) {
+ if( !ref $this || !ref $that ) {
$ok = $Test->is_eq($this, $that, $name);
}
else {
foreach my $idx (0..$#vals) {
my $val = $vals[$idx];
$vals[$idx] = !defined $val ? 'undef' :
- ref $val ? $val eq $DNE ? "Does not exist"
- : $val
- : "'$val'"
+ $val eq $DNE ? "Does not exist"
+ : "'$val'";
}
$out .= "$vars[0] = $vals[0]\n";
return $out;
}
-sub eq_deeply {
- my ($a1, $a2) = @_;
-
- local @Data_Stack = ();
- return _deep_check($a1, $a2);
-}
=item B<eq_array>
=cut
#'#
-
-sub eq_array {
- my ($a1, $a2) = @_;
-
- return UNIVERSAL::isa($a2, "ARRAY") ? eq_deeply($a1, $a2) : 0;
-}
-
-sub _eq_array {
+sub eq_array {
my($a1, $a2) = @_;
return 1 if $a1 eq $a2;
# Quiet uninitialized value warnings when comparing undefs.
local $^W = 0;
- if( ! (ref $e1 xor ref $e2) and $e1 eq $e2 ) {
+ if( $e1 eq $e2 ) {
$ok = 1;
}
else {
- if ( (ref $e1 and $e1 eq $DNE) or
- (ref $e2 and $e2 eq $DNE) )
- {
- $ok = 0;
- }
- elsif( UNIVERSAL::isa($e1, 'ARRAY') and
+ if( UNIVERSAL::isa($e1, 'ARRAY') and
UNIVERSAL::isa($e2, 'ARRAY') )
{
- $ok = _eq_array($e1, $e2);
+ $ok = eq_array($e1, $e2);
}
elsif( UNIVERSAL::isa($e1, 'HASH') and
UNIVERSAL::isa($e2, 'HASH') )
{
- $ok = _eq_hash($e1, $e2);
+ $ok = eq_hash($e1, $e2);
}
elsif( UNIVERSAL::isa($e1, 'REF') and
UNIVERSAL::isa($e2, 'REF') )
{
push @Data_Stack, { type => 'REF', vals => [$e1, $e2] };
$ok = _deep_check($$e1, $$e2);
- pop @Data_Stack if $ok;
}
else {
push @Data_Stack, { vals => [$e1, $e2] };
=cut
sub eq_hash {
- my ($a1, $a2) = @_;
-
- return UNIVERSAL::isa($a2, "HASH") ? eq_deeply($a1, $a2) : 0;
-}
-
-sub _eq_hash {
my($a1, $a2) = @_;
return 1 if $a1 eq $a2;
}
}
-use Test::More tests => 42;
+use Test::More tests => 41;
# Make sure we don't mess with $@ or $!. Test at bottom.
my $Err = "this should not be touched";
ok( eq_set([qw(this that whatever)], [qw(that whatever this)]),
'eq_set with simple sets' );
-eq_array([[]], [{}]);
-is(scalar @Test::More::Data_Stack, 0, "data stack empty");
-
my @complex_array1 = (
[qw(this that whatever)],
{foo => 23, bar => 42},
like( $err, <<ERR, ' right diagnostic' );
# Failed test \\($Filename at line 78\\)
# Structures begin differing at:
-# \\\$got = HASH\\(0x[0-9a-f]+\\)
-# \\\$expected = ARRAY\\(0x[0-9a-f]+\\)
+# \\\$got = 'HASH\\(0x[0-9a-f]+\\)'
+# \\\$expected = 'ARRAY\\(0x[0-9a-f]+\\)'
ERR
#line 88
like( $err, <<ERR, ' right diagnostic' );
# Failed test \\($Filename at line 151\\)
# Structures begin differing at:
-# \\\$got = ARRAY\\(0x[0-9a-f]+\\)
-# \\\$expected = SCALAR\\(0x[0-9a-f]+\\)
+# \\\$got = 'ARRAY\\(0x[0-9a-f]+\\)'
+# \\\$expected = 'SCALAR\\(0x[0-9a-f]+\\)'
ERR
# \$got->{that}{foo} = Does not exist
# \$expected->{that}{foo} = '42'
ERR
-
-#line 217
-is_deeply([(\"a"), "b"], [(\"a"), "c"], "scalar refs diag");
-is( $out, "not ok 12 - scalar refs diag\n", 'scalar refs diag' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test ($0 at line 217)
-# Structures begin differing at:
-# \$got->[1] = 'b'
-# \$expected->[1] = 'c'
-ERR
-
-#line 228
-my $a = [];
-is_deeply($a, $a."", "mixed ref and stringified ref");
-is( $out, "not ok 13 - mixed ref and stringified ref\n", 'mixed ref and stringified ref' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test ($0 at line 229)
-# Structures begin differing at:
-# \$got = $a
-# \$expected = '$a'
-ERR
-
-#line 238
-my $b = [];
-is_deeply({}, {key => $b}, "Does Not Exist");
-is( $out, "not ok 14 - Does Not Exist\n", 'Does Not Exist' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test ($0 at line 239)
-# Structures begin differing at:
-# \$got->{key} = Does not exist
-# \$expected->{key} = $b
-ERR