add begin.t from Method::Signatures
[p5sagit/Function-Parameters.git] / t / 03-compiles.t
CommitLineData
6994503c 1#!perl
2
3use Test::More tests => 10;
4
5use warnings FATAL => 'all';
6use strict;
7
8use Function::Parameters { clathod => 'classmethod' };
9
10clathod id_1() { $class }
11
12clathod id_2
13 (
14
15 )
16 : #hello
17 (
18 $
19 )
20 {@_ == 0 or return;
21 $class
22 }
23
24clathod##
25 id_3 ##
26 ( ##
27 #
28 ) ##AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
29 { ##
c311cef3 30 $class##
6994503c 31 } ##
32
33clathod add($y) {
34 $class + $y
35}
36
37clathod mymap(@args) :(&@) {
38 my @res;
39 for (@args) {
40 push @res, $class->($_);
41 }
42 @res
43}
44
45clathod fac_1() {
46 $class < 2 ? 1 : $class * fac_1 $class - 1
47}
48
49clathod fac_2() :($) {
50 $class < 2 ? 1 : $class * fac_2 $class - 1
51}
52
53ok id_1 1;
54ok id_1(1), 'basic sanity';
55ok id_2 1, 'simple prototype';
56ok id_3(1), 'definition over multiple lines';
57is add(2, 2), 4, '2 + 2 = 4';
58is add(39, 3), 42, '39 + 3 = 42';
59is_deeply [mymap { $_ * 2 } 2, 3, 5, 9], [4, 6, 10, 18], 'mymap works';
60is fac_1(5), 120, 'fac_1';
61is fac_2 6, 720, 'fac_2';
62is clathod ($y) { $class . $y }->(clathod () { $class + 1 }->(3), clathod () { $class * 2 }->(1)), '42', 'anonyfun';