This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Added optional char limit to _num_to_alpha() in test.pl
[perl5.git] / t / test_pl / _num_to_alpha.t
1 #!./perl
2
3 BEGIN {
4     chdir 't' if -d 't';
5     require './test.pl';
6 }
7
8 is( _num_to_alpha(-1), undef);
9 is( _num_to_alpha( 0), 'A');
10 is( _num_to_alpha( 1), 'B');
11
12 is( _num_to_alpha(26 - 1), 'Z');
13 is( _num_to_alpha(26    ), 'AA');
14 is( _num_to_alpha(26 + 1), 'AB');
15
16 is( _num_to_alpha(26 + 26 - 2), 'AY');
17 is( _num_to_alpha(26 + 26 - 1), 'AZ');
18 is( _num_to_alpha(26 + 26    ), 'BA');
19 is( _num_to_alpha(26 + 26 + 1), 'BB');
20
21 is( _num_to_alpha(26 ** 2 - 1), 'YZ');
22 is( _num_to_alpha(26 ** 2    ), 'ZA');
23 is( _num_to_alpha(26 ** 2 + 1), 'ZB');
24
25 is( _num_to_alpha(26 ** 2 + 26 - 1), 'ZZ');
26 is( _num_to_alpha(26 ** 2 + 26    ), 'AAA');
27 is( _num_to_alpha(26 ** 2 + 26 + 1), 'AAB');
28
29 is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26 - 1 ), 'ZZZ');
30 is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26     ), 'AAAA');
31 is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26 + 1 ), 'AAAB');
32
33 is( _num_to_alpha(26 - 1 , 1), 'Z');
34 is( _num_to_alpha(26     , 1), undef); # AA
35
36 is( _num_to_alpha(26 ** 2 + 26 - 1 , 2 ), 'ZZ');
37 is( _num_to_alpha(26 ** 2 + 26     , 2 ), undef); # AAA
38
39 is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26 - 1 , 3 ), 'ZZZ');
40 is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26     , 3 ), undef); # AAAA
41
42 done_testing();