diff options
Diffstat (limited to 't/23func.t')
-rw-r--r-- | t/23func.t | 41 |
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> |