HEX
Server: Apache
System: Linux server-674799.igrow.ws 5.14.0-611.30.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Feb 11 06:42:00 EST 2026 x86_64
User: elrashedytravel (1025)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/.cpan/build/Test-Deep-1.204-0/t/circular.t
use strict;
use warnings;
use lib 't/lib';

use Std;

{
  my $a1 = gen_layers(2);
  my $a2 = gen_layers(2);

  check_test(
    sub {
      cmp_deeply($a1, $a2);
    },
    {
      actual_ok => 1,
      diag => "",
    },
    "2 layers"
  );

  push(@$a1, "break");
  check_test(
    sub {
      cmp_deeply($a1, $a2);
    },
    {
      actual_ok => 0,
      diag => <<EOM,
Compared array length of \$data
   got : array with 4 element(s)
expect : array with 3 element(s)
EOM
    },
    "2 layers broken"
  );
  push(@$a2, "break");
  check_test(
    sub {
      cmp_deeply($a1, $a2);
    },
    {
      actual_ok => 1,
      diag => "",
    },
    "2 layers fixed"
  );
}

{
  my $a1 = gen_layers(2);
  my $a2 = gen_layers(3);

  check_test(
    sub {
      cmp_deeply($a1, $a2);
    },
    {
      actual_ok => 1,
      diag => "",
    },
    "2 and 3 layers"
  );
  push(@$a1, "break");
  check_test(
    sub {
      cmp_deeply($a1, $a2);
    },
    {
      actual_ok => 0,
      diag => <<EOM,
Compared array length of \$data
   got : array with 4 element(s)
expect : array with 3 element(s)
EOM
    },
    "2 and 3 layers broken"
  );
  push(@$a2, "break");
  check_test(
    sub {
      cmp_deeply($a1, $a2);
    },
    {
      actual_ok => 0,
      diag => <<EOM,
Compared array length of \$data->[2][2]
   got : array with 4 element(s)
expect : array with 3 element(s)
EOM
    },
    "2 and 3 layers not fixed"
  );
}

{
  my $a1 = gen_interleave();
  my $a2 = gen_interleave();

  check_test(
    sub {
      cmp_deeply($a1, $a2);
    },
    {
      actual_ok => 1,
      diag => "",
    },
    "interleave"
  );
}

sub gen_layers
{
  my $num = shift;

  my $first = ['text', gen_circle()];
  $num--;
  my $last = $first;
  while ($num--)
  {
    my $next = ['text', gen_circle()];
    push(@$last, $next);
    $last = $next;
  }

  push(@$last, $first);
  return $first
}

sub gen_circle
{
  my $a = ['circle'];
  push(@$a, $a);
  return $a
}

sub gen_interleave
{
  my $a = [];
  my $b = [];
  
  push(@$a, $b, $a);
  push(@$b, $a, $b);
  
  return $a;
}