summaryrefslogtreecommitdiff
path: root/t/lib/Test/Enigmatic.pm
blob: 99586672cc534ba01e8e79479620d7fd723565e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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');
    }
}