1#!perl -w
2
3use strict;
4use Test qw(plan ok);
5
6plan tests => 129;
7
8use MIME::Base64 qw(encode_base64 encoded_base64_length decoded_base64_length);
9*elen = *encoded_base64_length;
10*dlen = *decoded_base64_length;
11
12ok(elen(""), 0);
13ok(elen("a"), 5);
14ok(elen("aa"), 5);
15ok(elen("aaa"), 5);
16ok(elen("aaaa"), 9);
17ok(elen("aaaaa"), 9);
18
19ok(elen("", ""), 0);
20ok(elen("a", ""), 4);
21ok(elen("aa", ""), 4);
22ok(elen("aaa", ""), 4);
23ok(elen("aaaa", ""), 8);
24ok(elen("aaaaa", ""), 8);
25
26ok(dlen(""), 0);
27ok(dlen("a"), 0);
28ok(dlen("aa"), 1);
29ok(dlen("aaa"), 2);
30ok(dlen("aaaa"), 3);
31ok(dlen("aaaaa"), 3);
32ok(dlen("aaaaaa"), 4);
33ok(dlen("aaaaaaa"), 5);
34ok(dlen("aaaaaaaa"), 6);
35
36ok(dlen("=aaaa"), 0);
37ok(dlen("a=aaa"), 0);
38ok(dlen("aa=aa"), 1);
39ok(dlen("aaa=a"), 2);
40ok(dlen("aaaa="), 3);
41
42ok(dlen("a\na\na a"), 3);
43
44for my $i (50..100) {
45    my $a = "a" x $i;
46    my $a_enc = encode_base64($a);
47    ok(elen($a), length($a_enc));
48    ok(dlen($a_enc), $i);
49}
50