XQuery Test Suite Result Summary

This document contains the results of running the XML Query Test Suite on one or more implementaions of XQuery and XQueryX.

The latest version of this test suite is XQTS 1.0.0 dev. Implementations that have used older versions of the test suite are noted.

When results are listed as number/number/number, then indicate passed/failed/total. Passed and failed together may not equal total, due to tests not run or not reported.

Featurexbird/open
(XQTS 1.0.0 dev (rev 1.28))
Minimal Conformance 12044 / 2097 / 14587 
Optional Features
    Schema Import Feature 0 / 15 / 188 
    Schema Validation Feature 0 / 0 / 25 
    Static Typing Feature 0 / 0 / 46 
    Full Axis Feature 130 / 0 / 130 
    Module Feature 17 / 15 / 32 
    Trivial XML Embedding Feature 0 / 0 / 4 

Implementations:

xbird/open

Organization:Makoto YUI (NAIST)
http://db-www.naist.jp/~makoto-y/proj/xbird/
Implementation:xbird/open
Version:1.0 alpha 1

Summarized Results:

Featurexbird/open
(XQTS 1.0.0 dev (rev 1.28))
Minimal Conformance
    Optional Feature Errors
        Single error code for extra features0/18
    XQuery Basics
        Static Context Evaluation1/1
        Query Types
            XQuery Sequence Type Syntax21/21
    XQuery Expressions
        Primary Expressions
            Literals116/119
            Parenthesized Expressions18/20
            Context Item Expressions
                External Context Item Expressions21/24
                Internal Context Item Expressions21/21
            Function Calls28/28
        Path Expressions
            General Path Expression Tests0/1
            Steps
                Axes181/186
                Node Tests
                    NodeTest23/24
                    NameTest33/37
            Predicates40/44
            Unabbreviated Syntax23/26
            Abbreviated Syntax20/21
        Sequence Expressions
            Constructing Sequences
                Comma Operator53/54
                Range Expression60/65
            Filter Expressions97/116
            Combining Node Sequences15/20
        Operators
            Arithmetic Operators
                Arithmetic Operators on Numeric Values
                    op:numeric-add100/137
                    op:numeric-subtract92/107
                    op:numeric-multiply67/79
                    op:numeric-divide71/105
                    op:numeric-integer-divide97/109
                    op:numeric-mod48/58
                    op:numeric-unary-plus50/51
                    op:numeric-unary-minus51/52
                Arithmetic Operators on Duration Values
                    op:add-yearMonthDurations16/24
                    op:subtract-yearMonthDurations21/30
                    op:multiply-yearMonthDuration27/37
                    op:divide-yearMonthDuration7/27
                    op:divide-yearMonthDuration-by-yearMonthDuration16/22
                    op:add-dayTimeDurations24/24
                    op:subtract-dayTimeDurations30/30
                    op:multiply-dayTimeDuration31/32
                    op:divide-dayTimeDuration31/36
                    op:divide-dayTimeDuration-by-dayTimeDuration20/22
                Arithmetic Operators on Duration and Date Time Values
                    op:subtract-dateTimes-yielding-dayTimeDuration18/26
                    op:subtract-dates-yielding-dayTimeDuration19/26
                    op:subtract-times28/29
                    op:add-yearMonthDuration-to-dateTime26/26
                    op:add-dayTimeDuration-to-dateTime23/24
                    op:subtract-yearMonthDuration-from-dateTime21/21
                    op:subtract-dayTimeDuration-from-dateTime20/20
                    op:add-yearMonthDuration-to-date24/24
                    op:add-dayTimeDuration-to-date21/22
                    op:subtract-yearMonthDuration-from-date23/23
                    op:subtract-dayTimeDuration-from-date20/21
                    op:add-dayTimeDuration-to-time24/24
                    op:subtract-dayTimeDuration-from-time26/26
            Comparison Operators
                Value Comparison
                    Comparison of Numeric Values
                        op:numeric-equal175/178
                        op:numeric-less-than148/152
                        op:numeric-greater-than84/88
                    Comparison Operators on Boolean Values
                        op:boolean-equal49/49
                        op:boolean-less-than29/39
                        op:boolean-greater-than27/39
                    Comparisons of Duration, Date Time Values
                        op:yearMonthDuration-less-than28/28
                        op:yearMonthDuration-greater-than28/28
                        op:dayTimeDuration-less-than26/28
                        op:dayTimeDuration-greater-than26/28
                        op:duration equal91/129
                        op:dateTime-equal28/52
                        op:dateTime-less-than28/28
                        op:dateTime-greater-than28/28
                        op:date-equal28/28
                        op:date-less-than29/30
                        op:date-greater-than30/30
                        op:time-equal28/40
                        op:time-less-than30/30
                        op:time-greater-than29/30
                        op:gYearMonth-equal30/32
                        op:gYear-equal31/32
                        op:gMonthDay-equal30/31
                        op:gMonth-equal0/31
                        op:gDay-equal29/31
                        op:yearMonthDuration-equal7/7
                        op:dayTimeDuration-equal7/8
                    Comparison Operators on QName Values
                        op:QName-equal32/36
                        fn:prefix-from-QName7/24
                    Comparison Operators on base64Binary and hexBinary Types
                        op:hexBinary-equal29/29
                        op:base64Binary-equal26/27
                    Comparison Operators on NOTATION Types
                        op:NOTATION-equal
                    Type Checking and Error Handling27/42
                    Comparison of String Values
                        xs:string eq/ne xs:string5/5
                        xs:string gt/ge xs:string5/5
                        xs:string lt/le xs:string5/5
                    Comparison of AnyURI Values
                        xs:anyURI eq/ne xs:anyURI6/10
                General Comparisons
                    The "=" operator for general comparisons138/158
                    The "!=" operator for general comparisons126/140
                    The "< (less than)" operator for general comparisons103/118
                    The "<= (less than or equal)" operator for general comparisons94/107
                    The "> (greater than)" operator for general comparisons103/118
                    The ">= (greater than or equal)" operator for general comparisons95/109
                Node Comparisons
                    op:is-same-node20/28
                    op:node-before20/33
                    op:node-after20/33
            Operators on Sequences
                op:union22/23
                op:intersect21/23
                op:except20/23
        Logical Expressions363/364
        Constructors
            Direct Element Constructors167/230
                Attributes42/51
                Namespace Declaration Attributes17/29
                Content55/80
                White Space Element Content53/57
            Other Direct Constructors19/20
            Computed Constructors
                Computed Element Constructors46/51
                Computed Attribute Constructors33/33
                Document Node Constructors20/24
                Text Node Constructors17/20
                Computed Processing-instruction Constructors34/41
                Computed Comment Constructors21/21
            In-scope Namespaces of a Constructed Element10/20
        Tests of For-Let-Where-OrderBy-Return Expressions
            FOR Clause
                FOR Clause without TypeDeclaration71/87
                FOR Clause with TypeDeclaration26/55
                FOR Clause with a Positional Variable24/30
            LET Clause
                LET Clause without TypeDeclaration22/27
                LET Clause with TypeDeclaration24/24
            WHERE Clause39/40
            ORDER BY Clause
                ORDER BY Clause with OrderModifier45/106
                ORDER BY Clause without OrderModifier25/40
            RETURN Clause20/20
        Ordered and Unordered Expressions16/26
        Conditional Expressions32/32
        Quantified Expressions
            Quantified Expressions Without TypeDeclaration134/158
            Quantified Expressions With TypeDeclaration21/30
        Expressions on Sequence Types
            Instance Of150/176
            Typeswitch22/36
            Cast from Derived types21/21
            Cast from Derived types To Parents21/21
            Casting within a branch of the type hierarchy21/21
            Cast1999/2207
            Castable652/688
            Treat39/43
        Modules and Prologs
            Version Declaration17/27
            Boundary-space Declaration22/27
            Default Collation Declaration4/7
            Copy Namespaces Declaration6/27
            Base URI Declaration20/28
            Construction Declaration3/25
            Default Namespace Declaration11/35
            Ordering Mode Declaration17/25
            Empty Order Declaration10/32
            Namespace Declaration27/34
            Variable Declaration
                External Variable References without TypeDeclaration12/22
                External Variable References with TypeDeclatation2/24
                Internal Variable References without TypeDeclaration65/76
                Internal Variable References with TypeDeclatation32/44
            Function Declaration64/99
            Option Declaration Declaration4/8
        XQuery Comments33/40
        Extension Expression41/50
        Implicit Context
    Functions
        Accessor Functions
            fn:node-name23/27
            fn:nilled24/26
            fn:string47/48
            fn:data43/43
            fn:base-uri22/25
            fn:static-base-uri15/17
            fn:document-uri15/24
        The Error Function6/59
        The Trace Function24/27
        Constructor Functions
            fn:dateTime6/46
        Functions on Numeric Values
            fn:abs129/131
            fn:ceiling43/45
            fn:floor43/45
            fn:round41/48
            fn:round-half-to-even48/52
        Functions on Strings
            Functions to Assemble and Disassemble Strings
                fn:codepoints-to-string42/46
                fn:string-to-codepoints29/43
            Equality and Comparison of Strings
                fn:compare40/42
                fn:codepoint-equal19/21
            Functions on String Values
                fn:concat89/91
                fn:string-join30/33
                fn:substring7/36
                fn:string-length26/29
                fn:normalize-space19/35
                fn:normalize-unicode27/34
                fn:upper-case24/24
                fn:lower-case24/24
                fn:translate31/34
                surrogate values for various string functions.7/15
                fn:encode-for-uri6/29
                fn:iri-to-uri6/36
                fn:escape-html-uri27/33
            Functions Based on Substring Matching
                fn:contains28/32
                fn:starts-with27/32
                fn:ends-with23/31
                fn:substring-before27/31
                fn:substring-after20/32
            String Functions that Use Pattern Matching
                fn:matches27/52
                fn:replace46/52
                fn:tokenize9/39
        Functions for anyURI
            fn:resolve-uri22/29
        Functions on Boolean Values
            fn:true24/24
            fn:false24/24
            fn:not69/70
        Functions on Durations, Dates and Times
            Component Extraction Functions on Durations, Dates and Times
                fn:years-from-duration30/30
                fn:months-from-duration27/30
                fn:days-from-duration30/30
                fn:hours-from-duration29/30
                fn:minutes-from-duration30/31
                fn:seconds-from-duration24/31
                fn:year-from-dateTime27/27
                fn:month-from-dateTime27/27
                fn:day-from-dateTime27/27
                fn:hours-from-dateTime27/27
                fn:minutes-from-dateTime27/27
                fn:seconds-from-dateTime27/27
                fn:timezone-from-dateTime27/27
                fn:year-from-date27/27
                fn:month-from-date27/27
                fn:day-from-date27/27
                fn:timezone-from-date27/27
                fn:hours-from-time27/27
                fn:minutes-from-time27/27
                fn:seconds-from-time27/27
                fn:timezone-from-time27/27
            Timezone Adjustment on Dates and Time Values
                fn:adjust-dateTime-to-timezone31/42
                fn:adjust-date-to-timezone27/36
                fn:adjust-time-to-timezone33/39
        Functions Related to QNames
            Additional Constructor Functions for QNames
                fn:resolve-QName8/26
                fn:QName20/32
            fn:local-name-from-QName13/17
            fn:namespace-uri-from-QName16/19
            fn:namespace-uri-for-prefix9/23
            fn:in-scope-prefixes3/22
        Functions on Nodes
            fn:name13/26
            fn:local-name23/26
            fn:namespace-uri21/29
            fn:number55/60
            fn:lang16/29
            fn:root23/28
        Functions on Sequences
            General Functions and Operators on Sequences
                fn:boolean117/122
                fn:index-of17/47
                fn:empty48/48
                fn:exists53/53
                fn:distinct-values65/86
                fn:insert-before33/41
                fn:remove40/44
                fn:reverse58/60
                fn:subsequence19/67
                fn:unordered30/31
            Functions That Test the Cardinality of Sequences
                fn:zero-or-one43/48
                fn:one-or-more43/48
                fn:exactly-one44/50
            fn:deep-equal31/151
            Aggregate Functions
                fn:count57/57
                fn:avg149/215
                fn:max157/166
                fn:min158/166
                fn:sum36/198
            Functions that Generate Sequences
                fn:id8/26
                fn:idref9/26
                fn:doc-available1/2
                fn:doc2/15
                fn:collection3/13
        Context Functions
            fn:position58/65
            fn:last51/51
            fn:current-dateTime14/26
            fn:current-date14/23
            fn:current-time14/22
            fn:default-collation3/5
            fn:implicit-timezone21/26
