rewrite to generate actual ops, not source code
[p5sagit/Function-Parameters.git] / t / regress.t
diff --git a/t/regress.t b/t/regress.t
new file mode 100644 (file)
index 0000000..2c4bbfb
--- /dev/null
@@ -0,0 +1,44 @@
+#!perl
+
+use Test::More tests => 21;
+
+use warnings FATAL => 'all';
+use strict;
+
+use Function::Parameters;
+
+fun mk_counter($i) {
+       fun () { $i++ }
+}
+
+method nop() {}
+fun fnop($x, $y, $z) {
+}
+
+is_deeply [nop], [];
+is_deeply [main->nop], [];
+is_deeply [nop 1], [];
+is scalar(nop), undef;
+is scalar(nop 2), undef;
+
+is_deeply [fnop], [];
+is_deeply [fnop 3, 4], [];
+is scalar(fnop), undef;
+is scalar(fnop 5, 6), undef;
+
+my $f = mk_counter 0;
+my $g = mk_counter 10;
+my $h = mk_counter 50;
+
+is $f->(), 0;
+is $g->(), 10;
+is $h->(), 50;
+is $f->(), 1;
+is $g->(), 11;
+is $h->(), 51;
+is $f->(), 2;
+is $f->(), 3;
+is $f->(), 4;
+is $g->(), 12;
+is $h->(), 52;
+is $g->(), 13;