1PASS //item[@id=last()] 2PASS //item[position()=3] 3PASS count(//item) 4FAIL id("c") incorrect length (expected 1, actual 0) 5FAIL id(//reference) incorrect length (expected 3, actual 0) 6PASS local-name(//self::node()[@id=7]) 7PASS number(//self::node()[@id=7]/attribute::*[local-name()="value"]) 8PASS local-name(/absent) 9PASS namespace-uri(//self::node()[@id>5]) 10PASS //self::node()[@id and namespace-uri()="http://www.example.com/b"] 11PASS namespace-uri(/absent) 12PASS name(//self::node()[@id=7]) 13PASS //self::node()[name()="b:item"] 14PASS name(/absent) 15PASS string(//para) 16PASS string(//inconceivable) 17PASS string(0 div 0) 18PASS string(1 div 0) 19PASS string(-1 div 0) 20PASS string(2.5 * 2) 21PASS string(1 div -2) 22PASS string(1 = 2) 23PASS string("string") 24PASS //para[string()="Two"] 25PASS concat(//para, ":", //para[2]) 26PASS starts-with("foo-bar", "foo") 27PASS starts-with("foo-bar", "bar") 28PASS contains("foo-bar", "o-b") 29PASS contains("foo-bar", "b-o") 30PASS substring-before("foo::bar", "::") 31PASS substring-before("foo::bar", "--") 32PASS substring-after("foo::bar", "::") 33PASS substring-after("foo::bar", "--") 34PASS substring("12345", 2) 35PASS substring("12345", 2, 3) 36PASS substring("12345", 1.5, 2.6) 37PASS substring("12345", 0, 3) 38PASS substring("12345", 0 div 0, 3) 39PASS substring("12345", 1, 0 div 0) 40PASS substring("12345", -42, 1 div 0) 41PASS substring("12345", -1 div 0, 1 div 0) 42PASS substring("12345", 6, 1) 43PASS substring("12345", 1, 0) 44PASS string-length("12345") 45PASS //para[string-length()=5] 46PASS normalize-space(" one two ") 47PASS //para[normalize-space() = "Four"] 48PASS translate("abcdef", "abcde", "xyz") 49PASS boolean(1) 50PASS boolean(0) 51PASS boolean(0 div 0) 52PASS boolean(cod) 53PASS boolean(doc) 54PASS boolean("") 55PASS boolean("foo") 56PASS not(1 = 1) 57PASS true() 58PASS false() 59PASS //*[lang("en")] 60PASS //*[lang("EN-US")] 61PASS normalize-space((//text()[lang("jp")])[normalize-space()]) 62PASS string(number("-1e5")) 63PASS number(true()) 64PASS number(false()) 65PASS number(//item) 66PASS string(//item[number()=4 div 2]) 67PASS sum(//item) 68PASS floor(1.99) 69PASS floor(-1.99) 70PASS ceiling(1.99) 71PASS ceiling(-1.99) 72PASS round(1.5) 73PASS round(-1.5) 74PASS string(round(0 div 0)) 75PASS round(1 div 0) 76PASS round(-1 div 0) 77PASS number(".1") 78PASS number("1.") 79PASS string(number(".1.")) 80PASS string(number("..1")) 81PASS string(number("1..")) 82PASS string(number(".-1")) 83PASS successfullyParsed is true 84 85TEST COMPLETE 86 87