1#!./perl 2 3BEGIN { 4 chdir 't' if -d 't'; 5 require './test.pl'; 6} 7 8is( _num_to_alpha(-1), undef, 'Returns undef for negative numbers'); 9is( _num_to_alpha( 0), 'A', "Starts at 'A'"); 10is( _num_to_alpha( 1), 'B'); 11 12is( _num_to_alpha(26 - 1), 'Z', 'Last single letter return value'); 13is( _num_to_alpha(26 ), 'AA', 'First double letter return value'); 14is( _num_to_alpha(26 + 1), 'AB'); 15 16is( _num_to_alpha(26 + 26 - 2), 'AY'); 17is( _num_to_alpha(26 + 26 - 1), 'AZ'); 18is( _num_to_alpha(26 + 26 ), 'BA'); 19is( _num_to_alpha(26 + 26 + 1), 'BB'); 20 21is( _num_to_alpha(26 ** 2 - 1), 'YZ'); 22is( _num_to_alpha(26 ** 2 ), 'ZA'); 23is( _num_to_alpha(26 ** 2 + 1), 'ZB'); 24 25is( _num_to_alpha(26 ** 2 + 26 - 1), 'ZZ', 'Last double letter return value'); 26is( _num_to_alpha(26 ** 2 + 26 ), 'AAA', 'First triple letter return value'); 27is( _num_to_alpha(26 ** 2 + 26 + 1), 'AAB'); 28 29is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26 - 1 ), 'ZZZ', 'Last triple letter return value'); 30is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26 ), 'AAAA', 'First quadruple letter return value'); 31is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26 + 1 ), 'AAAB'); 32 33note('Testing limit capabilities'); 34 35is( _num_to_alpha(26 - 1 , 1), 'Z', 'Largest return value for one letter'); 36is( _num_to_alpha(26 , 1), undef); # AA 37 38is( _num_to_alpha(26 ** 2 + 26 - 1 , 2 ), 'ZZ', 'Largest return value for two letters'); 39is( _num_to_alpha(26 ** 2 + 26 , 2 ), undef); # AAA 40 41is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26 - 1 , 3 ), 'ZZZ', 'Largest return value for three letters'); 42is( _num_to_alpha(26 ** 3 + 26 ** 2 + 26 , 3 ), undef); # AAAA 43 44done_testing(); 45