summaryrefslogtreecommitdiff
path: root/t/08-optimize.t
blob: bd1b891dab72bb2651b88e4b81a7dd0869dd8260 (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
#!perl 
use Test::Most;
use strict;
use warnings;
use Tree::Transform::XSLTish::Optimizer;
 
my $o=\&Tree::Transform::XSLTish::Optimizer::optimize;
 
my @flds=qw(opt_pattern min_depth max_depth expected_result);
my %cases=(
    'foo' => [ 'self::foo',0,0,'any' ],
    '//foo' => [ 'self::foo',0,0,'any' ],
    'foo/bar' => [ 'self::bar/parent::foo',0,0,'any' ],
    '//foo/bar' => [ 'self::bar/parent::foo',0,0,'any' ],
);
 
while (my ($path,$res) = each %cases) {
 
    note "testing $path";
 
    my $rule = { match => $path };
    $o->('',$rule);
 
    my $i=0;
    for my $field (@flds) {
        is($rule->{$field},$res->[$i],"$field ok"if defined $res->[$i];
        ++$i;
    }
}
 
done_testing;