1898184e3Ssthen#!perl -w
2898184e3Ssthen
3898184e3Ssthenuse strict;
4*256a93a4Safresh1use warnings;
5898184e3Ssthenuse Test qw(plan ok);
6898184e3Ssthen
7898184e3Ssthenplan tests => 129;
8898184e3Ssthen
9898184e3Ssthenuse MIME::Base64 qw(encode_base64 encoded_base64_length decoded_base64_length);
10898184e3Ssthen*elen = *encoded_base64_length;
11898184e3Ssthen*dlen = *decoded_base64_length;
12898184e3Ssthen
13898184e3Ssthenok(elen(""), 0);
14898184e3Ssthenok(elen("a"), 5);
15898184e3Ssthenok(elen("aa"), 5);
16898184e3Ssthenok(elen("aaa"), 5);
17898184e3Ssthenok(elen("aaaa"), 9);
18898184e3Ssthenok(elen("aaaaa"), 9);
19898184e3Ssthen
20898184e3Ssthenok(elen("", ""), 0);
21898184e3Ssthenok(elen("a", ""), 4);
22898184e3Ssthenok(elen("aa", ""), 4);
23898184e3Ssthenok(elen("aaa", ""), 4);
24898184e3Ssthenok(elen("aaaa", ""), 8);
25898184e3Ssthenok(elen("aaaaa", ""), 8);
26898184e3Ssthen
27898184e3Ssthenok(dlen(""), 0);
28898184e3Ssthenok(dlen("a"), 0);
29898184e3Ssthenok(dlen("aa"), 1);
30898184e3Ssthenok(dlen("aaa"), 2);
31898184e3Ssthenok(dlen("aaaa"), 3);
32898184e3Ssthenok(dlen("aaaaa"), 3);
33898184e3Ssthenok(dlen("aaaaaa"), 4);
34898184e3Ssthenok(dlen("aaaaaaa"), 5);
35898184e3Ssthenok(dlen("aaaaaaaa"), 6);
36898184e3Ssthen
37898184e3Ssthenok(dlen("=aaaa"), 0);
38898184e3Ssthenok(dlen("a=aaa"), 0);
39898184e3Ssthenok(dlen("aa=aa"), 1);
40898184e3Ssthenok(dlen("aaa=a"), 2);
41898184e3Ssthenok(dlen("aaaa="), 3);
42898184e3Ssthen
43898184e3Ssthenok(dlen("a\na\na a"), 3);
44898184e3Ssthen
45898184e3Ssthenfor my $i (50..100) {
46898184e3Ssthen    my $a = "a" x $i;
47898184e3Ssthen    my $a_enc = encode_base64($a);
48898184e3Ssthen    ok(elen($a), length($a_enc));
49898184e3Ssthen    ok(dlen($a_enc), $i);
50898184e3Ssthen}
51