Optional Features
    Schema Import Feature
        FLWOR Expressions that requires a schema import0/17
        Computed Element Constructors0/4
        Version Declaration0/2
        Misc Functions that depends entirely on schema validation.0/37
        Cast0/48
        op:numeric-equal0/2
        op:NOTATION-equal0/22
        Constructor Functions for User Defined Functions0/10
        Schema Import0/31
        FOR Clause with TypeDeclaration0/1
        fn:local-name-from-QName0/7
        fn:namespace-uri-from-QName0/7
    Schema Validation Feature
        Validate Expression0/25
    Static Typing Feature
        Static Typing of Path Expressions
            Static Typing of Steps Expressions
                Static Typing of Axes Steps0/21
        Static Typing of FLWOR expressions0/25
            Static Typing of 'where' clause
    Full Axis Feature
        ancestor Axis22/22
        ancestor-or-self Axis22/22
        following Axis21/21
        following-sibling Axis22/22
        preceding Axis21/21
        preceding-sibling Axis22/22
    Module Feature
        Module Import17/32
        Module Declaration
    Trivial XML Embedding Feature0/4
Tests for the appendices.
    Tests for Appendix A-4 of the Query Specs.9/9
    Various User defined functions from annex "E" of the F and O specs.8/8
Use Cases
    Use Case "XMP": Experiences and Exemplars8/12
    Use Case "TREE": Queries that preserve hierarchy4/6
    Use Case "SEQ" - Queries based on Sequence2/5
    Use Case "R" - Access to Relational Data4/18
    Use Case "SGML": Standard Generalized Markup Language9/11
    Use Case "STRING": String Search1/4
    Use Case "NS" - Queries Using Namespaces7/8
    Use Case "PARTS" - Recursive Parts Explosion0/1
Consistency in XQTS Catalog3/3