]> git.vpit.fr Git - perl/modules/Test-Leaner.git/blob - t/28-is_deeply-deep.t
Fall back to Test::More when PERL_TEST_LEANER_USES_TEST_MORE is set
[perl/modules/Test-Leaner.git] / t / 28-is_deeply-deep.t
1 #!perl -T
2
3 use strict;
4 use warnings;
5
6 BEGIN { delete $ENV{PERL_TEST_LEANER_USES_TEST_MORE} }
7
8 use Test::Leaner tests => 2;
9
10 sub create_chain {
11  my ($l, $n) = @_;
12
13  $n = 1  unless defined $n;
14  $l = 45 unless defined $l;
15
16  return \(\$n) if $l <= 0;
17
18  [
19   [ 0, \(\$n) ],
20   1,
21   { a => create_chain($l - 1, $n + 1) },
22  ]
23 }
24
25 my $c1 = create_chain;
26 my $c2 = create_chain;
27
28 is_deeply $c1, $c2, 'a deep chain structure';
29
30 sub create_tree {
31  my ($l, $n) = @_;
32
33  $n = 1  unless defined $n;
34  $l = 10 unless defined $l;
35
36  return \(\$n) if $l <= 0;
37
38  [
39   { a => create_tree($l - 1, 2 * $n) },
40   1,
41   { b => create_tree($l - 1, 2 * $n + 1) },
42  ]
43 }
44
45 my $t1 = create_tree;
46 my $t2 = create_tree;
47
48 is_deeply $t1, $t2, 'a deep tree structure';