#!/usr/bin/perl
package Chemistry::Elements;
use Test::More 'no_plan';
my $class = 'Chemistry::Elements';
use_ok( $class, qw(get_name) );
ok( defined &get_name, "get_name is defined" );
is( get_name( 'H' ), 'Hydrogen' );
is( get_name( 'Hydrogen' ), 'Hydrogen' );
is( get_name( '1' ), 'Hydrogen' );
is( get_name( 'Si', $Languages{'English'} ), 'Silicon' );
is( get_name( 'Silicon', $Languages{'English'} ), 'Silicon' );
is( get_name( '14', $Languages{'English'} ), 'Silicon' );
is( get_name( 'He', $Languages{'Pig Latin'} ), 'Eliumhai' );
is( get_name( 'Helium', $Languages{'Pig Latin'} ), 'Eliumhai' );
is( get_name( '2', $Languages{'Pig Latin'} ), 'Eliumhai' );
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Functional interface, stuff that shouldn't work
{
is( get_name( -1 ), undef, 'Got undef for -1' );
is( get_name( 0 ), undef, 'Got undef for 0' );
is( get_name( ), undef, 'Got undef for no args' );
is( get_name( undef ), undef, 'Got undef for undef' );
is( get_name( '' ), undef, 'Got undef for empty string' );
is( get_name( 'Unh' ), undef, 'Got undef for Unh' );
is( get_name( 'Foo' ), undef, 'Got undef for Foo' );
is( get_name( 82.1 ), undef, 'Got undef for 82.0' );
}