| Server IP : 68.178.202.69 / Your IP : 216.73.216.143 Web Server : Apache System : Linux 69.202.178.68.host.secureserver.net 3.10.0-1160.139.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Nov 3 13:30:41 UTC 2025 x86_64 User : ikioworld ( 1005) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/perl-Test-Simple-0.98/t/ |
Upload File : |
#!/usr/bin/perl -w
# Test is_deeply and friends with circular data structures [rt.cpan.org 7289]
BEGIN {
if( $ENV{PERL_CORE} ) {
chdir 't';
@INC = ('../lib', 'lib');
}
else {
unshift @INC, 't/lib';
}
}
use strict;
use Test::More tests => 11;
my $a1 = [ 1, 2, 3 ];
push @$a1, $a1;
my $a2 = [ 1, 2, 3 ];
push @$a2, $a2;
is_deeply $a1, $a2;
ok( eq_array ($a1, $a2) );
ok( eq_set ($a1, $a2) );
my $h1 = { 1=>1, 2=>2, 3=>3 };
$h1->{4} = $h1;
my $h2 = { 1=>1, 2=>2, 3=>3 };
$h2->{4} = $h2;
is_deeply $h1, $h2;
ok( eq_hash ($h1, $h2) );
my ($r, $s);
$r = \$r;
$s = \$s;
ok( eq_array ([$s], [$r]) );
{
# Classic set of circular scalar refs.
my($a,$b,$c);
$a = \$b;
$b = \$c;
$c = \$a;
my($d,$e,$f);
$d = \$e;
$e = \$f;
$f = \$d;
is_deeply( $a, $a );
is_deeply( $a, $d );
}
{
# rt.cpan.org 11623
# Make sure the circular ref checks don't get confused by a reference
# which is simply repeating.
my $a = {};
my $b = {};
my $c = {};
is_deeply( [$a, $a], [$b, $c] );
is_deeply( { foo => $a, bar => $a }, { foo => $b, bar => $c } );
is_deeply( [\$a, \$a], [\$b, \$c] );
}