package Test::Enigmatic; use DAKKAR::p 'test'; sub test_static_map { my ($mapper,$out,$name) = @_; my @in = 'A'..'Z'; my %map;@map{@in}=@$out; for my $c ('A' .. 'Z') { is($mapper->map($c), $map{$c}, "$name on $c"); } } sub test_full_machine { my ($factory,$input,$exp_output) = @_; $input =~ s{\s+}{}g; my $output = $factory->()->map_string(uc $input); note "output: $output"; my $back = $factory->()->map_string($output); note "back: $back"; is($back, $input, 'round tripped'); if ($exp_output) { $exp_output =~ s{\s+}{}g; is($output, uc($exp_output), 'got expected output'); } }