root/lang/perl/Attribute-Generator/trunk/t/01_basic.t @ 31480

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 
1use Test::More qw(no_plan);
2
3use strict;
4use warnings;
5use Attribute::Generator;
6
7sub gen_basic :Generator {
8    for(1, 2, 3, 'foo', 'bar', 6) {
9        yield $_;
10    }
11}
12
13sub gen_arguments :Generator {
14    my(@list) = @_;
15    for(@list) {
16        yield $_ + 1;
17    }
18}
19
20sub gen_nest :Generator {
21    my($stream) = @_;
22    while(defined(my $ev = $stream->next)) {
23        yield "=$ev=";
24    }
25}
26
27sub 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
871;
Note: See TracBrowser for help on using the browser.