summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/perl/t/test_pl/_num_to_alpha.t
blob: 01aed339481ce9d9d1e6d25278e136e8083f29d7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!./perl

BEGIN {
    chdir 't' if -d 't';
    require './test.pl';
}

is( _num_to_alpha(-1), undef, 'Returns undef for negative numbers');
is( _num_to_alpha( 0), 'A', "Starts at 'A'");
is( _num_to_alpha( 1), 'B');

is( _num_to_alpha(26 - 1), 'Z', 'Last single letter return value');
is( _num_to_alpha(26    ), 'AA', 'First double letter return value');
is( _num_to_alpha(26 + 1), 'AB');

is( _num_to_alpha(26 + 26 - 2), 'AY');
is( _num_to_alpha(26 + 26 - 1), 'AZ');
is( _num_to_alpha(26 + 26    ), 'BA');
is( _num_to_alpha(26 + 26 + 1), 'BB');

is( _num_to_alpha(26 ** 2 - 1), 'YZ');
is( _num_to_alpha(26 ** 2    ), 'ZA');
is( _num_to_alpha(26 ** 2 + 1), 'ZB');

is( _num_to_alpha(26 ** 2 + 26 - 1), 'ZZ', 'Last double letter return value');
is( _num_to_alpha(26 ** 2 + 26    ), 'AAA', 'First triple letter return value');
is( _num_to_alpha(26 ** 2 + 26 + 1), 'AAB');

is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26 - 1 ), 'ZZZ', 'Last triple letter return value');
is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26     ), 'AAAA', 'First quadruple letter return value');
is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26 + 1 ), 'AAAB');

note('Testing limit capabilities');

is( _num_to_alpha(26 - 1 , 1), 'Z', 'Largest return value for one letter');
is( _num_to_alpha(26     , 1), undef); # AA

is( _num_to_alpha(26 ** 2 + 26 - 1 , 2 ), 'ZZ', 'Largest return value for two letters');
is( _num_to_alpha(26 ** 2 + 26     , 2 ), undef); # AAA

is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26 - 1 , 3 ), 'ZZZ', 'Largest return value for three letters');
is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26     , 3 ), undef); # AAAA

done_testing();