|
Implementations | ||||||||||||||||
Tests | BaseX 7.7 XQ30 |
EMC/xDB xDB_main_r2411365 XQ30 |
Saxon-EE 9.5.1.1 XP20 |
Saxon-EE 9.5.1.1 XQ10 |
Saxon-EE 9.5.1.1 XP30 |
Saxon-EE 9.5.1.1 XQ30 |
Saxon-EE 9.5.1.4 XQX30 (QT3 v1.1) |
XmlPrime 3.0.0.0 XP30 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQ30 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQX30 (QT3 vCVS) |
XmlPrime 3.0.0.0 XP20 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQX10 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQ10 (QT3 vCVS) |
Zorba 2.9 XQ10 (QT3 vCVS) |
Zorba 2.9 XQ30 (QT3 vCVS) |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fn-position | 66/66 | 65/66 | 66/66 | 66/66 | 66/66 | 66/66 | 66/66 | 66/66 | 66/66 | 66/66 | 66/66 | 66/66 | 66/66 | 66/66 | 66/66 | 3/15 |
position-1[+]
X position-1: for $h in (/works) return $h/employee[position() = 1]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-2[+]
X position-2: position() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-3[+]
X position-3: for $h in (/works) return $h/employee[position() = 13]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-4[+]
X position-4: for $h in (/works) return $h/employee[position() = last()]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-5[+]
X position-5: for $h in (/works) return $h/employee[last() = position()]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-6[+]
X position-6: for $var in 1 return for $h in (/works) return $h/employee[position() = $var]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-7[+]
X position-7: for $var in "1" return for $h in (/works) return $h/employee[position() = xs:integer($var)]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-8[+]
X position-8: for $h in (/works/employee[12]) return $h/overtime[position() = position()]/day/string() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-9[+]
X position-9: for $h in (/works) return $h/employee[@name][position() = 1]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-10[+]
X position-10: for $h in (/works) return $h/employee[position() = 1][@name]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-11[+]
X position-11: for $h in (/works/employee[12]/overtime) return $h/day[not(position() = 1)]/string() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-12[+]
X position-12: for $h in (/works/employee[12]/overtime) return $h/*[position() = position()]/string() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-13[+]
X position-13: for $h in (/works) return $h/employee[position() = (2 + 2)]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-14[+]
X position-14: for $h in (/works) return $h/employee[position() = (5 - 2)]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-15[+]
X position-15: for $h in (/works) return $h/employee[position() = (3 * 2)]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-16[+]
X position-16: for $h in (/works) return $h/employee[position() = (6 div 2)]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-17[+]
X position-17: for $h in (/works) return $h/employee[position() = (6 idiv 2)]/string(@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-18[+]
X position-18: for $h in (/works/employee[12]) return ($h/overtime[position() and fn:true()]/*/string()) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-19[+]
X position-19: for $h in (/works/employee[12]) return ($h/overtime[position() and fn:false()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-20[+]
X position-20: for $h in (/works/employee[12]) return $h/overtime[position() or fn:true()]/*/string() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-21[+]
X position-21: for $h in (/works/employee[12]) return $h/overtime[position() or fn:false()]/*/string() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-22[+]
X position-22: for $h in (/works) return $h/employee[position() = 12]/overtime/*/string() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
position-23[+]
X position-23: position() |
pass | fail | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-1[+]
X K-ContextPositionFunc-1: position(1) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-2[+]
X K-ContextPositionFunc-2: (1, 2, 3)[if(1) then 1 else position()] |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-3[+]
X K-ContextPositionFunc-3: empty((1, 2, 3, current-time(), current-date(), 6, 7, 8) [position() = 0]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-4[+]
X K-ContextPositionFunc-4: empty((1, 2, 3, current-time(), current-date(), 6, 7, 8) [0 = position()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-5[+]
X K-ContextPositionFunc-5: empty((1, 2, 3, current-time(), current-date(), 6, 7, 8) [position() eq 0]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-6[+]
X K-ContextPositionFunc-6: empty((1, 2, 3, current-time(), current-date(), 6, 7, 8) [0 eq position()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-7[+]
X K-ContextPositionFunc-7: deep-equal( (1, 2, 3, remove((current-time(), 4), 1)) [position() != 0], (1, 2, 3, 4)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-8[+]
X K-ContextPositionFunc-8: deep-equal( (1, 2, 3, remove((current-time(), 4), 1)) [position() ne 0], (1, 2, 3, 4)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-9[+]
X K-ContextPositionFunc-9: deep-equal( (1, 2, 3, remove((current-time(), 4), 1)) [0 != position()], (1, 2, 3, 4)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-10[+]
X K-ContextPositionFunc-10: deep-equal( (1, 2, 3, remove((current-time(), 4), 1)) [0 ne position()], (1, 2, 3, 4)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-11[+]
X K-ContextPositionFunc-11: empty((1, 2, 3, current-time(), current-date(), 6, 7, 8) [position() lt 1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-12[+]
X K-ContextPositionFunc-12: empty((1, 2, 3, current-time(), current-date(), 6, 7, 8) [position() < 1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-13[+]
X K-ContextPositionFunc-13: empty((1, 2, 3, current-time(), current-date(), 6, 7, 8) [position() le 0]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-14[+]
X K-ContextPositionFunc-14: empty((1, 2, 3, current-time(), current-date(), 6, 7, 8) [position() <= 0]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-15[+]
X K-ContextPositionFunc-15: deep-equal( (1, 2, 3, remove((current-time(), 4), 1)) [position() > 0], (1, 2, 3, 4)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-16[+]
X K-ContextPositionFunc-16: deep-equal( (1, 2, 3, remove((current-time(), 4), 1)) [position() > 0], (1, 2, 3, 4)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-17[+]
X K-ContextPositionFunc-17: deep-equal( (1, 2, 3, remove((current-time(), 4), 1)) [position() gt 0], (1, 2, 3, 4)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-18[+]
X K-ContextPositionFunc-18: deep-equal( (1, 2, 3, remove((current-time(), 4), 1)) [position() >= 1], (1, 2, 3, 4)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-19[+]
X K-ContextPositionFunc-19: deep-equal( (1, 2, 3, remove((current-time(), 4), 1)) [position() ge 1], (1, 2, 3, 4)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-20[+]
X K-ContextPositionFunc-20: 1 eq (0, 1, current-time(), 4)[position() = 2] treat as xs:integer |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-21[+]
X K-ContextPositionFunc-21: 1 eq (0, 1, current-time(), 4)[position() eq 2] treat as xs:integer |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-22[+]
X K-ContextPositionFunc-22: 1 eq (0, 1, current-time(), 4)[2 eq position()] treat as xs:integer |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-23[+]
X K-ContextPositionFunc-23: 1 eq (0, 1, current-time(), 4)[2 = position()] treat as xs:integer |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-24[+]
X K-ContextPositionFunc-24: deep-equal((1, 2, 4), (1, 2, current-time(), 4)[position() != 3]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-25[+]
X K-ContextPositionFunc-25: deep-equal((1, 2, 4), (1, 2, current-time(), 4)[position() ne 3]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-26[+]
X K-ContextPositionFunc-26: deep-equal((1, 2, 4), (1, 2, current-time(), 4)[3 ne position()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-27[+]
X K-ContextPositionFunc-27: deep-equal((1, 2, 4), (1, 2, current-time(), 4)[3 != position()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-28[+]
X K-ContextPositionFunc-28: deep-equal((1, 2, 3), (1, 2, 3, current-time())[position() lt 4]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-29[+]
X K-ContextPositionFunc-29: deep-equal((1, 2, 3), (1, 2, 3, current-time())[position() < 4]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-30[+]
X K-ContextPositionFunc-30: deep-equal((1, 2, 3), (1, 2, 3, current-time())[4 gt position()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-31[+]
X K-ContextPositionFunc-31: deep-equal((1, 2, 3), (1, 2, 3, current-time())[4 > position()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-32[+]
X K-ContextPositionFunc-32: deep-equal((1, 2, 3), (1, 2, 3, current-time())[position() le 3]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-33[+]
X K-ContextPositionFunc-33: deep-equal((1, 2, 3), (1, 2, 3, current-time())[position() <= 3]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-34[+]
X K-ContextPositionFunc-34: deep-equal((1, 2, 3), (1, 2, 3, current-time())[3 ge position()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-35[+]
X K-ContextPositionFunc-35: deep-equal((1, 2, 3), (1, 2, 3, current-time())[3 >= position()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-36[+]
X K-ContextPositionFunc-36: deep-equal((4, 5), (1, 2, current-time(), 4, 5)[3 lt position()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-37[+]
X K-ContextPositionFunc-37: deep-equal((4, 5), (1, 2, current-time(), 4, 5)[3 < position()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-38[+]
X K-ContextPositionFunc-38: deep-equal((4, 5), (1, 2, current-time(), 4, 5)[position() gt 3]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-39[+]
X K-ContextPositionFunc-39: deep-equal((4, 5), (1, 2, current-time(), 4, 5)[position() > 3]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-40[+]
X K-ContextPositionFunc-40: deep-equal((4, 5), (1, 2, current-time(), 4, 5)[4 le position()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-41[+]
X K-ContextPositionFunc-41: deep-equal((4, 5), (1, 2, current-time(), 4, 5)[4 <= position()]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-42[+]
X K-ContextPositionFunc-42: deep-equal((4, 5), (1, 2, current-time(), 4, 5)[position() ge 4]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-ContextPositionFunc-43[+]
X K-ContextPositionFunc-43: deep-equal((4, 5), (1, 2, current-time(), 4, 5)[position() >= 4]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |