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. 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.

FeatureGalax
Minimal Conformance 14410 / 195 / 14618 
Optional Features
    Schema Import Feature 0 / 0 / 174 
    Schema Validation Feature 0 / 0 / 25 
    Static Typing Feature 46 / 0 / 46 
    Full Axis Feature 130 / 0 / 130 
    Module Feature 0 / 0 / 32 
    Trivial XML Embedding Feature 0 / 0 / 4 

Implementations:

Galax

Organization:Galax Team
http://www.galaxquery.org
Implementation:Galax
Version:0.6.9

Summarized Results:

FeatureGalax
Minimal Conformance
    Optional Feature Errors
        Single error code for extra features18/18
    XQuery Basics
        Static Context Evaluation1/1
        Query Types
            XQuery Sequence Type Syntax21/21
    XQuery Expressions
        Primary Expressions
            Literals119/119
            Parenthesized Expressions20/20
            Context Item Expressions
                External Context Item Expressions24/24
                Internal Context Item Expressions21/21
            Function Calls28/28
        Path Expressions
            General Path Expression Tests1/1
            Steps
                Axes186/186
                Node Tests
                    NodeTest24/24
                    NameTest37/37
            Predicates44/44
            Unabbreviated Syntax26/26
            Abbreviated Syntax21/21
        Sequence Expressions
            Constructing Sequences
                Comma Operator54/54
                Range Expression65/65
            Filter Expressions116/116
            Combining Node Sequences20/20
        Operators
            Arithmetic Operators
                Arithmetic Operators on Numeric Values
                    op:numeric-add137/137
                    op:numeric-subtract107/107
                    op:numeric-multiply79/79
                    op:numeric-divide105/105
                    op:numeric-integer-divide109/109
                    op:numeric-mod58/58
                    op:numeric-unary-plus51/51
                    op:numeric-unary-minus52/52
                Arithmetic Operators on Duration Values
                    op:add-yearMonthDurations24/24
                    op:subtract-yearMonthDurations30/30
                    op:multiply-yearMonthDuration37/37
                    op:divide-yearMonthDuration27/27
                    op:divide-yearMonthDuration-by-yearMonthDuration22/22
                    op:add-dayTimeDurations24/24
                    op:subtract-dayTimeDurations30/30
                    op:multiply-dayTimeDuration32/32
                    op:divide-dayTimeDuration36/36
                    op:divide-dayTimeDuration-by-dayTimeDuration22/22
                Arithmetic Operators on Duration and Date Time Values
                    op:subtract-dateTimes-yielding-dayTimeDuration26/26
                    op:subtract-dates-yielding-dayTimeDuration26/26
                    op:subtract-times29/29
                    op:add-yearMonthDuration-to-dateTime26/26
                    op:add-dayTimeDuration-to-dateTime24/24
                    op:subtract-yearMonthDuration-from-dateTime21/21
                    op:subtract-dayTimeDuration-from-dateTime20/20
                    op:add-yearMonthDuration-to-date24/24
                    op:add-dayTimeDuration-to-date22/22
                    op:subtract-yearMonthDuration-from-date23/23
                    op:subtract-dayTimeDuration-from-date21/21
                    op:add-dayTimeDuration-to-time24/24
                    op:subtract-dayTimeDuration-from-time26/26
            Comparison Operators
                Value Comparison
                    Comparison of Numeric Values
                        op:numeric-equal178/178
                        op:numeric-less-than152/152
                        op:numeric-greater-than88/88
                    Comparison Operators on Boolean Values
                        op:boolean-equal49/49
                        op:boolean-less-than39/39
                        op:boolean-greater-than39/39
                    Comparisons of Duration, Date Time Values
                        op:yearMonthDuration-less-than28/28
                        op:yearMonthDuration-greater-than28/28
                        op:dayTimeDuration-less-than28/28
                        op:dayTimeDuration-greater-than28/28
                        op:duration equal129/129
                        op:dateTime-equal52/52
                        op:dateTime-less-than28/28
                        op:dateTime-greater-than28/28
                        op:date-equal28/28
                        op:date-less-than30/30
                        op:date-greater-than30/30
                        op:time-equal40/40
                        op:time-less-than30/30
                        op:time-greater-than30/30
                        op:gYearMonth-equal32/32
                        op:gYear-equal32/32
                        op:gMonthDay-equal31/31
                        op:gMonth-equal31/31
                        op:gDay-equal31/31
                        op:yearMonthDuration-equal7/7
                        op:dayTimeDuration-equal8/8
                    Comparison Operators on QName Values
                        op:QName-equal36/36
                        fn:prefix-from-QName24/24
                    Comparison Operators on base64Binary and hexBinary Types
                        op:hexBinary-equal29/29
                        op:base64Binary-equal27/27
                    Comparison Operators on NOTATION Types
                        op:NOTATION-equal
                    Type Checking and Error Handling42/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:anyURI14/14
                General Comparisons
                    The "=" operator for general comparisons158/158
                    The "!=" operator for general comparisons140/140
                    The "< (less than)" operator for general comparisons118/118
                    The "<= (less than or equal)" operator for general comparisons107/107
                    The "> (greater than)" operator for general comparisons118/118
                    The ">= (greater than or equal)" operator for general comparisons109/109
                Node Comparisons
                    op:is-same-node28/28
                    op:node-before33/33
                    op:node-after33/33
            Operators on Sequences
                op:union23/23
                op:intersect23/23
                op:except23/23
        Logical Expressions364/364
        Constructors
            Direct Element Constructors224/230
                Attributes48/51
                Namespace Declaration Attributes29/29
                Content77/80
                White Space Element Content57/57
            Other Direct Constructors20/20
            Computed Constructors
                Computed Element Constructors51/51
                Computed Attribute Constructors33/33
                Document Node Constructors24/24
                Text Node Constructors20/20
                Computed Processing-instruction Constructors41/41
                Computed Comment Constructors21/21
            In-scope Namespaces of a Constructed Element20/20
        Tests of For-Let-Where-OrderBy-Return Expressions
            FOR Clause
                FOR Clause without TypeDeclaration87/87
                FOR Clause with TypeDeclaration33/55
                FOR Clause with a Positional Variable30/30
            LET Clause
                LET Clause without TypeDeclaration27/27
                LET Clause with TypeDeclaration24/24
            WHERE Clause40/40
            ORDER BY Clause
                ORDER BY Clause with OrderModifier94/106
                ORDER BY Clause without OrderModifier34/40
            RETURN Clause20/20
        Ordered and Unordered Expressions26/26
        Conditional Expressions32/32
        Quantified Expressions
            Quantified Expressions Without TypeDeclaration158/158
            Quantified Expressions With TypeDeclaration30/30
        Expressions on Sequence Types
            Instance Of176/176
            Typeswitch36/36
            Cast from Derived types21/21
            Cast from Derived types To Parents21/21
            Casting within a branch of the type hierarchy21/21
            Cast2207/2207
            Castable688/688
            Treat43/43
        Modules and Prologs
            Version Declaration27/27
            Boundary-space Declaration25/27
            Default Collation Declaration7/7
            Copy Namespaces Declaration6/27
            Base URI Declaration27/28
            Construction Declaration23/25
            Default Namespace Declaration31/35
            Ordering Mode Declaration23/25
            Empty Order Declaration30/32
            Namespace Declaration31/34
            Variable Declaration
                External Variable References without TypeDeclaration22/22
                External Variable References with TypeDeclatation24/24
                Internal Variable References without TypeDeclaration67/76
                Internal Variable References with TypeDeclatation35/44
            Function Declaration100/100
            Option Declaration Declaration2/8
        XQuery Comments35/40
        Extension Expression42/50
        Implicit Context
    Functions
        Accessor Functions
            fn:node-name27/27
            fn:nilled26/26
            fn:string48/48
            fn:data43/43
            fn:base-uri24/25
            fn:static-base-uri17/17
            fn:document-uri24/24
        The Error Function59/59
        The Trace Function27/27
        Constructor Functions
            fn:dateTime46/46
        Functions on Numeric Values
            fn:abs131/131
            fn:ceiling45/45
            fn:floor45/45
            fn:round48/48
            fn:round-half-to-even52/52
        Functions on Strings
            Functions to Assemble and Disassemble Strings
                fn:codepoints-to-string46/46
                fn:string-to-codepoints43/43
            Equality and Comparison of Strings
                fn:compare42/42
                fn:codepoint-equal21/21
            Functions on String Values
                fn:concat91/91
                fn:string-join33/33
                fn:substring36/36
                fn:string-length29/29
                fn:normalize-space35/35
                fn:normalize-unicode34/34
                fn:upper-case24/24
                fn:lower-case24/24
                fn:translate34/34
                surrogate values for various string functions.8/15
                fn:encode-for-uri29/29
                fn:iri-to-uri36/36
                fn:escape-html-uri33/33
            Functions Based on Substring Matching
                fn:contains32/32
                fn:starts-with32/32
                fn:ends-with31/31
                fn:substring-before31/31
                fn:substring-after32/32
            String Functions that Use Pattern Matching
                fn:matches44/52
                fn:replace52/52
                fn:tokenize39/39
        Functions for anyURI
            fn:resolve-uri29/29
        Functions on Boolean Values
            fn:true24/24
            fn:false24/24
            fn:not70/70
        Functions on Durations, Dates and Times
            Component Extraction Functions on Durations, Dates and Times
                fn:years-from-duration30/30
                fn:months-from-duration30/30
                fn:days-from-duration30/30
                fn:hours-from-duration30/30
                fn:minutes-from-duration31/31
                fn:seconds-from-duration31/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-timezone42/42
                fn:adjust-date-to-timezone36/36
                fn:adjust-time-to-timezone39/39
        Functions Related to QNames
            Additional Constructor Functions for QNames
                fn:resolve-QName26/26
                fn:QName32/32
            fn:local-name-from-QName24/24
            fn:namespace-uri-from-QName26/26
            fn:namespace-uri-for-prefix23/23
            fn:in-scope-prefixes4/22
        Functions on Nodes
            fn:name26/26
            fn:local-name26/26
            fn:namespace-uri29/29
            fn:number60/60
            fn:lang29/29
            fn:root28/28
        Functions on Sequences
            General Functions and Operators on Sequences
                fn:boolean122/122
                fn:index-of47/47
                fn:empty48/48
                fn:exists53/53
                fn:distinct-values86/86
                fn:insert-before41/41
                fn:remove44/44
                fn:reverse60/60
                fn:subsequence67/67
                fn:unordered31/31
            Functions That Test the Cardinality of Sequences
                fn:zero-or-one48/48
                fn:one-or-more48/48
                fn:exactly-one50/50
            fn:deep-equal151/151
            Aggregate Functions
                fn:count57/57
                fn:avg215/215
                fn:max172/172
                fn:min172/172
                fn:sum198/198
            Functions that Generate Sequences
                fn:id12/26
                fn:idref9/26
                fn:doc-available2/2
                fn:doc5/15
                fn:collection0/13
        Context Functions
            fn:position65/65
            fn:last51/51
            fn:current-dateTime26/26
            fn:current-date23/23
            fn:current-time22/22
            fn:default-collation5/5
            fn:implicit-timezone26/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
    Schema Validation Feature
        Validate Expression0/25
    Static Typing Feature
        Static Typing of Path Expressions
            Static Typing of Steps Expressions
                Static Typing of Axes Steps21/21
        Static Typing of FLWOR expressions25/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 Import0/32
        Module Declaration
    Trivial XML Embedding Feature0/4
Tests for the appendices.
    Tests for Appendix A-4 of the Query Specs.0/9
    Various User defined functions from annex "E" of the F and O specs.0/8
Use Cases
    Use Case "XMP": Experiences and Exemplars12/12
    Use Case "TREE": Queries that preserve hierarchy6/6
    Use Case "SEQ" - Queries based on Sequence5/5
    Use Case "R" - Access to Relational Data18/18
    Use Case "SGML": Standard Generalized Markup Language11/11
    Use Case "STRING": String Search4/4
    Use Case "NS" - Queries Using Namespaces8/8
    Use Case "PARTS" - Recursive Parts Explosion1/1
Consistency in XQTS Catalog3/3