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