Acme-TextLayout

 view release on metacpan or  search on metacpan

t/01-test.t  view on Meta::CPAN

bb
EOF
$tl = Acme::TextLayout->new;
ok (!($tl->instantiate(text => $pattern)));

# single char pattern test
$pattern = <<'EOF';
A
EOF
$tl = Acme::TextLayout->new;
ok($tl->instantiate(text => $pattern));
ok($tl->width()==1 && $tl->height()==1);

# bad pattern tests
$pattern = <<'EOF';
ABBA
EOF
ok(!$tl->instantiate(text => $pattern));

$tl = Acme::TextLayout->new;
$pattern = <<'EOF';
BBBA
ABBB
EOF
eval q($tl->instantiate(text => $pattern));
ok($@);

$tl = Acme::TextLayout->new;
$pattern = <<'EOF';
BBBAAA
BBBAAA
CCCCCC
BBBAAA
EOF
ok(!$tl->instantiate(text => $pattern));

# be sure leading whitespace handled
$tl = Acme::TextLayout->new;
$pattern = <<'EOF';
            ABBBB
            ABBBB
            CCCCC
EOF
ok($tl->instantiate(text => $pattern));
ok(!$tl->only_one());

# single character pattern and test only_one method
$tl = Acme::TextLayout->new;
$pattern = <<'EOF';
    A
EOF
ok($tl->instantiate(text => $pattern));
ok($tl->only_one() == 1);

$tl = Acme::TextLayout->new;
$pattern = <<'EOF';
    AAAABBBBBB
    AAAABBBBBB
EOF
ok($tl->instantiate(text => $pattern));
ok(check([qw(0.4 1)], $tl->range_as_percent('A')));
ok(check([qw(0.6 1)], $tl->range_as_percent('B')));
ok(check([qw(0 0 39 99)], $tl->map_range(100, 100, 'A')));
ok(check([qw(40 0 99 99)], $tl->map_range(100, 100, 'B')));

$pattern = <<'EOF';
    AAAABBBBBB
    AAAABBBBBB
    CCCCDDDDDD
    CCCCDDDDDD
EOF
ok($tl->instantiate(text => $pattern));
ok(check([qw(0.4 0.5)], $tl->range_as_percent('A')));
ok(check([qw(0.4 0.5)], $tl->range_as_percent('C')));
ok(check([qw(0.6 0.5)], $tl->range_as_percent('B')));
ok(check([qw(0.6 0.5)], $tl->range_as_percent('D')));
ok(check([qw(0 0 39 49)], $tl->map_range(100, 100, 'A')));
ok(check([qw(0 50 39 99)], $tl->map_range(100, 100, 'C')));
ok(check([qw(40 0 99 49)], $tl->map_range(100, 100, 'B')));
ok(check([qw(40 50 99 99)], $tl->map_range(100, 100, 'D')));
ok($tl->height()==4 && $tl->width()==10);
ok(check([qw(0 1 0 3)], $tl->range('A')));
ok(check([qw(2 3 0 3)], $tl->range('C')));
ok(check([qw(0 1 4 9)], $tl->range('B')));
ok(check([qw(2 3 4 9)], $tl->range('D')));

ok($tl->instantiate(file => 'data/foobar.dat'));
ok($tl->width()==5 && $tl->height()==3);

sub check {
    my ($ref, @x) = @_;
    my $status = 1;
    if (@$ref != @x) {
        print STDERR Dumper(\@x);
        return 0;
    }
    map {
        $status = 0 unless $ref->[$_] eq $x[$_];
    } 0..$#x;
    print STDERR Dumper(\@x) unless $status;
    return $status;
}



( run in 1.967 second using v1.01-cache-2.11-cpan-39bf76dae61 )