AUTHORS updates.
[p5sagit/p5-mst-13.2.git] / lib / Memoize / t / expire.t
CommitLineData
a0cb3900 1#!/usr/bin/perl
2
5317c87c 3BEGIN {
4 chdir 't' if -d 't';
5 @INC = '../lib';
6}
a0cb3900 7use Memoize;
8use Memoize::ExpireTest;
9
10my $n = 0;
11
12print "1..17\n";
13
14$n++; print "ok $n\n";
15
16my %CALLS;
17sub id {
18 my($arg) = @_;
19 ++$CALLS{$arg};
20 $arg;
21}
22
899dc88a 23tie my %cache => 'Memoize::ExpireTest';
24memoize 'id',
25 SCALAR_CACHE => [HASH => \%cache],
a0cb3900 26 LIST_CACHE => 'FAULT';
27$n++; print "ok $n\n";
28
29for $i (1, 2, 3, 1, 2, 1) {
30 $n++;
31 unless ($i == id($i)) {
32 print "not ";
33 }
34 print "ok $n\n";
35}
36
37for $i (1, 2, 3) {
38 $n++;
39 unless ($CALLS{$i} == 1) {
40 print "not ";
41 }
42 print "ok $n\n";
43}
44
45Memoize::ExpireTest::expire(1);
46
47for $i (1, 2, 3) {
48 my $v = id($i);
49}
50
51for $i (1, 2, 3) {
52 $n++;
53 unless ($CALLS{$i} == 1 + ($i == 1)) {
54 print "not ";
55 }
56 print "ok $n\n";
57}
58
59Memoize::ExpireTest::expire(1);
60Memoize::ExpireTest::expire(2);
61
62for $i (1, 2, 3) {
63 my $v = id($i);
64}
65
66for $i (1, 2, 3) {
67 $n++;
68 unless ($CALLS{$i} == 4 - $i) {
69 print "not ";
70 }
71 print "ok $n\n";
72}
73
74exit 0;
75