6 use Test::More tests => 3 * 2 * 5;
10 my @brds = map [ B::RecDeparse->new(level => $_), $_ ], 0, 1, 2, 5, -1;
22 my $exp_fact = <<'EXP';
31 sub foo { bar($_[0] + 1) }
33 sub bar { foo($_[0] - 1) }
35 my $exp_foo0 = <<'EXP';
39 my $exp_foo1 = <<'EXP';
45 my $exp_bar0 = <<'EXP';
49 my $exp_bar1 = <<'EXP';
56 [ \&fact, [ $exp_fact ], 'fact' ],
57 [ \&foo, [ $exp_foo0, $exp_foo1 ], 'foo' ],
58 [ \&bar, [ $exp_bar0, $exp_bar1 ], 'bar' ],
62 my ($code, $exps, $desc) = @$_;
64 s/^\s*//mg, s/\s*$//mg, $_ = qr/\Q$_\E/ for @$exps;
66 for my $i (0 .. $#brds) {
67 my ($brd, $level) = @{$brds[$i]};
69 my $exp = $exps->[$i];
70 $exp = $exps->[-1] unless defined $exp;
73 $brd->coderef2text($code);
75 is $@, '', "deparsing $desc at level $level doesn't croak";
77 s/^\s*//mg, s/\s*$//mg for $body;
79 like $body, qr/$exp/, "deparsing $desc at level $level correctly";