diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-08-18 18:34:54 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-08-18 18:34:54 -0500 |
commit | 6d034593a5f0b02eb9e5b7069fa86814aae07b7c (patch) | |
tree | cac520e6c8261200f1106d905c9a54ac5eb07883 /t | |
parent | 81934f7347d6d0ebaa8713fb2d9962764de724fc (diff) | |
download | fun-6d034593a5f0b02eb9e5b7069fa86814aae07b7c.tar.gz fun-6d034593a5f0b02eb9e5b7069fa86814aae07b7c.zip |
initial implementation
Diffstat (limited to 't')
-rw-r--r-- | t/basic.t | 32 | ||||
-rw-r--r-- | t/compile-time.t | 14 | ||||
-rw-r--r-- | t/recursion.t | 25 |
3 files changed, 71 insertions, 0 deletions
diff --git a/t/basic.t b/t/basic.t new file mode 100644 index 0000000..080c2cf --- /dev/null +++ b/t/basic.t @@ -0,0 +1,32 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +use Fun; + +fun mul ($x, $y) { + return $x * $y; +} + +is(mul(3, 4), 12); + +fun sum (@nums) { + my $sum; + for my $num (@nums) { + $sum += $num; + } + return $sum; +} + +is(sum(1, 2, 3, 4), 10); + +{ + package Foo; + use Fun; + fun foo { } +} + +ok(exists $Foo::{foo}); + +done_testing; diff --git a/t/compile-time.t b/t/compile-time.t new file mode 100644 index 0000000..a20ff6c --- /dev/null +++ b/t/compile-time.t @@ -0,0 +1,14 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +use Fun; + +TODO: { todo_skip "doesn't work at compile time yet", 1; +is(foo(), "FOO"); +} + +fun foo { "FOO" } + +done_testing; diff --git a/t/recursion.t b/t/recursion.t new file mode 100644 index 0000000..0b13da9 --- /dev/null +++ b/t/recursion.t @@ -0,0 +1,25 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +BEGIN { + if (!eval { require 5.016; 1 }) { + plan skip_all => "This test requires 5.16"; + } +} + +use 5.016; + +use Fun; + +fun fact ($n) { + if ($n < 2) { + return 1; + } + return $n * __SUB__->($n - 1); +} + +is(fact(5), 120); + +done_testing; |