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;