|
Revision 31480, 1.5 kB
(checked in by rintaro, 4 years ago)
|
|
Checking in changes prior to tagging of version 0.02. Changelog diff is:
Index: Changes
===================================================================
--- Changes (リビジョン 22705)
+++ Changes (作業コピー)
@@ -1,4 +1,8 @@
Revision history for Perl extension Attribute::Generator
+0.02 Tue Mar 24 04:25:23 2009
+ - Release on CPAN
+ - Requires Coro 4.91
+
0.01 Tue Nov 4 04:16:32 2008
- - original version
+ - original version ( not released on CPAN )
|
| Line | |
|---|
| 1 | use Test::More qw(no_plan); |
|---|
| 2 | |
|---|
| 3 | use strict; |
|---|
| 4 | use warnings; |
|---|
| 5 | use Attribute::Generator; |
|---|
| 6 | |
|---|
| 7 | sub gen_basic :Generator { |
|---|
| 8 | for(1, 2, 3, 'foo', 'bar', 6) { |
|---|
| 9 | yield $_; |
|---|
| 10 | } |
|---|
| 11 | } |
|---|
| 12 | |
|---|
| 13 | sub gen_arguments :Generator { |
|---|
| 14 | my(@list) = @_; |
|---|
| 15 | for(@list) { |
|---|
| 16 | yield $_ + 1; |
|---|
| 17 | } |
|---|
| 18 | } |
|---|
| 19 | |
|---|
| 20 | sub gen_nest :Generator { |
|---|
| 21 | my($stream) = @_; |
|---|
| 22 | while(defined(my $ev = $stream->next)) { |
|---|
| 23 | yield "=$ev="; |
|---|
| 24 | } |
|---|
| 25 | } |
|---|
| 26 | |
|---|
| 27 | sub gen_list :Generator { |
|---|
| 28 | yield 1,2,3; |
|---|
| 29 | yield 5,6; |
|---|
| 30 | } |
|---|
| 31 | |
|---|
| 32 | { # Basic |
|---|
| 33 | my $gen = gen_basic(); |
|---|
| 34 | |
|---|
| 35 | is($gen->next, 1); |
|---|
| 36 | is($gen->next, 2); |
|---|
| 37 | is($gen->next, 3); |
|---|
| 38 | is($gen->next, 'foo'); |
|---|
| 39 | is($gen->next, 'bar'); |
|---|
| 40 | is($gen->next, 6); |
|---|
| 41 | is($gen->next, undef); |
|---|
| 42 | is($gen->next, undef); |
|---|
| 43 | } |
|---|
| 44 | |
|---|
| 45 | { # with arguments |
|---|
| 46 | my $gen = gen_arguments(3,2,1); |
|---|
| 47 | |
|---|
| 48 | is($gen->next, 4); |
|---|
| 49 | is($gen->next, 3); |
|---|
| 50 | is($gen->next, 2); |
|---|
| 51 | is($gen->next, undef); |
|---|
| 52 | } |
|---|
| 53 | |
|---|
| 54 | { # mixed |
|---|
| 55 | my $gen1 = gen_basic(); |
|---|
| 56 | my $gen2 = gen_arguments(7,6,5,4,3,2); |
|---|
| 57 | is($gen1->next, 1); |
|---|
| 58 | is($gen2->next, 8); |
|---|
| 59 | is($gen1->next, 2); |
|---|
| 60 | is($gen2->next, 7); |
|---|
| 61 | is($gen1->next, 3); |
|---|
| 62 | is($gen2->next, 6); |
|---|
| 63 | is($gen1->next, 'foo'); |
|---|
| 64 | is($gen2->next, 5); |
|---|
| 65 | is($gen1->next, 'bar'); |
|---|
| 66 | is($gen2->next, 4); |
|---|
| 67 | is($gen1->next, 6); |
|---|
| 68 | is($gen2->next, 3); |
|---|
| 69 | is($gen1->next, undef); |
|---|
| 70 | is($gen2->next, undef); |
|---|
| 71 | } |
|---|
| 72 | |
|---|
| 73 | { # nested |
|---|
| 74 | my $gen = gen_arguments(1, 2); |
|---|
| 75 | $gen = gen_nest($gen); |
|---|
| 76 | is($gen->next, '=2='); |
|---|
| 77 | is($gen->next, '=3='); |
|---|
| 78 | is($gen->next, undef); |
|---|
| 79 | } |
|---|
| 80 | |
|---|
| 81 | { # yield list |
|---|
| 82 | my $gen = gen_list(); |
|---|
| 83 | is_deeply([$gen->next], [1,2,3]); |
|---|
| 84 | is_deeply([$gen->next], [5,6]); |
|---|
| 85 | } |
|---|
| 86 | |
|---|
| 87 | 1; |
|---|