summaryrefslogtreecommitdiff
path: root/t/23func.t
diff options
context:
space:
mode:
Diffstat (limited to 't/23func.t')
-rw-r--r--t/23func.t41
1 files changed, 41 insertions, 0 deletions
diff --git a/t/23func.t b/t/23func.t
new file mode 100644
index 0000000..e2514c3
--- /dev/null
+++ b/t/23func.t
@@ -0,0 +1,41 @@
+use Test;
+BEGIN { plan tests => 5 }
+
+use XML::XPath;
+ok(1);
+
+my $xp = XML::XPath->new(ioref => *DATA);
+ok($xp);
+
+my @nodes;
+@nodes = $xp->findnodes('//BBB[position() mod 2 = 0 ]');
+ok(@nodes, 4);
+
+@nodes = $xp->findnodes('//BBB
+ [ position() = floor(last() div 2 + 0.5)
+ or
+ position() = ceiling(last() div 2 + 0.5) ]');
+
+ok(@nodes, 2);
+
+@nodes = $xp->findnodes('//CCC
+ [ position() = floor(last() div 2 + 0.5)
+ or
+ position() = ceiling(last() div 2 + 0.5) ]');
+
+ok(@nodes, 1);
+
+__DATA__
+<AAA>
+ <BBB/>
+ <BBB/>
+ <BBB/>
+ <BBB/>
+ <BBB/>
+ <BBB/>
+ <BBB/>
+ <BBB/>
+ <CCC/>
+ <CCC/>
+ <CCC/>
+</AAA>