summaryrefslogtreecommitdiff
path: root/t/08-optimize.t
diff options
context:
space:
mode:
Diffstat (limited to 't/08-optimize.t')
-rw-r--r--t/08-optimize.t31
1 files changed, 31 insertions, 0 deletions
diff --git a/t/08-optimize.t b/t/08-optimize.t
new file mode 100644
index 0000000..bd1b891
--- /dev/null
+++ b/t/08-optimize.t
@@ -0,0 +1,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;