use Acme::KeyboardMarathon;
use Data::Dumper;
use Test::Simple tests => 98;
use warnings;
use strict;

my $ak = new Acme::KeyboardMarathon;

ok( $ak->{k}->{"\t"} == 255, '\t should be 255, but is ' . $ak->{k}->{"\t"});
ok( $ak->{k}->{"\n"} == 425, '\n should be 425, but is ' . $ak->{k}->{"\n"});
ok( $ak->{k}->{"\r"} ==   0, '\r should be 0, but is '   . $ak->{k}->{"\r"});
ok( $ak->{k}->{' '}  ==  25, '  should be 25, but is '   . $ak->{k}->{' '} );
ok( $ak->{k}->{'!'}  == 625, '! should be 625, but is '  . $ak->{k}->{'!'} );
ok( $ak->{k}->{'"'}  == 425, '" should be 425, but is '  . $ak->{k}->{'"'} );
ok( $ak->{k}->{'#'}  == 625, '# should be 625, but is '  . $ak->{k}->{'#'} );
ok( $ak->{k}->{'$'}  == 625, '$ should be 625, but is '  . $ak->{k}->{'$'} );
ok( $ak->{k}->{'%'}  == 625, '% should be 625, but is '  . $ak->{k}->{'%'} );
ok( $ak->{k}->{'&'}  == 625, '& should be 625, but is '  . $ak->{k}->{'&'} );
ok( $ak->{k}->{'\''} == 425, '\' should be 425, but is ' . $ak->{k}->{'\''});
ok( $ak->{k}->{'('}  == 625, '( should be 625, but is '  . $ak->{k}->{'('} );
ok( $ak->{k}->{')'}  == 625, ') should be 625, but is '  . $ak->{k}->{')'} );
ok( $ak->{k}->{'*'}  == 625, '* should be 625, but is '  . $ak->{k}->{'*'} );
ok( $ak->{k}->{'+'}  == 675, '+ should be 675, but is '  . $ak->{k}->{'+'} );
ok( $ak->{k}->{','}  == 225, ', should be 225, but is '  . $ak->{k}->{','} );
ok( $ak->{k}->{'-'}  == 425, '- should be 425, but is '  . $ak->{k}->{'-'} );
ok( $ak->{k}->{'.'}  == 225, '. should be 225, but is '  . $ak->{k}->{'.'} );
ok( $ak->{k}->{'/'}  == 225, '/ should be 225, but is '  . $ak->{k}->{'/'} );
ok( $ak->{k}->{'0'}  == 425, '0 should be 425, but is '  . $ak->{k}->{'0'} );
ok( $ak->{k}->{'1'}  == 425, '1 should be 425, but is '  . $ak->{k}->{'1'} );
ok( $ak->{k}->{'2'}  == 425, '2 should be 425, but is '  . $ak->{k}->{'2'} );
ok( $ak->{k}->{'3'}  == 425, '3 should be 425, but is '  . $ak->{k}->{'3'} );
ok( $ak->{k}->{'4'}  == 425, '4 should be 425, but is '  . $ak->{k}->{'4'} );
ok( $ak->{k}->{'5'}  == 425, '5 should be 425, but is '  . $ak->{k}->{'5'} );
ok( $ak->{k}->{'6'}  == 525, '6 should be 525, but is '  . $ak->{k}->{'6'} );
ok( $ak->{k}->{'7'}  == 425, '7 should be 425, but is '  . $ak->{k}->{'7'} );
ok( $ak->{k}->{'8'}  == 425, '8 should be 425, but is '  . $ak->{k}->{'8'} );
ok( $ak->{k}->{'9'}  == 425, '9 should be 425, but is '  . $ak->{k}->{'9'} );
ok( $ak->{k}->{':'}  == 225, ': should be 225, but is '  . $ak->{k}->{':'} );
ok( $ak->{k}->{';'}  ==  25, '; should be 25, but is '   . $ak->{k}->{';'} );
ok( $ak->{k}->{'<'}  == 425, '< should be 425, but is '  . $ak->{k}->{'<'} );
ok( $ak->{k}->{'='}  == 475, '= should be 475, but is '  . $ak->{k}->{'='} );
ok( $ak->{k}->{'>'}  == 425, '> should be 425, but is '  . $ak->{k}->{'>'} );
ok( $ak->{k}->{'?'}  == 425, '? should be 425, but is '  . $ak->{k}->{'?'} );
ok( $ak->{k}->{'@'}  == 625, '@ should be 625, but is '  . $ak->{k}->{'@'} );
ok( $ak->{k}->{'A'}  == 225, 'A should be 225, but is '  . $ak->{k}->{'A'} );
ok( $ak->{k}->{'B'}  == 575, 'B should be 575, but is '  . $ak->{k}->{'B'} );
ok( $ak->{k}->{'C'}  == 425, 'C should be 425, but is '  . $ak->{k}->{'C'} );
ok( $ak->{k}->{'D'}  == 225, 'D should be 225, but is '  . $ak->{k}->{'D'} );
ok( $ak->{k}->{'E'}  == 425, 'E should be 425, but is '  . $ak->{k}->{'E'} );
ok( $ak->{k}->{'F'}  == 225, 'F should be 225, but is '  . $ak->{k}->{'F'} );
ok( $ak->{k}->{'G'}  == 425, 'G should be 425, but is '  . $ak->{k}->{'G'} );
ok( $ak->{k}->{'H'}  == 425, 'H should be 425, but is '  . $ak->{k}->{'H'} );
ok( $ak->{k}->{'I'}  == 625, 'I should be 625, but is '  . $ak->{k}->{'I'} );
ok( $ak->{k}->{'J'}  == 225, 'J should be 225, but is '  . $ak->{k}->{'J'} );
ok( $ak->{k}->{'K'}  == 225, 'K should be 225, but is '  . $ak->{k}->{'K'} );
ok( $ak->{k}->{'L'}  == 225, 'L should be 225, but is '  . $ak->{k}->{'L'} );
ok( $ak->{k}->{'M'}  == 425, 'M should be 425, but is '  . $ak->{k}->{'M'} );
ok( $ak->{k}->{'N'}  == 425, 'N should be 425, but is '  . $ak->{k}->{'N'} );
ok( $ak->{k}->{'O'}  == 425, 'O should be 425, but is '  . $ak->{k}->{'O'} );
ok( $ak->{k}->{'P'}  == 425, 'P should be 425, but is '  . $ak->{k}->{'P'} );
ok( $ak->{k}->{'Q'}  == 425, 'Q should be 425, but is '  . $ak->{k}->{'Q'} );
ok( $ak->{k}->{'R'}  == 425, 'R should be 425, but is '  . $ak->{k}->{'R'} );
ok( $ak->{k}->{'S'}  == 225, 'S should be 225, but is '  . $ak->{k}->{'S'} );
ok( $ak->{k}->{'T'}  == 425, 'T should be 425, but is '  . $ak->{k}->{'T'} );
ok( $ak->{k}->{'U'}  == 425, 'U should be 425, but is '  . $ak->{k}->{'U'} );
ok( $ak->{k}->{'V'}  == 425, 'V should be 425, but is '  . $ak->{k}->{'V'} );
ok( $ak->{k}->{'W'}  == 425, 'W should be 425, but is '  . $ak->{k}->{'W'} );
ok( $ak->{k}->{'X'}  == 425, 'X should be 425, but is '  . $ak->{k}->{'X'} );
ok( $ak->{k}->{'Y'}  == 425, 'Y should be 425, but is '  . $ak->{k}->{'Y'} );
ok( $ak->{k}->{'Z'}  == 425, 'Z should be 425, but is '  . $ak->{k}->{'Z'} );
ok( $ak->{k}->{'['}  == 255, '[ should be 255, but is '  . $ak->{k}->{'['} );
ok( $ak->{k}->{'\\'} == 575, '\\ should be 575, but is ' . $ak->{k}->{'\\'});
ok( $ak->{k}->{']'}  == 425, '] should be 425, but is '  . $ak->{k}->{']'} );
ok( $ak->{k}->{'^'}  == 725, '^ should be 725, but is '  . $ak->{k}->{'^'} );
ok( $ak->{k}->{'_'}  == 625, '_ should be 625, but is '  . $ak->{k}->{'_'} );
ok( $ak->{k}->{'`'}  == 525, '` should be 525, but is '  . $ak->{k}->{'`'} );
ok( $ak->{k}->{'a'}  ==  25, 'a should be 25, but is '   . $ak->{k}->{'a'} );
ok( $ak->{k}->{'b'}  == 375, 'b should be 375, but is '  . $ak->{k}->{'b'} );
ok( $ak->{k}->{'c'}  == 225, 'c should be 225, but is '  . $ak->{k}->{'c'} );
ok( $ak->{k}->{'d'}  ==  25, 'd should be 25, but is '   . $ak->{k}->{'d'} );
ok( $ak->{k}->{'e'}  == 225, 'e should be 225, but is '  . $ak->{k}->{'e'} );
ok( $ak->{k}->{'f'}  ==  25, 'f should be 25, but is '   . $ak->{k}->{'f'} );
ok( $ak->{k}->{'g'}  == 225, 'g should be 225, but is '  . $ak->{k}->{'g'} );
ok( $ak->{k}->{'h'}  == 225, 'h should be 225, but is '  . $ak->{k}->{'h'} );
ok( $ak->{k}->{'i'}  == 425, 'i should be 425, but is '  . $ak->{k}->{'i'} );
ok( $ak->{k}->{'j'}  ==  25, 'j should be 25, but is '   . $ak->{k}->{'j'} );
ok( $ak->{k}->{'k'}  ==  25, 'k should be 25, but is '   . $ak->{k}->{'k'} );
ok( $ak->{k}->{'l'}  ==  25, 'l should be 25, but is '   . $ak->{k}->{'l'} );
ok( $ak->{k}->{'m'}  == 225, 'm should be 225, but is '  . $ak->{k}->{'m'} );
ok( $ak->{k}->{'n'}  == 225, 'n should be 225, but is '  . $ak->{k}->{'n'} );
ok( $ak->{k}->{'o'}  == 225, 'o should be 225, but is '  . $ak->{k}->{'o'} );
ok( $ak->{k}->{'p'}  == 225, 'p should be 225, but is '  . $ak->{k}->{'p'} );
ok( $ak->{k}->{'q'}  == 225, 'q should be 225, but is '  . $ak->{k}->{'q'} );
ok( $ak->{k}->{'r'}  == 225, 'r should be 225, but is '  . $ak->{k}->{'r'} );
ok( $ak->{k}->{'s'}  ==  25, 's should be 25, but is '   . $ak->{k}->{'s'} );
ok( $ak->{k}->{'t'}  == 225, 't should be 225, but is '  . $ak->{k}->{'t'} );
ok( $ak->{k}->{'u'}  == 225, 'u should be 225, but is '  . $ak->{k}->{'u'} );
ok( $ak->{k}->{'v'}  == 225, 'v should be 225, but is '  . $ak->{k}->{'v'} );
ok( $ak->{k}->{'w'}  == 225, 'w should be 225, but is '  . $ak->{k}->{'w'} );
ok( $ak->{k}->{'x'}  == 225, 'x should be 225, but is '  . $ak->{k}->{'x'} );
ok( $ak->{k}->{'y'}  == 225, 'y should be 225, but is '  . $ak->{k}->{'y'} );
ok( $ak->{k}->{'z'}  == 225, 'z should be 225, but is '  . $ak->{k}->{'z'} );
ok( $ak->{k}->{'{'}  == 455, '{ should be 455, but is '  . $ak->{k}->{'{'} );
ok( $ak->{k}->{'|'}  == 775, '| should be 775, but is '  . $ak->{k}->{'|'} );
ok( $ak->{k}->{'}'}  == 625, '} should be 625, but is '  . $ak->{k}->{'}'} );
ok( $ak->{k}->{'~'}  == 725, '~ should be 725, but is '  . $ak->{k}->{'~'} );