bump versions, make them match
[gitmo/Moose-Autobox.git] / t / 006_y_combinator.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 3;
7 use Test::Exception;
8
9 BEGIN {
10     use_ok('Moose::Autobox');
11 }
12
13 use Moose::Autobox;
14
15 # we need a control in the experiment
16 sub fact {
17     my $n = shift;
18     return 1 if $n < 2;
19     return $n * fact($n - 1);
20 }
21
22 *fact2 = sub {
23     my $f = shift;
24     sub {
25         my $n = shift;
26         return 1 if $n < 2;
27         return $n * $f->($n - 1);
28     }
29 }->y;
30
31 *fact3 = sub {
32     my $f = shift;
33     sub {
34         my $n = shift;
35         return 1 if $n < 2;
36         return $n * ($f->($f))->($n - 1);
37     }
38 }->u;
39
40 is(fact(10), fact2(10), '... our factorials match');
41 is(fact(10), fact3()->(10), '... our factorials match');
42