The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

# Google Chart API is way cool.  Here's how you can implement their extended
# encoding. -- rjbs, 2008-04-18

use Test::More tests => 8;

use Number::Nary;

my ($c, $d) = n_codec(
  join('', ('A'..'Z', 'a'..'z', 0..9, '-', '.')),
  { postencode => sub { length($_[0]) % 2 ? "A$_[0]" : $_[0] } }
);

my @pairs = (
  [ qw(    7 AH) ],
  [ qw(  133 CF) ],
  [ qw( 3975 -H) ],
  [ qw( 4037 .F) ],
);

for my $pair (@pairs) {
  ok($pair->[0] == $d->($pair->[1]), "$pair->[0] == dec($pair->[1])");
  ok($pair->[1] eq $c->($pair->[0]), "$pair->[1] eq enc($pair->[0])");
}