text 在eXist-db中为xquery函数生成函数签名测试的脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text 在eXist-db中为xquery函数生成函数签名测试的脚本相关的知识,希望对你有一定的参考价值。

<testsuites>
    <testsuite package="http://exist-db.org/xquery/test/xqfunctions" timestamp="2018-02-04T01:01:22.387-05:00" failures="86" pending="0" tests="273" time="PT1.965S">
        <testcase name="array_append_2" class="xqfunctions:array_append_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;array:append#2&lt;/name&gt;&lt;arg&gt;array(*)&lt;/arg&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;return&gt;array(*)&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>array:append#2</name>
                    <arg>array(*)</arg>
                    <arg>item()*</arg>
                    <return>array(*)*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="array_filter_2" class="xqfunctions:array_filter_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;array:filter#2&lt;/name&gt;&lt;arg&gt;array(*)&lt;/arg&gt;&lt;arg&gt;function(item()*) as xs:boolean&lt;/arg&gt;&lt;return&gt;array(*)&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>array:filter#2</name>
                    <arg>array(*)</arg>
                    <arg>function(*)</arg>
                    <return>array(*)</return>
                </signature>
            </output>
        </testcase>
        <testcase name="array_flatten_1" class="xqfunctions:array_flatten_1"/>
        <testcase name="array_fold-left_3" class="xqfunctions:array_fold-left_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;array:fold-left#3&lt;/name&gt;&lt;arg&gt;array(*)&lt;/arg&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;arg&gt;function(item()*, item()*) as item()*&lt;/arg&gt;&lt;return&gt;item()*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>array:fold-left#3</name>
                    <arg>array(*)</arg>
                    <arg>item()*</arg>
                    <arg>function(*)</arg>
                    <return>item()*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="array_fold-right_3" class="xqfunctions:array_fold-right_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;array:fold-right#3&lt;/name&gt;&lt;arg&gt;array(*)&lt;/arg&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;arg&gt;function(item()*, item()*) as item()*&lt;/arg&gt;&lt;return&gt;item()*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>array:fold-right#3</name>
                    <arg>array(*)</arg>
                    <arg>item()*</arg>
                    <arg>function(*)</arg>
                    <return>item()*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="array_for-each-pair_3" class="xqfunctions:array_for-each-pair_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;array:for-each-pair#3&lt;/name&gt;&lt;arg&gt;array(*)&lt;/arg&gt;&lt;arg&gt;array(*)&lt;/arg&gt;&lt;arg&gt;function(item()*, item()*) as item()*&lt;/arg&gt;&lt;return&gt;array(*)&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>array:for-each-pair#3</name>
                    <arg>array(*)</arg>
                    <arg>array(*)</arg>
                    <arg>function(*)</arg>
                    <return>array(*)</return>
                </signature>
            </output>
        </testcase>
        <testcase name="array_for-each_2" class="xqfunctions:array_for-each_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;array:for-each#2&lt;/name&gt;&lt;arg&gt;array(*)&lt;/arg&gt;&lt;arg&gt;function(item()*) as item()*&lt;/arg&gt;&lt;return&gt;array(*)&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>array:for-each#2</name>
                    <arg>array(*)</arg>
                    <arg>function(*)</arg>
                    <return>array(*)</return>
                </signature>
            </output>
        </testcase>
        <testcase name="array_get_2" class="xqfunctions:array_get_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;array:get#2&lt;/name&gt;&lt;arg&gt;array(*)&lt;/arg&gt;&lt;arg&gt;xs:integer&lt;/arg&gt;&lt;return&gt;item()*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>array:get#2</name>
                    <arg>array(*)</arg>
                    <arg>xs:integer</arg>
                    <return>xs:integer*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="array_head_1" class="xqfunctions:array_head_1"/>
        <testcase name="array_insert-before_3" class="xqfunctions:array_insert-before_3"/>
        <testcase name="array_join_1" class="xqfunctions:array_join_1"/>
        <testcase name="array_put_3" class="xqfunctions:array_put_3">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function array:put()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions/array"/>
        </testcase>
        <testcase name="array_remove_2" class="xqfunctions:array_remove_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;array:remove#2&lt;/name&gt;&lt;arg&gt;array(*)&lt;/arg&gt;&lt;arg&gt;xs:integer*&lt;/arg&gt;&lt;return&gt;array(*)&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>array:remove#2</name>
                    <arg>array(*)</arg>
                    <arg>xs:integer</arg>
                    <return>array(*)</return>
                </signature>
            </output>
        </testcase>
        <testcase name="array_reverse_1" class="xqfunctions:array_reverse_1"/>
        <testcase name="array_size_1" class="xqfunctions:array_size_1"/>
        <testcase name="array_sort_1" class="xqfunctions:array_sort_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function array:sort()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions/array"/>
        </testcase>
        <testcase name="array_sort_2" class="xqfunctions:array_sort_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function array:sort()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions/array"/>
        </testcase>
        <testcase name="array_sort_3" class="xqfunctions:array_sort_3">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function array:sort()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions/array"/>
        </testcase>
        <testcase name="array_subarray_2" class="xqfunctions:array_subarray_2"/>
        <testcase name="array_subarray_3" class="xqfunctions:array_subarray_3"/>
        <testcase name="array_tail_1" class="xqfunctions:array_tail_1"/>
        <testcase name="fn_QName_2" class="xqfunctions:fn_QName_2"/>
        <testcase name="fn_abs_1" class="xqfunctions:fn_abs_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;abs#1&lt;/name&gt;&lt;arg&gt;xs:numeric?&lt;/arg&gt;&lt;return&gt;xs:numeric?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>abs#1</name>
                    <arg>numeric?</arg>
                    <return>numeric</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_adjust-date-to-timezone_1" class="xqfunctions:fn_adjust-date-to-timezone_1"/>
        <testcase name="fn_adjust-date-to-timezone_2" class="xqfunctions:fn_adjust-date-to-timezone_2"/>
        <testcase name="fn_adjust-dateTime-to-timezone_1" class="xqfunctions:fn_adjust-dateTime-to-timezone_1"/>
        <testcase name="fn_adjust-dateTime-to-timezone_2" class="xqfunctions:fn_adjust-dateTime-to-timezone_2"/>
        <testcase name="fn_adjust-time-to-timezone_1" class="xqfunctions:fn_adjust-time-to-timezone_1"/>
        <testcase name="fn_adjust-time-to-timezone_2" class="xqfunctions:fn_adjust-time-to-timezone_2"/>
        <testcase name="fn_analyze-string_2" class="xqfunctions:fn_analyze-string_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;analyze-string#2&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;element(fn:analyze-string-result)&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>analyze-string#2</name>
                    <arg>xs:string?</arg>
                    <arg>xs:string</arg>
                    <return>element()</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_analyze-string_3" class="xqfunctions:fn_analyze-string_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;analyze-string#3&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;element(fn:analyze-string-result)&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>analyze-string#3</name>
                    <arg>xs:string?</arg>
                    <arg>xs:string</arg>
                    <arg>xs:string</arg>
                    <return>element()</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_apply_2" class="xqfunctions:fn_apply_2"/>
        <testcase name="fn_available-environment-variables_0" class="xqfunctions:fn_available-environment-variables_0"/>
        <testcase name="fn_avg_1" class="xqfunctions:fn_avg_1"/>
        <testcase name="fn_base-uri_0" class="xqfunctions:fn_base-uri_0"/>
        <testcase name="fn_base-uri_1" class="xqfunctions:fn_base-uri_1"/>
        <testcase name="fn_boolean_1" class="xqfunctions:fn_boolean_1"/>
        <testcase name="fn_ceiling_1" class="xqfunctions:fn_ceiling_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;ceiling#1&lt;/name&gt;&lt;arg&gt;xs:numeric?&lt;/arg&gt;&lt;return&gt;xs:numeric?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>ceiling#1</name>
                    <arg>numeric?</arg>
                    <return>numeric</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_codepoint-equal_2" class="xqfunctions:fn_codepoint-equal_2"/>
        <testcase name="fn_codepoints-to-string_1" class="xqfunctions:fn_codepoints-to-string_1"/>
        <testcase name="fn_collation-key_1" class="xqfunctions:fn_collation-key_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:collation-key()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_collation-key_2" class="xqfunctions:fn_collation-key_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:collation-key()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_collection_0" class="xqfunctions:fn_collection_0">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;collection#0&lt;/name&gt;&lt;return&gt;item()*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>collection#0</name>
                    <return>node()*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_collection_1" class="xqfunctions:fn_collection_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;collection#1&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;return&gt;item()*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>collection#1</name>
                    <arg>xs:string*</arg>
                    <return>node()*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_compare_2" class="xqfunctions:fn_compare_2"/>
        <testcase name="fn_compare_3" class="xqfunctions:fn_compare_3"/>
        <testcase name="fn_concat_3" class="xqfunctions:fn_concat_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;concat#3&lt;/name&gt;&lt;arg&gt;xs:anyAtomicType?&lt;/arg&gt;&lt;arg&gt;xs:anyAtomicType?&lt;/arg&gt;&lt;arg&gt;xs:anyAtomicType?&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>concat#3</name>
                    <arg>xs:anyAtomicType?</arg>
                    <arg>xs:anyAtomicType?</arg>
                    <arg>xs:anyAtomicType?</arg>
                    <return>xs:string?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_contains-token_2" class="xqfunctions:fn_contains-token_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:contains-token()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_contains-token_3" class="xqfunctions:fn_contains-token_3">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:contains-token()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_contains_2" class="xqfunctions:fn_contains_2"/>
        <testcase name="fn_contains_3" class="xqfunctions:fn_contains_3"/>
        <testcase name="fn_count_1" class="xqfunctions:fn_count_1"/>
        <testcase name="fn_current-dateTime_0" class="xqfunctions:fn_current-dateTime_0">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;current-dateTime#0&lt;/name&gt;&lt;return&gt;xs:dateTimeStamp&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>current-dateTime#0</name>
                    <return>xs:dateTime</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_current-date_0" class="xqfunctions:fn_current-date_0"/>
        <testcase name="fn_current-time_0" class="xqfunctions:fn_current-time_0"/>
        <testcase name="fn_data_0" class="xqfunctions:fn_data_0"/>
        <testcase name="fn_data_1" class="xqfunctions:fn_data_1"/>
        <testcase name="fn_dateTime_2" class="xqfunctions:fn_dateTime_2"/>
        <testcase name="fn_day-from-dateTime_1" class="xqfunctions:fn_day-from-dateTime_1"/>
        <testcase name="fn_day-from-date_1" class="xqfunctions:fn_day-from-date_1"/>
        <testcase name="fn_days-from-duration_1" class="xqfunctions:fn_days-from-duration_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;days-from-duration#1&lt;/name&gt;&lt;arg&gt;xs:duration?&lt;/arg&gt;&lt;return&gt;xs:integer?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>days-from-duration#1</name>
                    <arg>xs:dayTimeDuration?</arg>
                    <return>xs:integer?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_deep-equal_2" class="xqfunctions:fn_deep-equal_2"/>
        <testcase name="fn_deep-equal_3" class="xqfunctions:fn_deep-equal_3"/>
        <testcase name="fn_default-collation_0" class="xqfunctions:fn_default-collation_0"/>
        <testcase name="fn_default-language_0" class="xqfunctions:fn_default-language_0">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:default-language()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_distinct-values_1" class="xqfunctions:fn_distinct-values_1"/>
        <testcase name="fn_distinct-values_2" class="xqfunctions:fn_distinct-values_2"/>
        <testcase name="fn_doc-available_1" class="xqfunctions:fn_doc-available_1"/>
        <testcase name="fn_doc_1" class="xqfunctions:fn_doc_1"/>
        <testcase name="fn_document-uri_0" class="xqfunctions:fn_document-uri_0">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Unexpectedly received 0 parameter(s) in call to function 'fn:document-uri()'. Defined function signatures are:&#xD;&#xA;document-uri($document-node as node()?) xs:anyURI?&#xD;&#xA;"/>
        </testcase>
        <testcase name="fn_document-uri_1" class="xqfunctions:fn_document-uri_1"/>
        <testcase name="fn_element-with-id_1" class="xqfunctions:fn_element-with-id_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:element-with-id()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_element-with-id_2" class="xqfunctions:fn_element-with-id_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:element-with-id()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_empty_1" class="xqfunctions:fn_empty_1"/>
        <testcase name="fn_encode-for-uri_1" class="xqfunctions:fn_encode-for-uri_1"/>
        <testcase name="fn_ends-with_2" class="xqfunctions:fn_ends-with_2"/>
        <testcase name="fn_ends-with_3" class="xqfunctions:fn_ends-with_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;ends-with#3&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:boolean&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>ends-with#3</name>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <arg>xs:string</arg>
                    <return>xs:boolean?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_environment-variable_1" class="xqfunctions:fn_environment-variable_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;environment-variable#1&lt;/name&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:string?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>environment-variable#1</name>
                    <arg>xs:string</arg>
                    <return>xs:stringempty-sequence()</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_error_0" class="xqfunctions:fn_error_0">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;error#0&lt;/name&gt;&lt;return&gt;none&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>error#0</name>
                    <return>empty-sequence()empty-sequence()</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_error_1" class="xqfunctions:fn_error_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;error#1&lt;/name&gt;&lt;arg&gt;xs:QName?&lt;/arg&gt;&lt;return&gt;none&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>error#1</name>
                    <arg>xs:QName</arg>
                    <return>empty-sequence()empty-sequence()</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_error_2" class="xqfunctions:fn_error_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;error#2&lt;/name&gt;&lt;arg&gt;xs:QName?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;none&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>error#2</name>
                    <arg>xs:QName?</arg>
                    <arg>xs:string</arg>
                    <return>empty-sequence()empty-sequence()</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_error_3" class="xqfunctions:fn_error_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;error#3&lt;/name&gt;&lt;arg&gt;xs:QName?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;return&gt;none&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>error#3</name>
                    <arg>xs:QName?</arg>
                    <arg>xs:string</arg>
                    <arg>item()*</arg>
                    <return>empty-sequence()empty-sequence()</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_escape-html-uri_1" class="xqfunctions:fn_escape-html-uri_1"/>
        <testcase name="fn_exactly-one_1" class="xqfunctions:fn_exactly-one_1"/>
        <testcase name="fn_exists_1" class="xqfunctions:fn_exists_1"/>
        <testcase name="fn_false_0" class="xqfunctions:fn_false_0"/>
        <testcase name="fn_filter_2" class="xqfunctions:fn_filter_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;filter#2&lt;/name&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;arg&gt;function(item()) as xs:boolean&lt;/arg&gt;&lt;return&gt;item()*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>filter#2</name>
                    <arg>item()*</arg>
                    <arg>function(*)</arg>
                    <return>item()*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_floor_1" class="xqfunctions:fn_floor_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;floor#1&lt;/name&gt;&lt;arg&gt;xs:numeric?&lt;/arg&gt;&lt;return&gt;xs:numeric?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>floor#1</name>
                    <arg>numeric*</arg>
                    <return>numeric</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_fold-left_3" class="xqfunctions:fn_fold-left_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;fold-left#3&lt;/name&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;arg&gt;function(item()*, item()) as item()*&lt;/arg&gt;&lt;return&gt;item()*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>fold-left#3</name>
                    <arg>item()*</arg>
                    <arg>item()*</arg>
                    <arg>function(*)</arg>
                    <return>item()*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_fold-right_3" class="xqfunctions:fn_fold-right_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;fold-right#3&lt;/name&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;arg&gt;function(item(), item()*) as item()*&lt;/arg&gt;&lt;return&gt;item()*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>fold-right#3</name>
                    <arg>item()*</arg>
                    <arg>item()*</arg>
                    <arg>function(*)</arg>
                    <return>item()*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_for-each-pair_3" class="xqfunctions:fn_for-each-pair_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;for-each-pair#3&lt;/name&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;arg&gt;function(item(), item()) as item()*&lt;/arg&gt;&lt;return&gt;item()*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>for-each-pair#3</name>
                    <arg>item()*</arg>
                    <arg>item()*</arg>
                    <arg>function(*)</arg>
                    <return>item()*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_for-each_2" class="xqfunctions:fn_for-each_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;for-each#2&lt;/name&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;arg&gt;function(item()) as item()*&lt;/arg&gt;&lt;return&gt;item()*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>for-each#2</name>
                    <arg>item()*</arg>
                    <arg>function(*)</arg>
                    <return>item()*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_format-dateTime_2" class="xqfunctions:fn_format-dateTime_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;format-dateTime#2&lt;/name&gt;&lt;arg&gt;xs:dateTime?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:string?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>format-dateTime#2</name>
                    <arg>xs:dateTime?</arg>
                    <arg>xs:string</arg>
                    <return>xs:string</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_format-dateTime_5" class="xqfunctions:fn_format-dateTime_5">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;format-dateTime#5&lt;/name&gt;&lt;arg&gt;xs:dateTime?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;return&gt;xs:string?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>format-dateTime#5</name>
                    <arg>xs:dateTime?</arg>
                    <arg>xs:string</arg>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <return>xs:string</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_format-date_2" class="xqfunctions:fn_format-date_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;format-date#2&lt;/name&gt;&lt;arg&gt;xs:date?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:string?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>format-date#2</name>
                    <arg>xs:date?</arg>
                    <arg>xs:string</arg>
                    <return>xs:string</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_format-date_5" class="xqfunctions:fn_format-date_5">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;format-date#5&lt;/name&gt;&lt;arg&gt;xs:date?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;return&gt;xs:string?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>format-date#5</name>
                    <arg>xs:date?</arg>
                    <arg>xs:string</arg>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <return>xs:string</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_format-integer_2" class="xqfunctions:fn_format-integer_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:format-integer()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_format-integer_3" class="xqfunctions:fn_format-integer_3">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:format-integer()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_format-number_2" class="xqfunctions:fn_format-number_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;format-number#2&lt;/name&gt;&lt;arg&gt;xs:numeric?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>format-number#2</name>
                    <arg>numeric?</arg>
                    <arg>xs:string</arg>
                    <return>xs:string</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_format-number_3" class="xqfunctions:fn_format-number_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;format-number#3&lt;/name&gt;&lt;arg&gt;xs:numeric?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>format-number#3</name>
                    <arg>numeric?</arg>
                    <arg>xs:string</arg>
                    <arg>xs:string</arg>
                    <return>xs:string</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_format-time_2" class="xqfunctions:fn_format-time_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;format-time#2&lt;/name&gt;&lt;arg&gt;xs:time?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:string?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>format-time#2</name>
                    <arg>xs:time?</arg>
                    <arg>xs:string</arg>
                    <return>xs:string</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_format-time_5" class="xqfunctions:fn_format-time_5">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;format-time#5&lt;/name&gt;&lt;arg&gt;xs:time?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;return&gt;xs:string?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>format-time#5</name>
                    <arg>xs:time?</arg>
                    <arg>xs:string</arg>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <return>xs:string</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_function-arity_1" class="xqfunctions:fn_function-arity_1"/>
        <testcase name="fn_function-lookup_2" class="xqfunctions:fn_function-lookup_2"/>
        <testcase name="fn_function-name_1" class="xqfunctions:fn_function-name_1"/>
        <testcase name="fn_generate-id_0" class="xqfunctions:fn_generate-id_0"/>
        <testcase name="fn_generate-id_1" class="xqfunctions:fn_generate-id_1"/>
        <testcase name="fn_has-children_0" class="xqfunctions:fn_has-children_0"/>
        <testcase name="fn_has-children_1" class="xqfunctions:fn_has-children_1"/>
        <testcase name="fn_head_1" class="xqfunctions:fn_head_1"/>
        <testcase name="fn_hours-from-dateTime_1" class="xqfunctions:fn_hours-from-dateTime_1"/>
        <testcase name="fn_hours-from-duration_1" class="xqfunctions:fn_hours-from-duration_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;hours-from-duration#1&lt;/name&gt;&lt;arg&gt;xs:duration?&lt;/arg&gt;&lt;return&gt;xs:integer?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>hours-from-duration#1</name>
                    <arg>xs:dayTimeDuration?</arg>
                    <return>xs:integer?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_hours-from-time_1" class="xqfunctions:fn_hours-from-time_1"/>
        <testcase name="fn_id_1" class="xqfunctions:fn_id_1"/>
        <testcase name="fn_id_2" class="xqfunctions:fn_id_2"/>
        <testcase name="fn_idref_1" class="xqfunctions:fn_idref_1"/>
        <testcase name="fn_idref_2" class="xqfunctions:fn_idref_2"/>
        <testcase name="fn_implicit-timezone_0" class="xqfunctions:fn_implicit-timezone_0"/>
        <testcase name="fn_in-scope-prefixes_1" class="xqfunctions:fn_in-scope-prefixes_1"/>
        <testcase name="fn_index-of_2" class="xqfunctions:fn_index-of_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;index-of#2&lt;/name&gt;&lt;arg&gt;xs:anyAtomicType*&lt;/arg&gt;&lt;arg&gt;xs:anyAtomicType&lt;/arg&gt;&lt;return&gt;xs:integer*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>index-of#2</name>
                    <arg>xs:anyAtomicType*</arg>
                    <arg>xs:anyAtomicType</arg>
                    <return>xs:integer?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_index-of_3" class="xqfunctions:fn_index-of_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;index-of#3&lt;/name&gt;&lt;arg&gt;xs:anyAtomicType*&lt;/arg&gt;&lt;arg&gt;xs:anyAtomicType&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:integer*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>index-of#3</name>
                    <arg>xs:anyAtomicType*</arg>
                    <arg>xs:anyAtomicType</arg>
                    <arg>xs:string</arg>
                    <return>xs:integer?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_innermost_1" class="xqfunctions:fn_innermost_1"/>
        <testcase name="fn_insert-before_3" class="xqfunctions:fn_insert-before_3"/>
        <testcase name="fn_iri-to-uri_1" class="xqfunctions:fn_iri-to-uri_1"/>
        <testcase name="fn_json-doc_1" class="xqfunctions:fn_json-doc_1"/>
        <testcase name="fn_json-doc_2" class="xqfunctions:fn_json-doc_2"/>
        <testcase name="fn_json-to-xml_1" class="xqfunctions:fn_json-to-xml_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:json-to-xml()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_json-to-xml_2" class="xqfunctions:fn_json-to-xml_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:json-to-xml()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_lang_1" class="xqfunctions:fn_lang_1"/>
        <testcase name="fn_lang_2" class="xqfunctions:fn_lang_2"/>
        <testcase name="fn_last_0" class="xqfunctions:fn_last_0">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;last#0&lt;/name&gt;&lt;return&gt;xs:integer&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>last#0</name>
                    <return>xs:integer?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_load-xquery-module_1" class="xqfunctions:fn_load-xquery-module_1"/>
        <testcase name="fn_load-xquery-module_2" class="xqfunctions:fn_load-xquery-module_2"/>
        <testcase name="fn_local-name-from-QName_1" class="xqfunctions:fn_local-name-from-QName_1"/>
        <testcase name="fn_local-name_0" class="xqfunctions:fn_local-name_0"/>
        <testcase name="fn_local-name_1" class="xqfunctions:fn_local-name_1"/>
        <testcase name="fn_lower-case_1" class="xqfunctions:fn_lower-case_1"/>
        <testcase name="fn_matches_2" class="xqfunctions:fn_matches_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;matches#2&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:boolean&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>matches#2</name>
                    <arg>xs:string*</arg>
                    <arg>xs:string</arg>
                    <return>xs:boolean</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_matches_3" class="xqfunctions:fn_matches_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;matches#3&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:boolean&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>matches#3</name>
                    <arg>xs:string*</arg>
                    <arg>xs:string</arg>
                    <arg>xs:string</arg>
                    <return>xs:boolean</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_max_1" class="xqfunctions:fn_max_1"/>
        <testcase name="fn_max_2" class="xqfunctions:fn_max_2"/>
        <testcase name="fn_min_1" class="xqfunctions:fn_min_1"/>
        <testcase name="fn_min_2" class="xqfunctions:fn_min_2"/>
        <testcase name="fn_minutes-from-dateTime_1" class="xqfunctions:fn_minutes-from-dateTime_1"/>
        <testcase name="fn_minutes-from-duration_1" class="xqfunctions:fn_minutes-from-duration_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;minutes-from-duration#1&lt;/name&gt;&lt;arg&gt;xs:duration?&lt;/arg&gt;&lt;return&gt;xs:integer?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>minutes-from-duration#1</name>
                    <arg>xs:dayTimeDuration?</arg>
                    <return>xs:integer?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_minutes-from-time_1" class="xqfunctions:fn_minutes-from-time_1"/>
        <testcase name="fn_month-from-dateTime_1" class="xqfunctions:fn_month-from-dateTime_1"/>
        <testcase name="fn_month-from-date_1" class="xqfunctions:fn_month-from-date_1"/>
        <testcase name="fn_months-from-duration_1" class="xqfunctions:fn_months-from-duration_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;months-from-duration#1&lt;/name&gt;&lt;arg&gt;xs:duration?&lt;/arg&gt;&lt;return&gt;xs:integer?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>months-from-duration#1</name>
                    <arg>xs:yearMonthDuration?</arg>
                    <return>xs:integer?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_name_0" class="xqfunctions:fn_name_0">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;name#0&lt;/name&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>name#0</name>
                    <return>xs:string?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_name_1" class="xqfunctions:fn_name_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;name#1&lt;/name&gt;&lt;arg&gt;node()?&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>name#1</name>
                    <arg>node()?</arg>
                    <return>xs:string?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_namespace-uri-for-prefix_2" class="xqfunctions:fn_namespace-uri-for-prefix_2"/>
        <testcase name="fn_namespace-uri-from-QName_1" class="xqfunctions:fn_namespace-uri-from-QName_1"/>
        <testcase name="fn_namespace-uri_0" class="xqfunctions:fn_namespace-uri_0"/>
        <testcase name="fn_namespace-uri_1" class="xqfunctions:fn_namespace-uri_1"/>
        <testcase name="fn_nilled_0" class="xqfunctions:fn_nilled_0">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Unexpectedly received 0 parameter(s) in call to function 'fn:nilled()'. Defined function signatures are:&#xD;&#xA;nilled($arg as node()?) xs:boolean?&#xD;&#xA;"/>
        </testcase>
        <testcase name="fn_nilled_1" class="xqfunctions:fn_nilled_1"/>
        <testcase name="fn_node-name_0" class="xqfunctions:fn_node-name_0"/>
        <testcase name="fn_node-name_1" class="xqfunctions:fn_node-name_1"/>
        <testcase name="fn_normalize-space_0" class="xqfunctions:fn_normalize-space_0"/>
        <testcase name="fn_normalize-space_1" class="xqfunctions:fn_normalize-space_1"/>
        <testcase name="fn_normalize-unicode_1" class="xqfunctions:fn_normalize-unicode_1"/>
        <testcase name="fn_normalize-unicode_2" class="xqfunctions:fn_normalize-unicode_2"/>
        <testcase name="fn_not_1" class="xqfunctions:fn_not_1"/>
        <testcase name="fn_number_0" class="xqfunctions:fn_number_0"/>
        <testcase name="fn_number_1" class="xqfunctions:fn_number_1"/>
        <testcase name="fn_one-or-more_1" class="xqfunctions:fn_one-or-more_1"/>
        <testcase name="fn_outermost_1" class="xqfunctions:fn_outermost_1"/>
        <testcase name="fn_parse-ietf-date_1" class="xqfunctions:fn_parse-ietf-date_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:parse-ietf-date()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_parse-json_1" class="xqfunctions:fn_parse-json_1"/>
        <testcase name="fn_parse-json_2" class="xqfunctions:fn_parse-json_2"/>
        <testcase name="fn_parse-xml-fragment_1" class="xqfunctions:fn_parse-xml-fragment_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;parse-xml-fragment#1&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;return&gt;document-node()?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>parse-xml-fragment#1</name>
                    <arg>xs:string?</arg>
                    <return>element()*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_parse-xml_1" class="xqfunctions:fn_parse-xml_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;parse-xml#1&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;return&gt;document-node(element(*))?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>parse-xml#1</name>
                    <arg>xs:string?</arg>
                    <return>document-node()?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_path_0" class="xqfunctions:fn_path_0">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:path()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_path_1" class="xqfunctions:fn_path_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:path()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_position_0" class="xqfunctions:fn_position_0">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;position#0&lt;/name&gt;&lt;return&gt;xs:integer&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>position#0</name>
                    <return>xs:integer?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_prefix-from-QName_1" class="xqfunctions:fn_prefix-from-QName_1"/>
        <testcase name="fn_random-number-generator_0" class="xqfunctions:fn_random-number-generator_0">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:random-number-generator()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_random-number-generator_1" class="xqfunctions:fn_random-number-generator_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:random-number-generator()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_remove_2" class="xqfunctions:fn_remove_2"/>
        <testcase name="fn_replace_3" class="xqfunctions:fn_replace_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;replace#3&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>replace#3</name>
                    <arg>xs:string?</arg>
                    <arg>xs:string</arg>
                    <arg>xs:string</arg>
                    <return>xs:string?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_replace_4" class="xqfunctions:fn_replace_4">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;replace#4&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>replace#4</name>
                    <arg>xs:string?</arg>
                    <arg>xs:string</arg>
                    <arg>xs:string</arg>
                    <arg>xs:string</arg>
                    <return>xs:string?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_resolve-QName_2" class="xqfunctions:fn_resolve-QName_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;resolve-QName#2&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;element()&lt;/arg&gt;&lt;return&gt;xs:QName?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>resolve-QName#2</name>
                    <arg>xs:string?</arg>
                    <arg>element()</arg>
                    <return>xs:QName</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_resolve-uri_1" class="xqfunctions:fn_resolve-uri_1"/>
        <testcase name="fn_resolve-uri_2" class="xqfunctions:fn_resolve-uri_2"/>
        <testcase name="fn_reverse_1" class="xqfunctions:fn_reverse_1"/>
        <testcase name="fn_root_0" class="xqfunctions:fn_root_0"/>
        <testcase name="fn_root_1" class="xqfunctions:fn_root_1"/>
        <testcase name="fn_round-half-to-even_1" class="xqfunctions:fn_round-half-to-even_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;round-half-to-even#1&lt;/name&gt;&lt;arg&gt;xs:numeric?&lt;/arg&gt;&lt;return&gt;xs:numeric?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>round-half-to-even#1</name>
                    <arg>numeric?</arg>
                    <return>numeric</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_round-half-to-even_2" class="xqfunctions:fn_round-half-to-even_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;round-half-to-even#2&lt;/name&gt;&lt;arg&gt;xs:numeric?&lt;/arg&gt;&lt;arg&gt;xs:integer&lt;/arg&gt;&lt;return&gt;xs:numeric?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>round-half-to-even#2</name>
                    <arg>numeric?</arg>
                    <arg>numeric?</arg>
                    <return>numeric</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_round_1" class="xqfunctions:fn_round_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;round#1&lt;/name&gt;&lt;arg&gt;xs:numeric?&lt;/arg&gt;&lt;return&gt;xs:numeric?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>round#1</name>
                    <arg>numeric?</arg>
                    <return>numeric</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_round_2" class="xqfunctions:fn_round_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Unexpectedly received 2 parameter(s) in call to function 'fn:round()'. Defined function signatures are:&#xD;&#xA;round($arg as numeric?) numeric&#xD;&#xA;"/>
        </testcase>
        <testcase name="fn_seconds-from-dateTime_1" class="xqfunctions:fn_seconds-from-dateTime_1"/>
        <testcase name="fn_seconds-from-duration_1" class="xqfunctions:fn_seconds-from-duration_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;seconds-from-duration#1&lt;/name&gt;&lt;arg&gt;xs:duration?&lt;/arg&gt;&lt;return&gt;xs:decimal?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>seconds-from-duration#1</name>
                    <arg>xs:dayTimeDuration?</arg>
                    <return>xs:decimal?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_seconds-from-time_1" class="xqfunctions:fn_seconds-from-time_1"/>
        <testcase name="fn_serialize_1" class="xqfunctions:fn_serialize_1"/>
        <testcase name="fn_serialize_2" class="xqfunctions:fn_serialize_2"/>
        <testcase name="fn_sort_1" class="xqfunctions:fn_sort_1"/>
        <testcase name="fn_sort_2" class="xqfunctions:fn_sort_2"/>
        <testcase name="fn_sort_3" class="xqfunctions:fn_sort_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;sort#3&lt;/name&gt;&lt;arg&gt;item()*&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;function(item()) as xs:anyAtomicType*&lt;/arg&gt;&lt;return&gt;item()*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>sort#3</name>
                    <arg>item()*</arg>
                    <arg>xs:string?</arg>
                    <arg>function(*)</arg>
                    <return>item()*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_starts-with_2" class="xqfunctions:fn_starts-with_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;starts-with#2&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;return&gt;xs:boolean&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>starts-with#2</name>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <return>xs:boolean?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_starts-with_3" class="xqfunctions:fn_starts-with_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;starts-with#3&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:boolean&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>starts-with#3</name>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <arg>xs:string</arg>
                    <return>xs:boolean?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_static-base-uri_0" class="xqfunctions:fn_static-base-uri_0"/>
        <testcase name="fn_string-join_1" class="xqfunctions:fn_string-join_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;string-join#1&lt;/name&gt;&lt;arg&gt;xs:anyAtomicType*&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>string-join#1</name>
                    <arg>xs:string*</arg>
                    <return>xs:string</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_string-join_2" class="xqfunctions:fn_string-join_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;string-join#2&lt;/name&gt;&lt;arg&gt;xs:anyAtomicType*&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>string-join#2</name>
                    <arg>xs:string*</arg>
                    <arg>xs:string</arg>
                    <return>xs:string</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_string-length_0" class="xqfunctions:fn_string-length_0">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;string-length#0&lt;/name&gt;&lt;return&gt;xs:integer&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>string-length#0</name>
                    <return>xs:integer?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_string-length_1" class="xqfunctions:fn_string-length_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;string-length#1&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;return&gt;xs:integer&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>string-length#1</name>
                    <arg>xs:string?</arg>
                    <return>xs:integer?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_string-to-codepoints_1" class="xqfunctions:fn_string-to-codepoints_1"/>
        <testcase name="fn_string_0" class="xqfunctions:fn_string_0"/>
        <testcase name="fn_string_1" class="xqfunctions:fn_string_1"/>
        <testcase name="fn_subsequence_2" class="xqfunctions:fn_subsequence_2"/>
        <testcase name="fn_subsequence_3" class="xqfunctions:fn_subsequence_3"/>
        <testcase name="fn_substring-after_2" class="xqfunctions:fn_substring-after_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;substring-after#2&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>substring-after#2</name>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <return>xs:string?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_substring-after_3" class="xqfunctions:fn_substring-after_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;substring-after#3&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>substring-after#3</name>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <arg>xs:string</arg>
                    <return>xs:string?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_substring-before_2" class="xqfunctions:fn_substring-before_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;substring-before#2&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>substring-before#2</name>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <return>xs:string?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_substring-before_3" class="xqfunctions:fn_substring-before_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;substring-before#3&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:string&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>substring-before#3</name>
                    <arg>xs:string?</arg>
                    <arg>xs:string?</arg>
                    <arg>xs:string</arg>
                    <return>xs:string?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_substring_2" class="xqfunctions:fn_substring_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;substring#2&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:double&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>substring#2</name>
                    <arg>xs:string?</arg>
                    <arg>xs:double</arg>
                    <return>xs:string?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_substring_3" class="xqfunctions:fn_substring_3">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;substring#3&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;xs:double&lt;/arg&gt;&lt;arg&gt;xs:double&lt;/arg&gt;&lt;return&gt;xs:string&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>substring#3</name>
                    <arg>xs:string?</arg>
                    <arg>xs:double</arg>
                    <arg>xs:double</arg>
                    <return>xs:string?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_sum_1" class="xqfunctions:fn_sum_1"/>
        <testcase name="fn_sum_2" class="xqfunctions:fn_sum_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;sum#2&lt;/name&gt;&lt;arg&gt;xs:anyAtomicType*&lt;/arg&gt;&lt;arg&gt;xs:anyAtomicType?&lt;/arg&gt;&lt;return&gt;xs:anyAtomicType?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>sum#2</name>
                    <arg>xs:anyAtomicType*</arg>
                    <arg>xs:anyAtomicType?</arg>
                    <return>xs:anyAtomicType</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_tail_1" class="xqfunctions:fn_tail_1"/>
        <testcase name="fn_timezone-from-dateTime_1" class="xqfunctions:fn_timezone-from-dateTime_1"/>
        <testcase name="fn_timezone-from-date_1" class="xqfunctions:fn_timezone-from-date_1"/>
        <testcase name="fn_timezone-from-time_1" class="xqfunctions:fn_timezone-from-time_1"/>
        <testcase name="fn_tokenize_1" class="xqfunctions:fn_tokenize_1"/>
        <testcase name="fn_tokenize_2" class="xqfunctions:fn_tokenize_2"/>
        <testcase name="fn_tokenize_3" class="xqfunctions:fn_tokenize_3"/>
        <testcase name="fn_trace_1" class="xqfunctions:fn_trace_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Unexpectedly received 1 parameter(s) in call to function 'fn:trace()'. Defined function signatures are:&#xD;&#xA;trace($value as item()*, $label as xs:string) item()*&#xD;&#xA;"/>
        </testcase>
        <testcase name="fn_trace_2" class="xqfunctions:fn_trace_2"/>
        <testcase name="fn_transform_1" class="xqfunctions:fn_transform_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:transform()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_translate_3" class="xqfunctions:fn_translate_3"/>
        <testcase name="fn_true_0" class="xqfunctions:fn_true_0"/>
        <testcase name="fn_unordered_1" class="xqfunctions:fn_unordered_1"/>
        <testcase name="fn_unparsed-text-available_1" class="xqfunctions:fn_unparsed-text-available_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:unparsed-text-available()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_unparsed-text-available_2" class="xqfunctions:fn_unparsed-text-available_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:unparsed-text-available()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_unparsed-text-lines_1" class="xqfunctions:fn_unparsed-text-lines_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:unparsed-text-lines()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_unparsed-text-lines_2" class="xqfunctions:fn_unparsed-text-lines_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:unparsed-text-lines()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_unparsed-text_1" class="xqfunctions:fn_unparsed-text_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:unparsed-text()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_unparsed-text_2" class="xqfunctions:fn_unparsed-text_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:unparsed-text()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_upper-case_1" class="xqfunctions:fn_upper-case_1"/>
        <testcase name="fn_uri-collection_0" class="xqfunctions:fn_uri-collection_0">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:uri-collection()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_uri-collection_1" class="xqfunctions:fn_uri-collection_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:uri-collection()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_xml-to-json_1" class="xqfunctions:fn_xml-to-json_1">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:xml-to-json()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_xml-to-json_2" class="xqfunctions:fn_xml-to-json_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function fn:xml-to-json()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions"/>
        </testcase>
        <testcase name="fn_year-from-dateTime_1" class="xqfunctions:fn_year-from-dateTime_1"/>
        <testcase name="fn_year-from-date_1" class="xqfunctions:fn_year-from-date_1"/>
        <testcase name="fn_years-from-duration_1" class="xqfunctions:fn_years-from-duration_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;years-from-duration#1&lt;/name&gt;&lt;arg&gt;xs:duration?&lt;/arg&gt;&lt;return&gt;xs:integer?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>years-from-duration#1</name>
                    <arg>xs:yearMonthDuration?</arg>
                    <return>xs:integer?</return>
                </signature>
            </output>
        </testcase>
        <testcase name="fn_zero-or-one_1" class="xqfunctions:fn_zero-or-one_1"/>
        <testcase name="map_contains_2" class="xqfunctions:map_contains_2"/>
        <testcase name="map_entry_2" class="xqfunctions:map_entry_2"/>
        <testcase name="map_find_2" class="xqfunctions:map_find_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Function map:find()  is not defined in module namespace: http://www.w3.org/2005/xpath-functions/map"/>
        </testcase>
        <testcase name="map_for-each_2" class="xqfunctions:map_for-each_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;map:for-each#2&lt;/name&gt;&lt;arg&gt;map(*)&lt;/arg&gt;&lt;arg&gt;function(xs:anyAtomicType, item()*) as item()*&lt;/arg&gt;&lt;return&gt;item()*&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>map:for-each#2</name>
                    <arg>map(*)</arg>
                    <arg>function(*)</arg>
                    <return>item()*</return>
                </signature>
            </output>
        </testcase>
        <testcase name="map_get_2" class="xqfunctions:map_get_2"/>
        <testcase name="map_keys_1" class="xqfunctions:map_keys_1"/>
        <testcase name="map_merge_1" class="xqfunctions:map_merge_1"/>
        <testcase name="map_merge_2" class="xqfunctions:map_merge_2">
            <error type="err:XPST0017" message="It is a static error if the expanded QName and number of arguments in a function call do not match the name and arity of a function signature in the static context. Unexpectedly received 2 parameter(s) in call to function 'map:merge()'. Defined function signatures are:&#xD;&#xA;map:merge($maps as map(*)*) map(*)&#xD;&#xA;"/>
        </testcase>
        <testcase name="map_put_3" class="xqfunctions:map_put_3"/>
        <testcase name="map_remove_2" class="xqfunctions:map_remove_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;map:remove#2&lt;/name&gt;&lt;arg&gt;map(*)&lt;/arg&gt;&lt;arg&gt;xs:anyAtomicType*&lt;/arg&gt;&lt;return&gt;map(*)&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>map:remove#2</name>
                    <arg>map(*)</arg>
                    <arg>xs:string</arg>
                    <return>map(*)</return>
                </signature>
            </output>
        </testcase>
        <testcase name="map_size_1" class="xqfunctions:map_size_1"/>
        <testcase name="math_acos_1" class="xqfunctions:math_acos_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;math:acos#1&lt;/name&gt;&lt;arg&gt;xs:double?&lt;/arg&gt;&lt;return&gt;xs:double?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>math:acos#1</name>
                    <arg>xs:double</arg>
                    <return>xs:double</return>
                </signature>
            </output>
        </testcase>
        <testcase name="math_asin_1" class="xqfunctions:math_asin_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;math:asin#1&lt;/name&gt;&lt;arg&gt;xs:double?&lt;/arg&gt;&lt;return&gt;xs:double?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>math:asin#1</name>
                    <arg>xs:double</arg>
                    <return>xs:double</return>
                </signature>
            </output>
        </testcase>
        <testcase name="math_atan2_2" class="xqfunctions:math_atan2_2"/>
        <testcase name="math_atan_1" class="xqfunctions:math_atan_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;math:atan#1&lt;/name&gt;&lt;arg&gt;xs:double?&lt;/arg&gt;&lt;return&gt;xs:double?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>math:atan#1</name>
                    <arg>xs:double</arg>
                    <return>xs:double</return>
                </signature>
            </output>
        </testcase>
        <testcase name="math_cos_1" class="xqfunctions:math_cos_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;math:cos#1&lt;/name&gt;&lt;arg&gt;xs:double?&lt;/arg&gt;&lt;return&gt;xs:double?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>math:cos#1</name>
                    <arg>xs:double</arg>
                    <return>xs:double</return>
                </signature>
            </output>
        </testcase>
        <testcase name="math_exp10_1" class="xqfunctions:math_exp10_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;math:exp10#1&lt;/name&gt;&lt;arg&gt;xs:double?&lt;/arg&gt;&lt;return&gt;xs:double?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>math:exp10#1</name>
                    <arg>xs:double</arg>
                    <return>xs:double</return>
                </signature>
            </output>
        </testcase>
        <testcase name="math_exp_1" class="xqfunctions:math_exp_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;math:exp#1&lt;/name&gt;&lt;arg&gt;xs:double?&lt;/arg&gt;&lt;return&gt;xs:double?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>math:exp#1</name>
                    <arg>xs:double</arg>
                    <return>xs:double</return>
                </signature>
            </output>
        </testcase>
        <testcase name="math_log10_1" class="xqfunctions:math_log10_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;math:log10#1&lt;/name&gt;&lt;arg&gt;xs:double?&lt;/arg&gt;&lt;return&gt;xs:double?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>math:log10#1</name>
                    <arg>xs:double</arg>
                    <return>xs:double</return>
                </signature>
            </output>
        </testcase>
        <testcase name="math_log_1" class="xqfunctions:math_log_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;math:log#1&lt;/name&gt;&lt;arg&gt;xs:double?&lt;/arg&gt;&lt;return&gt;xs:double?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>math:log#1</name>
                    <arg>xs:double</arg>
                    <return>xs:double</return>
                </signature>
            </output>
        </testcase>
        <testcase name="math_pi_0" class="xqfunctions:math_pi_0"/>
        <testcase name="math_pow_2" class="xqfunctions:math_pow_2">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;math:pow#2&lt;/name&gt;&lt;arg&gt;xs:double?&lt;/arg&gt;&lt;arg&gt;xs:numeric&lt;/arg&gt;&lt;return&gt;xs:double?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>math:pow#2</name>
                    <arg>xs:double</arg>
                    <arg>numeric</arg>
                    <return>xs:double</return>
                </signature>
            </output>
        </testcase>
        <testcase name="math_sin_1" class="xqfunctions:math_sin_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;math:sin#1&lt;/name&gt;&lt;arg&gt;xs:double?&lt;/arg&gt;&lt;return&gt;xs:double?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>math:sin#1</name>
                    <arg>xs:double</arg>
                    <return>xs:double</return>
                </signature>
            </output>
        </testcase>
        <testcase name="math_sqrt_1" class="xqfunctions:math_sqrt_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;math:sqrt#1&lt;/name&gt;&lt;arg&gt;xs:double?&lt;/arg&gt;&lt;return&gt;xs:double?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>math:sqrt#1</name>
                    <arg>xs:double</arg>
                    <return>xs:double</return>
                </signature>
            </output>
        </testcase>
        <testcase name="math_tan_1" class="xqfunctions:math_tan_1">
            <failure message="assertEquals failed." type="failure-error-code-1">&lt;signature&gt;&lt;name&gt;math:tan#1&lt;/name&gt;&lt;arg&gt;xs:double?&lt;/arg&gt;&lt;return&gt;xs:double?&lt;/return&gt;&lt;/signature&gt;</failure>
            <output>
                <signature>
                    <name>math:tan#1</name>
                    <arg>xs:double</arg>
                    <return>xs:double</return>
                </signature>
            </output>
        </testcase>
    </testsuite>
</testsuites>
xquery version "3.1";

declare namespace fos="http://www.w3.org/xpath-functions/spec/namespace";

declare function local:writeHeader() as xs:string {
'
xquery version "3.1";

module namespace xqfunctions="http://exist-db.org/xquery/test/xqfunctions";

import module namespace inspect="http://exist-db.org/xquery/inspection" at "java:org.exist.xquery.functions.inspect.InspectionModule";

declare namespace test="http://exist-db.org/xquery/xqsuite";

declare function xqfunctions:cardinality($cardinality as xs:string) as xs:string {
    switch ($cardinality)
        case "exactly one" return ("")
        case "zero or more" return ("*")
        case "one or more" return ("+")
        case "empty" return ("empty-sequence()")
        case "zero or one" return ("?")
        default return ("oops")
};

declare function xqfunctions:describe($element as element() ) as xs:string {
 data($element/@type) || xqfunctions:cardinality(data($element/@cardinality))
};

declare function xqfunctions:inspect($function as function(*)) as element(signature) { 
 let $function := inspect:inspect-function($function)
 let $args :=  $function//argument
 return <signature><name>{data($function/@name) || "#" || count($args)}</name>{for $arg in $args return <arg>{xqfunctions:describe($arg)}</arg>}<return>{xqfunctions:describe($function/returns)}</return></signature>
};

(:  ------------------------- :)

'
    
};

declare function local:writeTests() as xs:string* {

for $container in doc('https://www.w3.org/TR/2017/REC-xpath-functions-31-20170321/function-catalog.xml')//fos:functions/fos:function[@prefix = ("fn","math", "map", "array")]
return
    
    for $proto in $container/fos:signatures/fos:proto
    let $protoname := data($proto/@name)
    let $prefix := data($container/@prefix)
    let $nrargs := count($proto//fos:arg)
    let $nicename := $protoname || "_" || $nrargs
    let $HOFname := $protoname || "#" || $nrargs  
    let $returnType := '<return>' || data($proto/@return-type) || '</return>'
    let $parameters := string-join(for $arg in $proto//fos:arg return '<arg>' || $arg/@type || '</arg>')
    return 
'
(: Test for "' || $prefix || ":" || $HOFname || '" :)
declare  %test:assertEquals( "<signature><name>' || (if ($prefix = "fn") then () else ($prefix || ":")) || $HOFname || '</name>' || $parameters || $returnType || '</signature>") 
function xqfunctions:' || $prefix || "_"  || $nicename  || '() 
{    
    xqfunctions:inspect(' || $prefix || ":" || $HOFname || ') 
}; 
'    

};

let $document := local:writeHeader() || string-join(local:writeTests())

return xmldb:store("/db", "functionSignatureTests.xq", $document)

xquery version "3.1";

module namespace xqfunctions="http://exist-db.org/xquery/test/xqfunctions";

import module namespace inspect="http://exist-db.org/xquery/inspection" at "java:org.exist.xquery.functions.inspect.InspectionModule";

declare namespace test="http://exist-db.org/xquery/xqsuite";

declare function xqfunctions:cardinality($cardinality as xs:string) as xs:string {
    switch ($cardinality)
        case "exactly one" return ("")
        case "zero or more" return ("*")
        case "one or more" return ("+")
        case "empty" return ("empty-sequence()")
        case "zero or one" return ("?")
        default return ("oops")
};

declare function xqfunctions:describe($element as element() ) as xs:string {
 data($element/@type) || xqfunctions:cardinality(data($element/@cardinality))
};

declare function xqfunctions:inspect($function as function(*)) as element(signature) { 
 let $function := inspect:inspect-function($function)
 let $args :=  $function//argument
 return <signature><name>{data($function/@name) || "#" || count($args)}</name>{for $arg in $args return <arg>{xqfunctions:describe($arg)}</arg>}<return>{xqfunctions:describe($function/returns)}</return></signature>
};

(:  ------------------------- :)


(: Test for "fn:node-name#0" :)
declare  %test:assertEquals( "<signature><name>node-name#0</name><return>xs:QName?</return></signature>") 
function xqfunctions:fn_node-name_0() 
{    
    xqfunctions:inspect(fn:node-name#0) 
}; 

(: Test for "fn:node-name#1" :)
declare  %test:assertEquals( "<signature><name>node-name#1</name><arg>node()?</arg><return>xs:QName?</return></signature>") 
function xqfunctions:fn_node-name_1() 
{    
    xqfunctions:inspect(fn:node-name#1) 
}; 

(: Test for "fn:nilled#0" :)
declare  %test:assertEquals( "<signature><name>nilled#0</name><return>xs:boolean?</return></signature>") 
function xqfunctions:fn_nilled_0() 
{    
    xqfunctions:inspect(fn:nilled#0) 
}; 

(: Test for "fn:nilled#1" :)
declare  %test:assertEquals( "<signature><name>nilled#1</name><arg>node()?</arg><return>xs:boolean?</return></signature>") 
function xqfunctions:fn_nilled_1() 
{    
    xqfunctions:inspect(fn:nilled#1) 
}; 

(: Test for "fn:string#0" :)
declare  %test:assertEquals( "<signature><name>string#0</name><return>xs:string</return></signature>") 
function xqfunctions:fn_string_0() 
{    
    xqfunctions:inspect(fn:string#0) 
}; 

(: Test for "fn:string#1" :)
declare  %test:assertEquals( "<signature><name>string#1</name><arg>item()?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_string_1() 
{    
    xqfunctions:inspect(fn:string#1) 
}; 

(: Test for "fn:data#0" :)
declare  %test:assertEquals( "<signature><name>data#0</name><return>xs:anyAtomicType*</return></signature>") 
function xqfunctions:fn_data_0() 
{    
    xqfunctions:inspect(fn:data#0) 
}; 

(: Test for "fn:data#1" :)
declare  %test:assertEquals( "<signature><name>data#1</name><arg>item()*</arg><return>xs:anyAtomicType*</return></signature>") 
function xqfunctions:fn_data_1() 
{    
    xqfunctions:inspect(fn:data#1) 
}; 

(: Test for "fn:base-uri#0" :)
declare  %test:assertEquals( "<signature><name>base-uri#0</name><return>xs:anyURI?</return></signature>") 
function xqfunctions:fn_base-uri_0() 
{    
    xqfunctions:inspect(fn:base-uri#0) 
}; 

(: Test for "fn:base-uri#1" :)
declare  %test:assertEquals( "<signature><name>base-uri#1</name><arg>node()?</arg><return>xs:anyURI?</return></signature>") 
function xqfunctions:fn_base-uri_1() 
{    
    xqfunctions:inspect(fn:base-uri#1) 
}; 

(: Test for "fn:document-uri#0" :)
declare  %test:assertEquals( "<signature><name>document-uri#0</name><return>xs:anyURI?</return></signature>") 
function xqfunctions:fn_document-uri_0() 
{    
    xqfunctions:inspect(fn:document-uri#0) 
}; 

(: Test for "fn:document-uri#1" :)
declare  %test:assertEquals( "<signature><name>document-uri#1</name><arg>node()?</arg><return>xs:anyURI?</return></signature>") 
function xqfunctions:fn_document-uri_1() 
{    
    xqfunctions:inspect(fn:document-uri#1) 
}; 

(: Test for "fn:error#0" :)
declare  %test:assertEquals( "<signature><name>error#0</name><return>none</return></signature>") 
function xqfunctions:fn_error_0() 
{    
    xqfunctions:inspect(fn:error#0) 
}; 

(: Test for "fn:error#1" :)
declare  %test:assertEquals( "<signature><name>error#1</name><arg>xs:QName?</arg><return>none</return></signature>") 
function xqfunctions:fn_error_1() 
{    
    xqfunctions:inspect(fn:error#1) 
}; 

(: Test for "fn:error#2" :)
declare  %test:assertEquals( "<signature><name>error#2</name><arg>xs:QName?</arg><arg>xs:string</arg><return>none</return></signature>") 
function xqfunctions:fn_error_2() 
{    
    xqfunctions:inspect(fn:error#2) 
}; 

(: Test for "fn:error#3" :)
declare  %test:assertEquals( "<signature><name>error#3</name><arg>xs:QName?</arg><arg>xs:string</arg><arg>item()*</arg><return>none</return></signature>") 
function xqfunctions:fn_error_3() 
{    
    xqfunctions:inspect(fn:error#3) 
}; 

(: Test for "fn:trace#1" :)
declare  %test:assertEquals( "<signature><name>trace#1</name><arg>item()*</arg><return>item()*</return></signature>") 
function xqfunctions:fn_trace_1() 
{    
    xqfunctions:inspect(fn:trace#1) 
}; 

(: Test for "fn:trace#2" :)
declare  %test:assertEquals( "<signature><name>trace#2</name><arg>item()*</arg><arg>xs:string</arg><return>item()*</return></signature>") 
function xqfunctions:fn_trace_2() 
{    
    xqfunctions:inspect(fn:trace#2) 
}; 

(: Test for "fn:abs#1" :)
declare  %test:assertEquals( "<signature><name>abs#1</name><arg>xs:numeric?</arg><return>xs:numeric?</return></signature>") 
function xqfunctions:fn_abs_1() 
{    
    xqfunctions:inspect(fn:abs#1) 
}; 

(: Test for "fn:ceiling#1" :)
declare  %test:assertEquals( "<signature><name>ceiling#1</name><arg>xs:numeric?</arg><return>xs:numeric?</return></signature>") 
function xqfunctions:fn_ceiling_1() 
{    
    xqfunctions:inspect(fn:ceiling#1) 
}; 

(: Test for "fn:floor#1" :)
declare  %test:assertEquals( "<signature><name>floor#1</name><arg>xs:numeric?</arg><return>xs:numeric?</return></signature>") 
function xqfunctions:fn_floor_1() 
{    
    xqfunctions:inspect(fn:floor#1) 
}; 

(: Test for "fn:round#1" :)
declare  %test:assertEquals( "<signature><name>round#1</name><arg>xs:numeric?</arg><return>xs:numeric?</return></signature>") 
function xqfunctions:fn_round_1() 
{    
    xqfunctions:inspect(fn:round#1) 
}; 

(: Test for "fn:round#2" :)
declare  %test:assertEquals( "<signature><name>round#2</name><arg>xs:numeric?</arg><arg>xs:integer</arg><return>xs:numeric?</return></signature>") 
function xqfunctions:fn_round_2() 
{    
    xqfunctions:inspect(fn:round#2) 
}; 

(: Test for "fn:round-half-to-even#1" :)
declare  %test:assertEquals( "<signature><name>round-half-to-even#1</name><arg>xs:numeric?</arg><return>xs:numeric?</return></signature>") 
function xqfunctions:fn_round-half-to-even_1() 
{    
    xqfunctions:inspect(fn:round-half-to-even#1) 
}; 

(: Test for "fn:round-half-to-even#2" :)
declare  %test:assertEquals( "<signature><name>round-half-to-even#2</name><arg>xs:numeric?</arg><arg>xs:integer</arg><return>xs:numeric?</return></signature>") 
function xqfunctions:fn_round-half-to-even_2() 
{    
    xqfunctions:inspect(fn:round-half-to-even#2) 
}; 

(: Test for "fn:format-integer#2" :)
declare  %test:assertEquals( "<signature><name>format-integer#2</name><arg>xs:integer?</arg><arg>xs:string</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_format-integer_2() 
{    
    xqfunctions:inspect(fn:format-integer#2) 
}; 

(: Test for "fn:format-integer#3" :)
declare  %test:assertEquals( "<signature><name>format-integer#3</name><arg>xs:integer?</arg><arg>xs:string</arg><arg>xs:string?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_format-integer_3() 
{    
    xqfunctions:inspect(fn:format-integer#3) 
}; 

(: Test for "fn:format-number#2" :)
declare  %test:assertEquals( "<signature><name>format-number#2</name><arg>xs:numeric?</arg><arg>xs:string</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_format-number_2() 
{    
    xqfunctions:inspect(fn:format-number#2) 
}; 

(: Test for "fn:format-number#3" :)
declare  %test:assertEquals( "<signature><name>format-number#3</name><arg>xs:numeric?</arg><arg>xs:string</arg><arg>xs:string?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_format-number_3() 
{    
    xqfunctions:inspect(fn:format-number#3) 
}; 

(: Test for "math:pi#0" :)
declare  %test:assertEquals( "<signature><name>math:pi#0</name><return>xs:double</return></signature>") 
function xqfunctions:math_pi_0() 
{    
    xqfunctions:inspect(math:pi#0) 
}; 

(: Test for "math:exp#1" :)
declare  %test:assertEquals( "<signature><name>math:exp#1</name><arg>xs:double?</arg><return>xs:double?</return></signature>") 
function xqfunctions:math_exp_1() 
{    
    xqfunctions:inspect(math:exp#1) 
}; 

(: Test for "math:exp10#1" :)
declare  %test:assertEquals( "<signature><name>math:exp10#1</name><arg>xs:double?</arg><return>xs:double?</return></signature>") 
function xqfunctions:math_exp10_1() 
{    
    xqfunctions:inspect(math:exp10#1) 
}; 

(: Test for "math:log#1" :)
declare  %test:assertEquals( "<signature><name>math:log#1</name><arg>xs:double?</arg><return>xs:double?</return></signature>") 
function xqfunctions:math_log_1() 
{    
    xqfunctions:inspect(math:log#1) 
}; 

(: Test for "math:log10#1" :)
declare  %test:assertEquals( "<signature><name>math:log10#1</name><arg>xs:double?</arg><return>xs:double?</return></signature>") 
function xqfunctions:math_log10_1() 
{    
    xqfunctions:inspect(math:log10#1) 
}; 

(: Test for "math:sqrt#1" :)
declare  %test:assertEquals( "<signature><name>math:sqrt#1</name><arg>xs:double?</arg><return>xs:double?</return></signature>") 
function xqfunctions:math_sqrt_1() 
{    
    xqfunctions:inspect(math:sqrt#1) 
}; 

(: Test for "math:pow#2" :)
declare  %test:assertEquals( "<signature><name>math:pow#2</name><arg>xs:double?</arg><arg>xs:numeric</arg><return>xs:double?</return></signature>") 
function xqfunctions:math_pow_2() 
{    
    xqfunctions:inspect(math:pow#2) 
}; 

(: Test for "math:sin#1" :)
declare  %test:assertEquals( "<signature><name>math:sin#1</name><arg>xs:double?</arg><return>xs:double?</return></signature>") 
function xqfunctions:math_sin_1() 
{    
    xqfunctions:inspect(math:sin#1) 
}; 

(: Test for "math:cos#1" :)
declare  %test:assertEquals( "<signature><name>math:cos#1</name><arg>xs:double?</arg><return>xs:double?</return></signature>") 
function xqfunctions:math_cos_1() 
{    
    xqfunctions:inspect(math:cos#1) 
}; 

(: Test for "math:tan#1" :)
declare  %test:assertEquals( "<signature><name>math:tan#1</name><arg>xs:double?</arg><return>xs:double?</return></signature>") 
function xqfunctions:math_tan_1() 
{    
    xqfunctions:inspect(math:tan#1) 
}; 

(: Test for "math:asin#1" :)
declare  %test:assertEquals( "<signature><name>math:asin#1</name><arg>xs:double?</arg><return>xs:double?</return></signature>") 
function xqfunctions:math_asin_1() 
{    
    xqfunctions:inspect(math:asin#1) 
}; 

(: Test for "math:acos#1" :)
declare  %test:assertEquals( "<signature><name>math:acos#1</name><arg>xs:double?</arg><return>xs:double?</return></signature>") 
function xqfunctions:math_acos_1() 
{    
    xqfunctions:inspect(math:acos#1) 
}; 

(: Test for "math:atan#1" :)
declare  %test:assertEquals( "<signature><name>math:atan#1</name><arg>xs:double?</arg><return>xs:double?</return></signature>") 
function xqfunctions:math_atan_1() 
{    
    xqfunctions:inspect(math:atan#1) 
}; 

(: Test for "math:atan2#2" :)
declare  %test:assertEquals( "<signature><name>math:atan2#2</name><arg>xs:double</arg><arg>xs:double</arg><return>xs:double</return></signature>") 
function xqfunctions:math_atan2_2() 
{    
    xqfunctions:inspect(math:atan2#2) 
}; 

(: Test for "fn:codepoints-to-string#1" :)
declare  %test:assertEquals( "<signature><name>codepoints-to-string#1</name><arg>xs:integer*</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_codepoints-to-string_1() 
{    
    xqfunctions:inspect(fn:codepoints-to-string#1) 
}; 

(: Test for "fn:string-to-codepoints#1" :)
declare  %test:assertEquals( "<signature><name>string-to-codepoints#1</name><arg>xs:string?</arg><return>xs:integer*</return></signature>") 
function xqfunctions:fn_string-to-codepoints_1() 
{    
    xqfunctions:inspect(fn:string-to-codepoints#1) 
}; 

(: Test for "fn:compare#2" :)
declare  %test:assertEquals( "<signature><name>compare#2</name><arg>xs:string?</arg><arg>xs:string?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_compare_2() 
{    
    xqfunctions:inspect(fn:compare#2) 
}; 

(: Test for "fn:compare#3" :)
declare  %test:assertEquals( "<signature><name>compare#3</name><arg>xs:string?</arg><arg>xs:string?</arg><arg>xs:string</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_compare_3() 
{    
    xqfunctions:inspect(fn:compare#3) 
}; 

(: Test for "fn:codepoint-equal#2" :)
declare  %test:assertEquals( "<signature><name>codepoint-equal#2</name><arg>xs:string?</arg><arg>xs:string?</arg><return>xs:boolean?</return></signature>") 
function xqfunctions:fn_codepoint-equal_2() 
{    
    xqfunctions:inspect(fn:codepoint-equal#2) 
}; 

(: Test for "fn:concat#3" :)
declare  %test:assertEquals( "<signature><name>concat#3</name><arg>xs:anyAtomicType?</arg><arg>xs:anyAtomicType?</arg><arg>xs:anyAtomicType?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_concat_3() 
{    
    xqfunctions:inspect(fn:concat#3) 
}; 

(: Test for "fn:string-join#1" :)
declare  %test:assertEquals( "<signature><name>string-join#1</name><arg>xs:anyAtomicType*</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_string-join_1() 
{    
    xqfunctions:inspect(fn:string-join#1) 
}; 

(: Test for "fn:string-join#2" :)
declare  %test:assertEquals( "<signature><name>string-join#2</name><arg>xs:anyAtomicType*</arg><arg>xs:string</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_string-join_2() 
{    
    xqfunctions:inspect(fn:string-join#2) 
}; 

(: Test for "fn:substring#2" :)
declare  %test:assertEquals( "<signature><name>substring#2</name><arg>xs:string?</arg><arg>xs:double</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_substring_2() 
{    
    xqfunctions:inspect(fn:substring#2) 
}; 

(: Test for "fn:substring#3" :)
declare  %test:assertEquals( "<signature><name>substring#3</name><arg>xs:string?</arg><arg>xs:double</arg><arg>xs:double</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_substring_3() 
{    
    xqfunctions:inspect(fn:substring#3) 
}; 

(: Test for "fn:string-length#0" :)
declare  %test:assertEquals( "<signature><name>string-length#0</name><return>xs:integer</return></signature>") 
function xqfunctions:fn_string-length_0() 
{    
    xqfunctions:inspect(fn:string-length#0) 
}; 

(: Test for "fn:string-length#1" :)
declare  %test:assertEquals( "<signature><name>string-length#1</name><arg>xs:string?</arg><return>xs:integer</return></signature>") 
function xqfunctions:fn_string-length_1() 
{    
    xqfunctions:inspect(fn:string-length#1) 
}; 

(: Test for "fn:normalize-space#0" :)
declare  %test:assertEquals( "<signature><name>normalize-space#0</name><return>xs:string</return></signature>") 
function xqfunctions:fn_normalize-space_0() 
{    
    xqfunctions:inspect(fn:normalize-space#0) 
}; 

(: Test for "fn:normalize-space#1" :)
declare  %test:assertEquals( "<signature><name>normalize-space#1</name><arg>xs:string?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_normalize-space_1() 
{    
    xqfunctions:inspect(fn:normalize-space#1) 
}; 

(: Test for "fn:normalize-unicode#1" :)
declare  %test:assertEquals( "<signature><name>normalize-unicode#1</name><arg>xs:string?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_normalize-unicode_1() 
{    
    xqfunctions:inspect(fn:normalize-unicode#1) 
}; 

(: Test for "fn:normalize-unicode#2" :)
declare  %test:assertEquals( "<signature><name>normalize-unicode#2</name><arg>xs:string?</arg><arg>xs:string</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_normalize-unicode_2() 
{    
    xqfunctions:inspect(fn:normalize-unicode#2) 
}; 

(: Test for "fn:upper-case#1" :)
declare  %test:assertEquals( "<signature><name>upper-case#1</name><arg>xs:string?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_upper-case_1() 
{    
    xqfunctions:inspect(fn:upper-case#1) 
}; 

(: Test for "fn:lower-case#1" :)
declare  %test:assertEquals( "<signature><name>lower-case#1</name><arg>xs:string?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_lower-case_1() 
{    
    xqfunctions:inspect(fn:lower-case#1) 
}; 

(: Test for "fn:translate#3" :)
declare  %test:assertEquals( "<signature><name>translate#3</name><arg>xs:string?</arg><arg>xs:string</arg><arg>xs:string</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_translate_3() 
{    
    xqfunctions:inspect(fn:translate#3) 
}; 

(: Test for "fn:encode-for-uri#1" :)
declare  %test:assertEquals( "<signature><name>encode-for-uri#1</name><arg>xs:string?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_encode-for-uri_1() 
{    
    xqfunctions:inspect(fn:encode-for-uri#1) 
}; 

(: Test for "fn:iri-to-uri#1" :)
declare  %test:assertEquals( "<signature><name>iri-to-uri#1</name><arg>xs:string?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_iri-to-uri_1() 
{    
    xqfunctions:inspect(fn:iri-to-uri#1) 
}; 

(: Test for "fn:escape-html-uri#1" :)
declare  %test:assertEquals( "<signature><name>escape-html-uri#1</name><arg>xs:string?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_escape-html-uri_1() 
{    
    xqfunctions:inspect(fn:escape-html-uri#1) 
}; 

(: Test for "fn:contains#2" :)
declare  %test:assertEquals( "<signature><name>contains#2</name><arg>xs:string?</arg><arg>xs:string?</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_contains_2() 
{    
    xqfunctions:inspect(fn:contains#2) 
}; 

(: Test for "fn:contains#3" :)
declare  %test:assertEquals( "<signature><name>contains#3</name><arg>xs:string?</arg><arg>xs:string?</arg><arg>xs:string</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_contains_3() 
{    
    xqfunctions:inspect(fn:contains#3) 
}; 

(: Test for "fn:starts-with#2" :)
declare  %test:assertEquals( "<signature><name>starts-with#2</name><arg>xs:string?</arg><arg>xs:string?</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_starts-with_2() 
{    
    xqfunctions:inspect(fn:starts-with#2) 
}; 

(: Test for "fn:starts-with#3" :)
declare  %test:assertEquals( "<signature><name>starts-with#3</name><arg>xs:string?</arg><arg>xs:string?</arg><arg>xs:string</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_starts-with_3() 
{    
    xqfunctions:inspect(fn:starts-with#3) 
}; 

(: Test for "fn:ends-with#2" :)
declare  %test:assertEquals( "<signature><name>ends-with#2</name><arg>xs:string?</arg><arg>xs:string?</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_ends-with_2() 
{    
    xqfunctions:inspect(fn:ends-with#2) 
}; 

(: Test for "fn:ends-with#3" :)
declare  %test:assertEquals( "<signature><name>ends-with#3</name><arg>xs:string?</arg><arg>xs:string?</arg><arg>xs:string</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_ends-with_3() 
{    
    xqfunctions:inspect(fn:ends-with#3) 
}; 

(: Test for "fn:substring-before#2" :)
declare  %test:assertEquals( "<signature><name>substring-before#2</name><arg>xs:string?</arg><arg>xs:string?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_substring-before_2() 
{    
    xqfunctions:inspect(fn:substring-before#2) 
}; 

(: Test for "fn:substring-before#3" :)
declare  %test:assertEquals( "<signature><name>substring-before#3</name><arg>xs:string?</arg><arg>xs:string?</arg><arg>xs:string</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_substring-before_3() 
{    
    xqfunctions:inspect(fn:substring-before#3) 
}; 

(: Test for "fn:substring-after#2" :)
declare  %test:assertEquals( "<signature><name>substring-after#2</name><arg>xs:string?</arg><arg>xs:string?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_substring-after_2() 
{    
    xqfunctions:inspect(fn:substring-after#2) 
}; 

(: Test for "fn:substring-after#3" :)
declare  %test:assertEquals( "<signature><name>substring-after#3</name><arg>xs:string?</arg><arg>xs:string?</arg><arg>xs:string</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_substring-after_3() 
{    
    xqfunctions:inspect(fn:substring-after#3) 
}; 

(: Test for "fn:matches#2" :)
declare  %test:assertEquals( "<signature><name>matches#2</name><arg>xs:string?</arg><arg>xs:string</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_matches_2() 
{    
    xqfunctions:inspect(fn:matches#2) 
}; 

(: Test for "fn:matches#3" :)
declare  %test:assertEquals( "<signature><name>matches#3</name><arg>xs:string?</arg><arg>xs:string</arg><arg>xs:string</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_matches_3() 
{    
    xqfunctions:inspect(fn:matches#3) 
}; 

(: Test for "fn:replace#3" :)
declare  %test:assertEquals( "<signature><name>replace#3</name><arg>xs:string?</arg><arg>xs:string</arg><arg>xs:string</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_replace_3() 
{    
    xqfunctions:inspect(fn:replace#3) 
}; 

(: Test for "fn:replace#4" :)
declare  %test:assertEquals( "<signature><name>replace#4</name><arg>xs:string?</arg><arg>xs:string</arg><arg>xs:string</arg><arg>xs:string</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_replace_4() 
{    
    xqfunctions:inspect(fn:replace#4) 
}; 

(: Test for "fn:tokenize#1" :)
declare  %test:assertEquals( "<signature><name>tokenize#1</name><arg>xs:string?</arg><return>xs:string*</return></signature>") 
function xqfunctions:fn_tokenize_1() 
{    
    xqfunctions:inspect(fn:tokenize#1) 
}; 

(: Test for "fn:tokenize#2" :)
declare  %test:assertEquals( "<signature><name>tokenize#2</name><arg>xs:string?</arg><arg>xs:string</arg><return>xs:string*</return></signature>") 
function xqfunctions:fn_tokenize_2() 
{    
    xqfunctions:inspect(fn:tokenize#2) 
}; 

(: Test for "fn:tokenize#3" :)
declare  %test:assertEquals( "<signature><name>tokenize#3</name><arg>xs:string?</arg><arg>xs:string</arg><arg>xs:string</arg><return>xs:string*</return></signature>") 
function xqfunctions:fn_tokenize_3() 
{    
    xqfunctions:inspect(fn:tokenize#3) 
}; 

(: Test for "fn:analyze-string#2" :)
declare  %test:assertEquals( "<signature><name>analyze-string#2</name><arg>xs:string?</arg><arg>xs:string</arg><return>element(fn:analyze-string-result)</return></signature>") 
function xqfunctions:fn_analyze-string_2() 
{    
    xqfunctions:inspect(fn:analyze-string#2) 
}; 

(: Test for "fn:analyze-string#3" :)
declare  %test:assertEquals( "<signature><name>analyze-string#3</name><arg>xs:string?</arg><arg>xs:string</arg><arg>xs:string</arg><return>element(fn:analyze-string-result)</return></signature>") 
function xqfunctions:fn_analyze-string_3() 
{    
    xqfunctions:inspect(fn:analyze-string#3) 
}; 

(: Test for "fn:contains-token#2" :)
declare  %test:assertEquals( "<signature><name>contains-token#2</name><arg>xs:string*</arg><arg>xs:string</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_contains-token_2() 
{    
    xqfunctions:inspect(fn:contains-token#2) 
}; 

(: Test for "fn:contains-token#3" :)
declare  %test:assertEquals( "<signature><name>contains-token#3</name><arg>xs:string*</arg><arg>xs:string</arg><arg>xs:string</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_contains-token_3() 
{    
    xqfunctions:inspect(fn:contains-token#3) 
}; 

(: Test for "fn:resolve-uri#1" :)
declare  %test:assertEquals( "<signature><name>resolve-uri#1</name><arg>xs:string?</arg><return>xs:anyURI?</return></signature>") 
function xqfunctions:fn_resolve-uri_1() 
{    
    xqfunctions:inspect(fn:resolve-uri#1) 
}; 

(: Test for "fn:resolve-uri#2" :)
declare  %test:assertEquals( "<signature><name>resolve-uri#2</name><arg>xs:string?</arg><arg>xs:string</arg><return>xs:anyURI?</return></signature>") 
function xqfunctions:fn_resolve-uri_2() 
{    
    xqfunctions:inspect(fn:resolve-uri#2) 
}; 

(: Test for "fn:true#0" :)
declare  %test:assertEquals( "<signature><name>true#0</name><return>xs:boolean</return></signature>") 
function xqfunctions:fn_true_0() 
{    
    xqfunctions:inspect(fn:true#0) 
}; 

(: Test for "fn:false#0" :)
declare  %test:assertEquals( "<signature><name>false#0</name><return>xs:boolean</return></signature>") 
function xqfunctions:fn_false_0() 
{    
    xqfunctions:inspect(fn:false#0) 
}; 

(: Test for "fn:boolean#1" :)
declare  %test:assertEquals( "<signature><name>boolean#1</name><arg>item()*</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_boolean_1() 
{    
    xqfunctions:inspect(fn:boolean#1) 
}; 

(: Test for "fn:not#1" :)
declare  %test:assertEquals( "<signature><name>not#1</name><arg>item()*</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_not_1() 
{    
    xqfunctions:inspect(fn:not#1) 
}; 

(: Test for "fn:years-from-duration#1" :)
declare  %test:assertEquals( "<signature><name>years-from-duration#1</name><arg>xs:duration?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_years-from-duration_1() 
{    
    xqfunctions:inspect(fn:years-from-duration#1) 
}; 

(: Test for "fn:months-from-duration#1" :)
declare  %test:assertEquals( "<signature><name>months-from-duration#1</name><arg>xs:duration?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_months-from-duration_1() 
{    
    xqfunctions:inspect(fn:months-from-duration#1) 
}; 

(: Test for "fn:days-from-duration#1" :)
declare  %test:assertEquals( "<signature><name>days-from-duration#1</name><arg>xs:duration?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_days-from-duration_1() 
{    
    xqfunctions:inspect(fn:days-from-duration#1) 
}; 

(: Test for "fn:hours-from-duration#1" :)
declare  %test:assertEquals( "<signature><name>hours-from-duration#1</name><arg>xs:duration?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_hours-from-duration_1() 
{    
    xqfunctions:inspect(fn:hours-from-duration#1) 
}; 

(: Test for "fn:minutes-from-duration#1" :)
declare  %test:assertEquals( "<signature><name>minutes-from-duration#1</name><arg>xs:duration?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_minutes-from-duration_1() 
{    
    xqfunctions:inspect(fn:minutes-from-duration#1) 
}; 

(: Test for "fn:seconds-from-duration#1" :)
declare  %test:assertEquals( "<signature><name>seconds-from-duration#1</name><arg>xs:duration?</arg><return>xs:decimal?</return></signature>") 
function xqfunctions:fn_seconds-from-duration_1() 
{    
    xqfunctions:inspect(fn:seconds-from-duration#1) 
}; 

(: Test for "fn:dateTime#2" :)
declare  %test:assertEquals( "<signature><name>dateTime#2</name><arg>xs:date?</arg><arg>xs:time?</arg><return>xs:dateTime?</return></signature>") 
function xqfunctions:fn_dateTime_2() 
{    
    xqfunctions:inspect(fn:dateTime#2) 
}; 

(: Test for "fn:year-from-dateTime#1" :)
declare  %test:assertEquals( "<signature><name>year-from-dateTime#1</name><arg>xs:dateTime?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_year-from-dateTime_1() 
{    
    xqfunctions:inspect(fn:year-from-dateTime#1) 
}; 

(: Test for "fn:month-from-dateTime#1" :)
declare  %test:assertEquals( "<signature><name>month-from-dateTime#1</name><arg>xs:dateTime?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_month-from-dateTime_1() 
{    
    xqfunctions:inspect(fn:month-from-dateTime#1) 
}; 

(: Test for "fn:day-from-dateTime#1" :)
declare  %test:assertEquals( "<signature><name>day-from-dateTime#1</name><arg>xs:dateTime?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_day-from-dateTime_1() 
{    
    xqfunctions:inspect(fn:day-from-dateTime#1) 
}; 

(: Test for "fn:hours-from-dateTime#1" :)
declare  %test:assertEquals( "<signature><name>hours-from-dateTime#1</name><arg>xs:dateTime?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_hours-from-dateTime_1() 
{    
    xqfunctions:inspect(fn:hours-from-dateTime#1) 
}; 

(: Test for "fn:minutes-from-dateTime#1" :)
declare  %test:assertEquals( "<signature><name>minutes-from-dateTime#1</name><arg>xs:dateTime?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_minutes-from-dateTime_1() 
{    
    xqfunctions:inspect(fn:minutes-from-dateTime#1) 
}; 

(: Test for "fn:seconds-from-dateTime#1" :)
declare  %test:assertEquals( "<signature><name>seconds-from-dateTime#1</name><arg>xs:dateTime?</arg><return>xs:decimal?</return></signature>") 
function xqfunctions:fn_seconds-from-dateTime_1() 
{    
    xqfunctions:inspect(fn:seconds-from-dateTime#1) 
}; 

(: Test for "fn:timezone-from-dateTime#1" :)
declare  %test:assertEquals( "<signature><name>timezone-from-dateTime#1</name><arg>xs:dateTime?</arg><return>xs:dayTimeDuration?</return></signature>") 
function xqfunctions:fn_timezone-from-dateTime_1() 
{    
    xqfunctions:inspect(fn:timezone-from-dateTime#1) 
}; 

(: Test for "fn:year-from-date#1" :)
declare  %test:assertEquals( "<signature><name>year-from-date#1</name><arg>xs:date?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_year-from-date_1() 
{    
    xqfunctions:inspect(fn:year-from-date#1) 
}; 

(: Test for "fn:month-from-date#1" :)
declare  %test:assertEquals( "<signature><name>month-from-date#1</name><arg>xs:date?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_month-from-date_1() 
{    
    xqfunctions:inspect(fn:month-from-date#1) 
}; 

(: Test for "fn:day-from-date#1" :)
declare  %test:assertEquals( "<signature><name>day-from-date#1</name><arg>xs:date?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_day-from-date_1() 
{    
    xqfunctions:inspect(fn:day-from-date#1) 
}; 

(: Test for "fn:timezone-from-date#1" :)
declare  %test:assertEquals( "<signature><name>timezone-from-date#1</name><arg>xs:date?</arg><return>xs:dayTimeDuration?</return></signature>") 
function xqfunctions:fn_timezone-from-date_1() 
{    
    xqfunctions:inspect(fn:timezone-from-date#1) 
}; 

(: Test for "fn:hours-from-time#1" :)
declare  %test:assertEquals( "<signature><name>hours-from-time#1</name><arg>xs:time?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_hours-from-time_1() 
{    
    xqfunctions:inspect(fn:hours-from-time#1) 
}; 

(: Test for "fn:minutes-from-time#1" :)
declare  %test:assertEquals( "<signature><name>minutes-from-time#1</name><arg>xs:time?</arg><return>xs:integer?</return></signature>") 
function xqfunctions:fn_minutes-from-time_1() 
{    
    xqfunctions:inspect(fn:minutes-from-time#1) 
}; 

(: Test for "fn:seconds-from-time#1" :)
declare  %test:assertEquals( "<signature><name>seconds-from-time#1</name><arg>xs:time?</arg><return>xs:decimal?</return></signature>") 
function xqfunctions:fn_seconds-from-time_1() 
{    
    xqfunctions:inspect(fn:seconds-from-time#1) 
}; 

(: Test for "fn:timezone-from-time#1" :)
declare  %test:assertEquals( "<signature><name>timezone-from-time#1</name><arg>xs:time?</arg><return>xs:dayTimeDuration?</return></signature>") 
function xqfunctions:fn_timezone-from-time_1() 
{    
    xqfunctions:inspect(fn:timezone-from-time#1) 
}; 

(: Test for "fn:adjust-dateTime-to-timezone#1" :)
declare  %test:assertEquals( "<signature><name>adjust-dateTime-to-timezone#1</name><arg>xs:dateTime?</arg><return>xs:dateTime?</return></signature>") 
function xqfunctions:fn_adjust-dateTime-to-timezone_1() 
{    
    xqfunctions:inspect(fn:adjust-dateTime-to-timezone#1) 
}; 

(: Test for "fn:adjust-dateTime-to-timezone#2" :)
declare  %test:assertEquals( "<signature><name>adjust-dateTime-to-timezone#2</name><arg>xs:dateTime?</arg><arg>xs:dayTimeDuration?</arg><return>xs:dateTime?</return></signature>") 
function xqfunctions:fn_adjust-dateTime-to-timezone_2() 
{    
    xqfunctions:inspect(fn:adjust-dateTime-to-timezone#2) 
}; 

(: Test for "fn:adjust-date-to-timezone#1" :)
declare  %test:assertEquals( "<signature><name>adjust-date-to-timezone#1</name><arg>xs:date?</arg><return>xs:date?</return></signature>") 
function xqfunctions:fn_adjust-date-to-timezone_1() 
{    
    xqfunctions:inspect(fn:adjust-date-to-timezone#1) 
}; 

(: Test for "fn:adjust-date-to-timezone#2" :)
declare  %test:assertEquals( "<signature><name>adjust-date-to-timezone#2</name><arg>xs:date?</arg><arg>xs:dayTimeDuration?</arg><return>xs:date?</return></signature>") 
function xqfunctions:fn_adjust-date-to-timezone_2() 
{    
    xqfunctions:inspect(fn:adjust-date-to-timezone#2) 
}; 

(: Test for "fn:adjust-time-to-timezone#1" :)
declare  %test:assertEquals( "<signature><name>adjust-time-to-timezone#1</name><arg>xs:time?</arg><return>xs:time?</return></signature>") 
function xqfunctions:fn_adjust-time-to-timezone_1() 
{    
    xqfunctions:inspect(fn:adjust-time-to-timezone#1) 
}; 

(: Test for "fn:adjust-time-to-timezone#2" :)
declare  %test:assertEquals( "<signature><name>adjust-time-to-timezone#2</name><arg>xs:time?</arg><arg>xs:dayTimeDuration?</arg><return>xs:time?</return></signature>") 
function xqfunctions:fn_adjust-time-to-timezone_2() 
{    
    xqfunctions:inspect(fn:adjust-time-to-timezone#2) 
}; 

(: Test for "fn:format-dateTime#2" :)
declare  %test:assertEquals( "<signature><name>format-dateTime#2</name><arg>xs:dateTime?</arg><arg>xs:string</arg><return>xs:string?</return></signature>") 
function xqfunctions:fn_format-dateTime_2() 
{    
    xqfunctions:inspect(fn:format-dateTime#2) 
}; 

(: Test for "fn:format-dateTime#5" :)
declare  %test:assertEquals( "<signature><name>format-dateTime#5</name><arg>xs:dateTime?</arg><arg>xs:string</arg><arg>xs:string?</arg><arg>xs:string?</arg><arg>xs:string?</arg><return>xs:string?</return></signature>") 
function xqfunctions:fn_format-dateTime_5() 
{    
    xqfunctions:inspect(fn:format-dateTime#5) 
}; 

(: Test for "fn:format-date#2" :)
declare  %test:assertEquals( "<signature><name>format-date#2</name><arg>xs:date?</arg><arg>xs:string</arg><return>xs:string?</return></signature>") 
function xqfunctions:fn_format-date_2() 
{    
    xqfunctions:inspect(fn:format-date#2) 
}; 

(: Test for "fn:format-date#5" :)
declare  %test:assertEquals( "<signature><name>format-date#5</name><arg>xs:date?</arg><arg>xs:string</arg><arg>xs:string?</arg><arg>xs:string?</arg><arg>xs:string?</arg><return>xs:string?</return></signature>") 
function xqfunctions:fn_format-date_5() 
{    
    xqfunctions:inspect(fn:format-date#5) 
}; 

(: Test for "fn:format-time#2" :)
declare  %test:assertEquals( "<signature><name>format-time#2</name><arg>xs:time?</arg><arg>xs:string</arg><return>xs:string?</return></signature>") 
function xqfunctions:fn_format-time_2() 
{    
    xqfunctions:inspect(fn:format-time#2) 
}; 

(: Test for "fn:format-time#5" :)
declare  %test:assertEquals( "<signature><name>format-time#5</name><arg>xs:time?</arg><arg>xs:string</arg><arg>xs:string?</arg><arg>xs:string?</arg><arg>xs:string?</arg><return>xs:string?</return></signature>") 
function xqfunctions:fn_format-time_5() 
{    
    xqfunctions:inspect(fn:format-time#5) 
}; 

(: Test for "fn:parse-ietf-date#1" :)
declare  %test:assertEquals( "<signature><name>parse-ietf-date#1</name><arg>xs:string?</arg><return>xs:dateTime?</return></signature>") 
function xqfunctions:fn_parse-ietf-date_1() 
{    
    xqfunctions:inspect(fn:parse-ietf-date#1) 
}; 

(: Test for "fn:resolve-QName#2" :)
declare  %test:assertEquals( "<signature><name>resolve-QName#2</name><arg>xs:string?</arg><arg>element()</arg><return>xs:QName?</return></signature>") 
function xqfunctions:fn_resolve-QName_2() 
{    
    xqfunctions:inspect(fn:resolve-QName#2) 
}; 

(: Test for "fn:QName#2" :)
declare  %test:assertEquals( "<signature><name>QName#2</name><arg>xs:string?</arg><arg>xs:string</arg><return>xs:QName</return></signature>") 
function xqfunctions:fn_QName_2() 
{    
    xqfunctions:inspect(fn:QName#2) 
}; 

(: Test for "fn:prefix-from-QName#1" :)
declare  %test:assertEquals( "<signature><name>prefix-from-QName#1</name><arg>xs:QName?</arg><return>xs:NCName?</return></signature>") 
function xqfunctions:fn_prefix-from-QName_1() 
{    
    xqfunctions:inspect(fn:prefix-from-QName#1) 
}; 

(: Test for "fn:local-name-from-QName#1" :)
declare  %test:assertEquals( "<signature><name>local-name-from-QName#1</name><arg>xs:QName?</arg><return>xs:NCName?</return></signature>") 
function xqfunctions:fn_local-name-from-QName_1() 
{    
    xqfunctions:inspect(fn:local-name-from-QName#1) 
}; 

(: Test for "fn:namespace-uri-from-QName#1" :)
declare  %test:assertEquals( "<signature><name>namespace-uri-from-QName#1</name><arg>xs:QName?</arg><return>xs:anyURI?</return></signature>") 
function xqfunctions:fn_namespace-uri-from-QName_1() 
{    
    xqfunctions:inspect(fn:namespace-uri-from-QName#1) 
}; 

(: Test for "fn:namespace-uri-for-prefix#2" :)
declare  %test:assertEquals( "<signature><name>namespace-uri-for-prefix#2</name><arg>xs:string?</arg><arg>element()</arg><return>xs:anyURI?</return></signature>") 
function xqfunctions:fn_namespace-uri-for-prefix_2() 
{    
    xqfunctions:inspect(fn:namespace-uri-for-prefix#2) 
}; 

(: Test for "fn:in-scope-prefixes#1" :)
declare  %test:assertEquals( "<signature><name>in-scope-prefixes#1</name><arg>element()</arg><return>xs:string*</return></signature>") 
function xqfunctions:fn_in-scope-prefixes_1() 
{    
    xqfunctions:inspect(fn:in-scope-prefixes#1) 
}; 

(: Test for "fn:name#0" :)
declare  %test:assertEquals( "<signature><name>name#0</name><return>xs:string</return></signature>") 
function xqfunctions:fn_name_0() 
{    
    xqfunctions:inspect(fn:name#0) 
}; 

(: Test for "fn:name#1" :)
declare  %test:assertEquals( "<signature><name>name#1</name><arg>node()?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_name_1() 
{    
    xqfunctions:inspect(fn:name#1) 
}; 

(: Test for "fn:local-name#0" :)
declare  %test:assertEquals( "<signature><name>local-name#0</name><return>xs:string</return></signature>") 
function xqfunctions:fn_local-name_0() 
{    
    xqfunctions:inspect(fn:local-name#0) 
}; 

(: Test for "fn:local-name#1" :)
declare  %test:assertEquals( "<signature><name>local-name#1</name><arg>node()?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_local-name_1() 
{    
    xqfunctions:inspect(fn:local-name#1) 
}; 

(: Test for "fn:namespace-uri#0" :)
declare  %test:assertEquals( "<signature><name>namespace-uri#0</name><return>xs:anyURI</return></signature>") 
function xqfunctions:fn_namespace-uri_0() 
{    
    xqfunctions:inspect(fn:namespace-uri#0) 
}; 

(: Test for "fn:namespace-uri#1" :)
declare  %test:assertEquals( "<signature><name>namespace-uri#1</name><arg>node()?</arg><return>xs:anyURI</return></signature>") 
function xqfunctions:fn_namespace-uri_1() 
{    
    xqfunctions:inspect(fn:namespace-uri#1) 
}; 

(: Test for "fn:number#0" :)
declare  %test:assertEquals( "<signature><name>number#0</name><return>xs:double</return></signature>") 
function xqfunctions:fn_number_0() 
{    
    xqfunctions:inspect(fn:number#0) 
}; 

(: Test for "fn:number#1" :)
declare  %test:assertEquals( "<signature><name>number#1</name><arg>xs:anyAtomicType?</arg><return>xs:double</return></signature>") 
function xqfunctions:fn_number_1() 
{    
    xqfunctions:inspect(fn:number#1) 
}; 

(: Test for "fn:lang#1" :)
declare  %test:assertEquals( "<signature><name>lang#1</name><arg>xs:string?</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_lang_1() 
{    
    xqfunctions:inspect(fn:lang#1) 
}; 

(: Test for "fn:lang#2" :)
declare  %test:assertEquals( "<signature><name>lang#2</name><arg>xs:string?</arg><arg>node()</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_lang_2() 
{    
    xqfunctions:inspect(fn:lang#2) 
}; 

(: Test for "fn:path#0" :)
declare  %test:assertEquals( "<signature><name>path#0</name><return>xs:string?</return></signature>") 
function xqfunctions:fn_path_0() 
{    
    xqfunctions:inspect(fn:path#0) 
}; 

(: Test for "fn:path#1" :)
declare  %test:assertEquals( "<signature><name>path#1</name><arg>node()?</arg><return>xs:string?</return></signature>") 
function xqfunctions:fn_path_1() 
{    
    xqfunctions:inspect(fn:path#1) 
}; 

(: Test for "fn:root#0" :)
declare  %test:assertEquals( "<signature><name>root#0</name><return>node()</return></signature>") 
function xqfunctions:fn_root_0() 
{    
    xqfunctions:inspect(fn:root#0) 
}; 

(: Test for "fn:root#1" :)
declare  %test:assertEquals( "<signature><name>root#1</name><arg>node()?</arg><return>node()?</return></signature>") 
function xqfunctions:fn_root_1() 
{    
    xqfunctions:inspect(fn:root#1) 
}; 

(: Test for "fn:has-children#0" :)
declare  %test:assertEquals( "<signature><name>has-children#0</name><return>xs:boolean</return></signature>") 
function xqfunctions:fn_has-children_0() 
{    
    xqfunctions:inspect(fn:has-children#0) 
}; 

(: Test for "fn:has-children#1" :)
declare  %test:assertEquals( "<signature><name>has-children#1</name><arg>node()?</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_has-children_1() 
{    
    xqfunctions:inspect(fn:has-children#1) 
}; 

(: Test for "fn:innermost#1" :)
declare  %test:assertEquals( "<signature><name>innermost#1</name><arg>node()*</arg><return>node()*</return></signature>") 
function xqfunctions:fn_innermost_1() 
{    
    xqfunctions:inspect(fn:innermost#1) 
}; 

(: Test for "fn:outermost#1" :)
declare  %test:assertEquals( "<signature><name>outermost#1</name><arg>node()*</arg><return>node()*</return></signature>") 
function xqfunctions:fn_outermost_1() 
{    
    xqfunctions:inspect(fn:outermost#1) 
}; 

(: Test for "fn:index-of#2" :)
declare  %test:assertEquals( "<signature><name>index-of#2</name><arg>xs:anyAtomicType*</arg><arg>xs:anyAtomicType</arg><return>xs:integer*</return></signature>") 
function xqfunctions:fn_index-of_2() 
{    
    xqfunctions:inspect(fn:index-of#2) 
}; 

(: Test for "fn:index-of#3" :)
declare  %test:assertEquals( "<signature><name>index-of#3</name><arg>xs:anyAtomicType*</arg><arg>xs:anyAtomicType</arg><arg>xs:string</arg><return>xs:integer*</return></signature>") 
function xqfunctions:fn_index-of_3() 
{    
    xqfunctions:inspect(fn:index-of#3) 
}; 

(: Test for "fn:empty#1" :)
declare  %test:assertEquals( "<signature><name>empty#1</name><arg>item()*</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_empty_1() 
{    
    xqfunctions:inspect(fn:empty#1) 
}; 

(: Test for "fn:exists#1" :)
declare  %test:assertEquals( "<signature><name>exists#1</name><arg>item()*</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_exists_1() 
{    
    xqfunctions:inspect(fn:exists#1) 
}; 

(: Test for "fn:distinct-values#1" :)
declare  %test:assertEquals( "<signature><name>distinct-values#1</name><arg>xs:anyAtomicType*</arg><return>xs:anyAtomicType*</return></signature>") 
function xqfunctions:fn_distinct-values_1() 
{    
    xqfunctions:inspect(fn:distinct-values#1) 
}; 

(: Test for "fn:distinct-values#2" :)
declare  %test:assertEquals( "<signature><name>distinct-values#2</name><arg>xs:anyAtomicType*</arg><arg>xs:string</arg><return>xs:anyAtomicType*</return></signature>") 
function xqfunctions:fn_distinct-values_2() 
{    
    xqfunctions:inspect(fn:distinct-values#2) 
}; 

(: Test for "fn:insert-before#3" :)
declare  %test:assertEquals( "<signature><name>insert-before#3</name><arg>item()*</arg><arg>xs:integer</arg><arg>item()*</arg><return>item()*</return></signature>") 
function xqfunctions:fn_insert-before_3() 
{    
    xqfunctions:inspect(fn:insert-before#3) 
}; 

(: Test for "fn:remove#2" :)
declare  %test:assertEquals( "<signature><name>remove#2</name><arg>item()*</arg><arg>xs:integer</arg><return>item()*</return></signature>") 
function xqfunctions:fn_remove_2() 
{    
    xqfunctions:inspect(fn:remove#2) 
}; 

(: Test for "fn:head#1" :)
declare  %test:assertEquals( "<signature><name>head#1</name><arg>item()*</arg><return>item()?</return></signature>") 
function xqfunctions:fn_head_1() 
{    
    xqfunctions:inspect(fn:head#1) 
}; 

(: Test for "fn:tail#1" :)
declare  %test:assertEquals( "<signature><name>tail#1</name><arg>item()*</arg><return>item()*</return></signature>") 
function xqfunctions:fn_tail_1() 
{    
    xqfunctions:inspect(fn:tail#1) 
}; 

(: Test for "fn:reverse#1" :)
declare  %test:assertEquals( "<signature><name>reverse#1</name><arg>item()*</arg><return>item()*</return></signature>") 
function xqfunctions:fn_reverse_1() 
{    
    xqfunctions:inspect(fn:reverse#1) 
}; 

(: Test for "fn:subsequence#2" :)
declare  %test:assertEquals( "<signature><name>subsequence#2</name><arg>item()*</arg><arg>xs:double</arg><return>item()*</return></signature>") 
function xqfunctions:fn_subsequence_2() 
{    
    xqfunctions:inspect(fn:subsequence#2) 
}; 

(: Test for "fn:subsequence#3" :)
declare  %test:assertEquals( "<signature><name>subsequence#3</name><arg>item()*</arg><arg>xs:double</arg><arg>xs:double</arg><return>item()*</return></signature>") 
function xqfunctions:fn_subsequence_3() 
{    
    xqfunctions:inspect(fn:subsequence#3) 
}; 

(: Test for "fn:unordered#1" :)
declare  %test:assertEquals( "<signature><name>unordered#1</name><arg>item()*</arg><return>item()*</return></signature>") 
function xqfunctions:fn_unordered_1() 
{    
    xqfunctions:inspect(fn:unordered#1) 
}; 

(: Test for "fn:zero-or-one#1" :)
declare  %test:assertEquals( "<signature><name>zero-or-one#1</name><arg>item()*</arg><return>item()?</return></signature>") 
function xqfunctions:fn_zero-or-one_1() 
{    
    xqfunctions:inspect(fn:zero-or-one#1) 
}; 

(: Test for "fn:one-or-more#1" :)
declare  %test:assertEquals( "<signature><name>one-or-more#1</name><arg>item()*</arg><return>item()+</return></signature>") 
function xqfunctions:fn_one-or-more_1() 
{    
    xqfunctions:inspect(fn:one-or-more#1) 
}; 

(: Test for "fn:exactly-one#1" :)
declare  %test:assertEquals( "<signature><name>exactly-one#1</name><arg>item()*</arg><return>item()</return></signature>") 
function xqfunctions:fn_exactly-one_1() 
{    
    xqfunctions:inspect(fn:exactly-one#1) 
}; 

(: Test for "fn:deep-equal#2" :)
declare  %test:assertEquals( "<signature><name>deep-equal#2</name><arg>item()*</arg><arg>item()*</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_deep-equal_2() 
{    
    xqfunctions:inspect(fn:deep-equal#2) 
}; 

(: Test for "fn:deep-equal#3" :)
declare  %test:assertEquals( "<signature><name>deep-equal#3</name><arg>item()*</arg><arg>item()*</arg><arg>xs:string</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_deep-equal_3() 
{    
    xqfunctions:inspect(fn:deep-equal#3) 
}; 

(: Test for "fn:count#1" :)
declare  %test:assertEquals( "<signature><name>count#1</name><arg>item()*</arg><return>xs:integer</return></signature>") 
function xqfunctions:fn_count_1() 
{    
    xqfunctions:inspect(fn:count#1) 
}; 

(: Test for "fn:avg#1" :)
declare  %test:assertEquals( "<signature><name>avg#1</name><arg>xs:anyAtomicType*</arg><return>xs:anyAtomicType?</return></signature>") 
function xqfunctions:fn_avg_1() 
{    
    xqfunctions:inspect(fn:avg#1) 
}; 

(: Test for "fn:max#1" :)
declare  %test:assertEquals( "<signature><name>max#1</name><arg>xs:anyAtomicType*</arg><return>xs:anyAtomicType?</return></signature>") 
function xqfunctions:fn_max_1() 
{    
    xqfunctions:inspect(fn:max#1) 
}; 

(: Test for "fn:max#2" :)
declare  %test:assertEquals( "<signature><name>max#2</name><arg>xs:anyAtomicType*</arg><arg>xs:string</arg><return>xs:anyAtomicType?</return></signature>") 
function xqfunctions:fn_max_2() 
{    
    xqfunctions:inspect(fn:max#2) 
}; 

(: Test for "fn:min#1" :)
declare  %test:assertEquals( "<signature><name>min#1</name><arg>xs:anyAtomicType*</arg><return>xs:anyAtomicType?</return></signature>") 
function xqfunctions:fn_min_1() 
{    
    xqfunctions:inspect(fn:min#1) 
}; 

(: Test for "fn:min#2" :)
declare  %test:assertEquals( "<signature><name>min#2</name><arg>xs:anyAtomicType*</arg><arg>xs:string</arg><return>xs:anyAtomicType?</return></signature>") 
function xqfunctions:fn_min_2() 
{    
    xqfunctions:inspect(fn:min#2) 
}; 

(: Test for "fn:sum#1" :)
declare  %test:assertEquals( "<signature><name>sum#1</name><arg>xs:anyAtomicType*</arg><return>xs:anyAtomicType</return></signature>") 
function xqfunctions:fn_sum_1() 
{    
    xqfunctions:inspect(fn:sum#1) 
}; 

(: Test for "fn:sum#2" :)
declare  %test:assertEquals( "<signature><name>sum#2</name><arg>xs:anyAtomicType*</arg><arg>xs:anyAtomicType?</arg><return>xs:anyAtomicType?</return></signature>") 
function xqfunctions:fn_sum_2() 
{    
    xqfunctions:inspect(fn:sum#2) 
}; 

(: Test for "fn:id#1" :)
declare  %test:assertEquals( "<signature><name>id#1</name><arg>xs:string*</arg><return>element()*</return></signature>") 
function xqfunctions:fn_id_1() 
{    
    xqfunctions:inspect(fn:id#1) 
}; 

(: Test for "fn:id#2" :)
declare  %test:assertEquals( "<signature><name>id#2</name><arg>xs:string*</arg><arg>node()</arg><return>element()*</return></signature>") 
function xqfunctions:fn_id_2() 
{    
    xqfunctions:inspect(fn:id#2) 
}; 

(: Test for "fn:element-with-id#1" :)
declare  %test:assertEquals( "<signature><name>element-with-id#1</name><arg>xs:string*</arg><return>element()*</return></signature>") 
function xqfunctions:fn_element-with-id_1() 
{    
    xqfunctions:inspect(fn:element-with-id#1) 
}; 

(: Test for "fn:element-with-id#2" :)
declare  %test:assertEquals( "<signature><name>element-with-id#2</name><arg>xs:string*</arg><arg>node()</arg><return>element()*</return></signature>") 
function xqfunctions:fn_element-with-id_2() 
{    
    xqfunctions:inspect(fn:element-with-id#2) 
}; 

(: Test for "fn:idref#1" :)
declare  %test:assertEquals( "<signature><name>idref#1</name><arg>xs:string*</arg><return>node()*</return></signature>") 
function xqfunctions:fn_idref_1() 
{    
    xqfunctions:inspect(fn:idref#1) 
}; 

(: Test for "fn:idref#2" :)
declare  %test:assertEquals( "<signature><name>idref#2</name><arg>xs:string*</arg><arg>node()</arg><return>node()*</return></signature>") 
function xqfunctions:fn_idref_2() 
{    
    xqfunctions:inspect(fn:idref#2) 
}; 

(: Test for "fn:doc#1" :)
declare  %test:assertEquals( "<signature><name>doc#1</name><arg>xs:string?</arg><return>document-node()?</return></signature>") 
function xqfunctions:fn_doc_1() 
{    
    xqfunctions:inspect(fn:doc#1) 
}; 

(: Test for "fn:doc-available#1" :)
declare  %test:assertEquals( "<signature><name>doc-available#1</name><arg>xs:string?</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_doc-available_1() 
{    
    xqfunctions:inspect(fn:doc-available#1) 
}; 

(: Test for "fn:collection#0" :)
declare  %test:assertEquals( "<signature><name>collection#0</name><return>item()*</return></signature>") 
function xqfunctions:fn_collection_0() 
{    
    xqfunctions:inspect(fn:collection#0) 
}; 

(: Test for "fn:collection#1" :)
declare  %test:assertEquals( "<signature><name>collection#1</name><arg>xs:string?</arg><return>item()*</return></signature>") 
function xqfunctions:fn_collection_1() 
{    
    xqfunctions:inspect(fn:collection#1) 
}; 

(: Test for "fn:uri-collection#0" :)
declare  %test:assertEquals( "<signature><name>uri-collection#0</name><return>xs:anyURI*</return></signature>") 
function xqfunctions:fn_uri-collection_0() 
{    
    xqfunctions:inspect(fn:uri-collection#0) 
}; 

(: Test for "fn:uri-collection#1" :)
declare  %test:assertEquals( "<signature><name>uri-collection#1</name><arg>xs:string?</arg><return>xs:anyURI*</return></signature>") 
function xqfunctions:fn_uri-collection_1() 
{    
    xqfunctions:inspect(fn:uri-collection#1) 
}; 

(: Test for "fn:unparsed-text#1" :)
declare  %test:assertEquals( "<signature><name>unparsed-text#1</name><arg>xs:string?</arg><return>xs:string?</return></signature>") 
function xqfunctions:fn_unparsed-text_1() 
{    
    xqfunctions:inspect(fn:unparsed-text#1) 
}; 

(: Test for "fn:unparsed-text#2" :)
declare  %test:assertEquals( "<signature><name>unparsed-text#2</name><arg>xs:string?</arg><arg>xs:string</arg><return>xs:string?</return></signature>") 
function xqfunctions:fn_unparsed-text_2() 
{    
    xqfunctions:inspect(fn:unparsed-text#2) 
}; 

(: Test for "fn:unparsed-text-lines#1" :)
declare  %test:assertEquals( "<signature><name>unparsed-text-lines#1</name><arg>xs:string?</arg><return>xs:string*</return></signature>") 
function xqfunctions:fn_unparsed-text-lines_1() 
{    
    xqfunctions:inspect(fn:unparsed-text-lines#1) 
}; 

(: Test for "fn:unparsed-text-lines#2" :)
declare  %test:assertEquals( "<signature><name>unparsed-text-lines#2</name><arg>xs:string?</arg><arg>xs:string</arg><return>xs:string*</return></signature>") 
function xqfunctions:fn_unparsed-text-lines_2() 
{    
    xqfunctions:inspect(fn:unparsed-text-lines#2) 
}; 

(: Test for "fn:unparsed-text-available#1" :)
declare  %test:assertEquals( "<signature><name>unparsed-text-available#1</name><arg>xs:string?</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_unparsed-text-available_1() 
{    
    xqfunctions:inspect(fn:unparsed-text-available#1) 
}; 

(: Test for "fn:unparsed-text-available#2" :)
declare  %test:assertEquals( "<signature><name>unparsed-text-available#2</name><arg>xs:string?</arg><arg>xs:string</arg><return>xs:boolean</return></signature>") 
function xqfunctions:fn_unparsed-text-available_2() 
{    
    xqfunctions:inspect(fn:unparsed-text-available#2) 
}; 

(: Test for "fn:environment-variable#1" :)
declare  %test:assertEquals( "<signature><name>environment-variable#1</name><arg>xs:string</arg><return>xs:string?</return></signature>") 
function xqfunctions:fn_environment-variable_1() 
{    
    xqfunctions:inspect(fn:environment-variable#1) 
}; 

(: Test for "fn:available-environment-variables#0" :)
declare  %test:assertEquals( "<signature><name>available-environment-variables#0</name><return>xs:string*</return></signature>") 
function xqfunctions:fn_available-environment-variables_0() 
{    
    xqfunctions:inspect(fn:available-environment-variables#0) 
}; 

(: Test for "fn:generate-id#0" :)
declare  %test:assertEquals( "<signature><name>generate-id#0</name><return>xs:string</return></signature>") 
function xqfunctions:fn_generate-id_0() 
{    
    xqfunctions:inspect(fn:generate-id#0) 
}; 

(: Test for "fn:generate-id#1" :)
declare  %test:assertEquals( "<signature><name>generate-id#1</name><arg>node()?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_generate-id_1() 
{    
    xqfunctions:inspect(fn:generate-id#1) 
}; 

(: Test for "fn:parse-xml#1" :)
declare  %test:assertEquals( "<signature><name>parse-xml#1</name><arg>xs:string?</arg><return>document-node(element(*))?</return></signature>") 
function xqfunctions:fn_parse-xml_1() 
{    
    xqfunctions:inspect(fn:parse-xml#1) 
}; 

(: Test for "fn:parse-xml-fragment#1" :)
declare  %test:assertEquals( "<signature><name>parse-xml-fragment#1</name><arg>xs:string?</arg><return>document-node()?</return></signature>") 
function xqfunctions:fn_parse-xml-fragment_1() 
{    
    xqfunctions:inspect(fn:parse-xml-fragment#1) 
}; 

(: Test for "fn:serialize#1" :)
declare  %test:assertEquals( "<signature><name>serialize#1</name><arg>item()*</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_serialize_1() 
{    
    xqfunctions:inspect(fn:serialize#1) 
}; 

(: Test for "fn:serialize#2" :)
declare  %test:assertEquals( "<signature><name>serialize#2</name><arg>item()*</arg><arg>item()?</arg><return>xs:string</return></signature>") 
function xqfunctions:fn_serialize_2() 
{    
    xqfunctions:inspect(fn:serialize#2) 
}; 

(: Test for "fn:position#0" :)
declare  %test:assertEquals( "<signature><name>position#0</name><return>xs:integer</return></signature>") 
function xqfunctions:fn_position_0() 
{    
    xqfunctions:inspect(fn:position#0) 
}; 

(: Test for "fn:last#0" :)
declare  %test:assertEquals( "<signature><name>last#0</name><return>xs:integer</return></signature>") 
function xqfunctions:fn_last_0() 
{    
    xqfunctions:inspect(fn:last#0) 
}; 

(: Test for "fn:current-dateTime#0" :)
declare  %test:assertEquals( "<signature><name>current-dateTime#0</name><return>xs:dateTimeStamp</return></signature>") 
function xqfunctions:fn_current-dateTime_0() 
{    
    xqfunctions:inspect(fn:current-dateTime#0) 
}; 

(: Test for "fn:current-date#0" :)
declare  %test:assertEquals( "<signature><name>current-date#0</name><return>xs:date</return></signature>") 
function xqfunctions:fn_current-date_0() 
{    
    xqfunctions:inspect(fn:current-date#0) 
}; 

(: Test for "fn:current-time#0" :)
declare  %test:assertEquals( "<signature><name>current-time#0</name><return>xs:time</return></signature>") 
function xqfunctions:fn_current-time_0() 
{    
    xqfunctions:inspect(fn:current-time#0) 
}; 

(: Test for "fn:implicit-timezone#0" :)
declare  %test:assertEquals( "<signature><name>implicit-timezone#0</name><return>xs:dayTimeDuration</return></signature>") 
function xqfunctions:fn_implicit-timezone_0() 
{    
    xqfunctions:inspect(fn:implicit-timezone#0) 
}; 

(: Test for "fn:default-collation#0" :)
declare  %test:assertEquals( "<signature><name>default-collation#0</name><return>xs:string</return></signature>") 
function xqfunctions:fn_default-collation_0() 
{    
    xqfunctions:inspect(fn:default-collation#0) 
}; 

(: Test for "fn:default-language#0" :)
declare  %test:assertEquals( "<signature><name>default-language#0</name><return>xs:language</return></signature>") 
function xqfunctions:fn_default-language_0() 
{    
    xqfunctions:inspect(fn:default-language#0) 
}; 

(: Test for "fn:static-base-uri#0" :)
declare  %test:assertEquals( "<signature><name>static-base-uri#0</name><return>xs:anyURI?</return></signature>") 
function xqfunctions:fn_static-base-uri_0() 
{    
    xqfunctions:inspect(fn:static-base-uri#0) 
}; 

(: Test for "fn:function-lookup#2" :)
declare  %test:assertEquals( "<signature><name>function-lookup#2</name><arg>xs:QName</arg><arg>xs:integer</arg><return>function(*)?</return></signature>") 
function xqfunctions:fn_function-lookup_2() 
{    
    xqfunctions:inspect(fn:function-lookup#2) 
}; 

(: Test for "fn:function-name#1" :)
declare  %test:assertEquals( "<signature><name>function-name#1</name><arg>function(*)</arg><return>xs:QName?</return></signature>") 
function xqfunctions:fn_function-name_1() 
{    
    xqfunctions:inspect(fn:function-name#1) 
}; 

(: Test for "fn:function-arity#1" :)
declare  %test:assertEquals( "<signature><name>function-arity#1</name><arg>function(*)</arg><return>xs:integer</return></signature>") 
function xqfunctions:fn_function-arity_1() 
{    
    xqfunctions:inspect(fn:function-arity#1) 
}; 

(: Test for "fn:for-each#2" :)
declare  %test:assertEquals( "<signature><name>for-each#2</name><arg>item()*</arg><arg>function(item()) as item()*</arg><return>item()*</return></signature>") 
function xqfunctions:fn_for-each_2() 
{    
    xqfunctions:inspect(fn:for-each#2) 
}; 

(: Test for "fn:filter#2" :)
declare  %test:assertEquals( "<signature><name>filter#2</name><arg>item()*</arg><arg>function(item()) as xs:boolean</arg><return>item()*</return></signature>") 
function xqfunctions:fn_filter_2() 
{    
    xqfunctions:inspect(fn:filter#2) 
}; 

(: Test for "fn:fold-left#3" :)
declare  %test:assertEquals( "<signature><name>fold-left#3</name><arg>item()*</arg><arg>item()*</arg><arg>function(item()*, item()) as item()*</arg><return>item()*</return></signature>") 
function xqfunctions:fn_fold-left_3() 
{    
    xqfunctions:inspect(fn:fold-left#3) 
}; 

(: Test for "fn:fold-right#3" :)
declare  %test:assertEquals( "<signature><name>fold-right#3</name><arg>item()*</arg><arg>item()*</arg><arg>function(item(), item()*) as item()*</arg><return>item()*</return></signature>") 
function xqfunctions:fn_fold-right_3() 
{    
    xqfunctions:inspect(fn:fold-right#3) 
}; 

(: Test for "fn:for-each-pair#3" :)
declare  %test:assertEquals( "<signature><name>for-each-pair#3</name><arg>item()*</arg><arg>item()*</arg><arg>function(item(), item()) as item()*</arg><return>item()*</return></signature>") 
function xqfunctions:fn_for-each-pair_3() 
{    
    xqfunctions:inspect(fn:for-each-pair#3) 
}; 

(: Test for "fn:sort#1" :)
declare  %test:assertEquals( "<signature><name>sort#1</name><arg>item()*</arg><return>item()*</return></signature>") 
function xqfunctions:fn_sort_1() 
{    
    xqfunctions:inspect(fn:sort#1) 
}; 

(: Test for "fn:sort#2" :)
declare  %test:assertEquals( "<signature><name>sort#2</name><arg>item()*</arg><arg>xs:string?</arg><return>item()*</return></signature>") 
function xqfunctions:fn_sort_2() 
{    
    xqfunctions:inspect(fn:sort#2) 
}; 

(: Test for "fn:sort#3" :)
declare  %test:assertEquals( "<signature><name>sort#3</name><arg>item()*</arg><arg>xs:string?</arg><arg>function(item()) as xs:anyAtomicType*</arg><return>item()*</return></signature>") 
function xqfunctions:fn_sort_3() 
{    
    xqfunctions:inspect(fn:sort#3) 
}; 

(: Test for "fn:apply#2" :)
declare  %test:assertEquals( "<signature><name>apply#2</name><arg>function(*)</arg><arg>array(*)</arg><return>item()*</return></signature>") 
function xqfunctions:fn_apply_2() 
{    
    xqfunctions:inspect(fn:apply#2) 
}; 

(: Test for "map:merge#1" :)
declare  %test:assertEquals( "<signature><name>map:merge#1</name><arg>map(*)*</arg><return>map(*)</return></signature>") 
function xqfunctions:map_merge_1() 
{    
    xqfunctions:inspect(map:merge#1) 
}; 

(: Test for "map:merge#2" :)
declare  %test:assertEquals( "<signature><name>map:merge#2</name><arg>map(*)*</arg><arg>map(*)</arg><return>map(*)</return></signature>") 
function xqfunctions:map_merge_2() 
{    
    xqfunctions:inspect(map:merge#2) 
}; 

(: Test for "map:keys#1" :)
declare  %test:assertEquals( "<signature><name>map:keys#1</name><arg>map(*)</arg><return>xs:anyAtomicType*</return></signature>") 
function xqfunctions:map_keys_1() 
{    
    xqfunctions:inspect(map:keys#1) 
}; 

(: Test for "map:contains#2" :)
declare  %test:assertEquals( "<signature><name>map:contains#2</name><arg>map(*)</arg><arg>xs:anyAtomicType</arg><return>xs:boolean</return></signature>") 
function xqfunctions:map_contains_2() 
{    
    xqfunctions:inspect(map:contains#2) 
}; 

(: Test for "map:get#2" :)
declare  %test:assertEquals( "<signature><name>map:get#2</name><arg>map(*)</arg><arg>xs:anyAtomicType</arg><return>item()*</return></signature>") 
function xqfunctions:map_get_2() 
{    
    xqfunctions:inspect(map:get#2) 
}; 

(: Test for "map:find#2" :)
declare  %test:assertEquals( "<signature><name>map:find#2</name><arg>item()*</arg><arg>xs:anyAtomicType</arg><return>array(*)</return></signature>") 
function xqfunctions:map_find_2() 
{    
    xqfunctions:inspect(map:find#2) 
}; 

(: Test for "map:put#3" :)
declare  %test:assertEquals( "<signature><name>map:put#3</name><arg>map(*)</arg><arg>xs:anyAtomicType</arg><arg>item()*</arg><return>map(*)</return></signature>") 
function xqfunctions:map_put_3() 
{    
    xqfunctions:inspect(map:put#3) 
}; 

(: Test for "map:entry#2" :)
declare  %test:assertEquals( "<signature><name>map:entry#2</name><arg>xs:anyAtomicType</arg><arg>item()*</arg><return>map(*)</return></signature>") 
function xqfunctions:map_entry_2() 
{    
    xqfunctions:inspect(map:entry#2) 
}; 

(: Test for "map:remove#2" :)
declare  %test:assertEquals( "<signature><name>map:remove#2</name><arg>map(*)</arg><arg>xs:anyAtomicType*</arg><return>map(*)</return></signature>") 
function xqfunctions:map_remove_2() 
{    
    xqfunctions:inspect(map:remove#2) 
}; 

(: Test for "map:for-each#2" :)
declare  %test:assertEquals( "<signature><name>map:for-each#2</name><arg>map(*)</arg><arg>function(xs:anyAtomicType, item()*) as item()*</arg><return>item()*</return></signature>") 
function xqfunctions:map_for-each_2() 
{    
    xqfunctions:inspect(map:for-each#2) 
}; 

(: Test for "map:size#1" :)
declare  %test:assertEquals( "<signature><name>map:size#1</name><arg>map(*)</arg><return>xs:integer</return></signature>") 
function xqfunctions:map_size_1() 
{    
    xqfunctions:inspect(map:size#1) 
}; 

(: Test for "fn:collation-key#1" :)
declare  %test:assertEquals( "<signature><name>collation-key#1</name><arg>xs:string</arg><return>xs:base64Binary</return></signature>") 
function xqfunctions:fn_collation-key_1() 
{    
    xqfunctions:inspect(fn:collation-key#1) 
}; 

(: Test for "fn:collation-key#2" :)
declare  %test:assertEquals( "<signature><name>collation-key#2</name><arg>xs:string</arg><arg>xs:string</arg><return>xs:base64Binary</return></signature>") 
function xqfunctions:fn_collation-key_2() 
{    
    xqfunctions:inspect(fn:collation-key#2) 
}; 

(: Test for "fn:json-to-xml#1" :)
declare  %test:assertEquals( "<signature><name>json-to-xml#1</name><arg>xs:string?</arg><return>document-node()?</return></signature>") 
function xqfunctions:fn_json-to-xml_1() 
{    
    xqfunctions:inspect(fn:json-to-xml#1) 
}; 

(: Test for "fn:json-to-xml#2" :)
declare  %test:assertEquals( "<signature><name>json-to-xml#2</name><arg>xs:string?</arg><arg>map(*)</arg><return>document-node()?</return></signature>") 
function xqfunctions:fn_json-to-xml_2() 
{    
    xqfunctions:inspect(fn:json-to-xml#2) 
}; 

(: Test for "fn:xml-to-json#1" :)
declare  %test:assertEquals( "<signature><name>xml-to-json#1</name><arg>node()?</arg><return>xs:string?</return></signature>") 
function xqfunctions:fn_xml-to-json_1() 
{    
    xqfunctions:inspect(fn:xml-to-json#1) 
}; 

(: Test for "fn:xml-to-json#2" :)
declare  %test:assertEquals( "<signature><name>xml-to-json#2</name><arg>node()?</arg><arg>map(*)</arg><return>xs:string?</return></signature>") 
function xqfunctions:fn_xml-to-json_2() 
{    
    xqfunctions:inspect(fn:xml-to-json#2) 
}; 

(: Test for "fn:parse-json#1" :)
declare  %test:assertEquals( "<signature><name>parse-json#1</name><arg>xs:string?</arg><return>item()?</return></signature>") 
function xqfunctions:fn_parse-json_1() 
{    
    xqfunctions:inspect(fn:parse-json#1) 
}; 

(: Test for "fn:parse-json#2" :)
declare  %test:assertEquals( "<signature><name>parse-json#2</name><arg>xs:string?</arg><arg>map(*)</arg><return>item()?</return></signature>") 
function xqfunctions:fn_parse-json_2() 
{    
    xqfunctions:inspect(fn:parse-json#2) 
}; 

(: Test for "fn:json-doc#1" :)
declare  %test:assertEquals( "<signature><name>json-doc#1</name><arg>xs:string?</arg><return>item()?</return></signature>") 
function xqfunctions:fn_json-doc_1() 
{    
    xqfunctions:inspect(fn:json-doc#1) 
}; 

(: Test for "fn:json-doc#2" :)
declare  %test:assertEquals( "<signature><name>json-doc#2</name><arg>xs:string?</arg><arg>map(*)</arg><return>item()?</return></signature>") 
function xqfunctions:fn_json-doc_2() 
{    
    xqfunctions:inspect(fn:json-doc#2) 
}; 

(: Test for "array:size#1" :)
declare  %test:assertEquals( "<signature><name>array:size#1</name><arg>array(*)</arg><return>xs:integer</return></signature>") 
function xqfunctions:array_size_1() 
{    
    xqfunctions:inspect(array:size#1) 
}; 

(: Test for "array:get#2" :)
declare  %test:assertEquals( "<signature><name>array:get#2</name><arg>array(*)</arg><arg>xs:integer</arg><return>item()*</return></signature>") 
function xqfunctions:array_get_2() 
{    
    xqfunctions:inspect(array:get#2) 
}; 

(: Test for "array:put#3" :)
declare  %test:assertEquals( "<signature><name>array:put#3</name><arg>array(*)</arg><arg>xs:integer</arg><arg>item()*</arg><return>array(*)</return></signature>") 
function xqfunctions:array_put_3() 
{    
    xqfunctions:inspect(array:put#3) 
}; 

(: Test for "array:append#2" :)
declare  %test:assertEquals( "<signature><name>array:append#2</name><arg>array(*)</arg><arg>item()*</arg><return>array(*)</return></signature>") 
function xqfunctions:array_append_2() 
{    
    xqfunctions:inspect(array:append#2) 
}; 

(: Test for "array:join#1" :)
declare  %test:assertEquals( "<signature><name>array:join#1</name><arg>array(*)*</arg><return>array(*)</return></signature>") 
function xqfunctions:array_join_1() 
{    
    xqfunctions:inspect(array:join#1) 
}; 

(: Test for "array:subarray#2" :)
declare  %test:assertEquals( "<signature><name>array:subarray#2</name><arg>array(*)</arg><arg>xs:integer</arg><return>array(*)</return></signature>") 
function xqfunctions:array_subarray_2() 
{    
    xqfunctions:inspect(array:subarray#2) 
}; 

(: Test for "array:subarray#3" :)
declare  %test:assertEquals( "<signature><name>array:subarray#3</name><arg>array(*)</arg><arg>xs:integer</arg><arg>xs:integer</arg><return>array(*)</return></signature>") 
function xqfunctions:array_subarray_3() 
{    
    xqfunctions:inspect(array:subarray#3) 
}; 

(: Test for "array:remove#2" :)
declare  %test:assertEquals( "<signature><name>array:remove#2</name><arg>array(*)</arg><arg>xs:integer*</arg><return>array(*)</return></signature>") 
function xqfunctions:array_remove_2() 
{    
    xqfunctions:inspect(array:remove#2) 
}; 

(: Test for "array:insert-before#3" :)
declare  %test:assertEquals( "<signature><name>array:insert-before#3</name><arg>array(*)</arg><arg>xs:integer</arg><arg>item()*</arg><return>array(*)</return></signature>") 
function xqfunctions:array_insert-before_3() 
{    
    xqfunctions:inspect(array:insert-before#3) 
}; 

(: Test for "array:head#1" :)
declare  %test:assertEquals( "<signature><name>array:head#1</name><arg>array(*)</arg><return>item()*</return></signature>") 
function xqfunctions:array_head_1() 
{    
    xqfunctions:inspect(array:head#1) 
}; 

(: Test for "array:tail#1" :)
declare  %test:assertEquals( "<signature><name>array:tail#1</name><arg>array(*)</arg><return>array(*)</return></signature>") 
function xqfunctions:array_tail_1() 
{    
    xqfunctions:inspect(array:tail#1) 
}; 

(: Test for "array:reverse#1" :)
declare  %test:assertEquals( "<signature><name>array:reverse#1</name><arg>array(*)</arg><return>array(*)</return></signature>") 
function xqfunctions:array_reverse_1() 
{    
    xqfunctions:inspect(array:reverse#1) 
}; 

(: Test for "array:for-each#2" :)
declare  %test:assertEquals( "<signature><name>array:for-each#2</name><arg>array(*)</arg><arg>function(item()*) as item()*</arg><return>array(*)</return></signature>") 
function xqfunctions:array_for-each_2() 
{    
    xqfunctions:inspect(array:for-each#2) 
}; 

(: Test for "array:filter#2" :)
declare  %test:assertEquals( "<signature><name>array:filter#2</name><arg>array(*)</arg><arg>function(item()*) as xs:boolean</arg><return>array(*)</return></signature>") 
function xqfunctions:array_filter_2() 
{    
    xqfunctions:inspect(array:filter#2) 
}; 

(: Test for "array:fold-left#3" :)
declare  %test:assertEquals( "<signature><name>array:fold-left#3</name><arg>array(*)</arg><arg>item()*</arg><arg>function(item()*, item()*) as item()*</arg><return>item()*</return></signature>") 
function xqfunctions:array_fold-left_3() 
{    
    xqfunctions:inspect(array:fold-left#3) 
}; 

(: Test for "array:fold-right#3" :)
declare  %test:assertEquals( "<signature><name>array:fold-right#3</name><arg>array(*)</arg><arg>item()*</arg><arg>function(item()*, item()*) as item()*</arg><return>item()*</return></signature>") 
function xqfunctions:array_fold-right_3() 
{    
    xqfunctions:inspect(array:fold-right#3) 
}; 

(: Test for "array:for-each-pair#3" :)
declare  %test:assertEquals( "<signature><name>array:for-each-pair#3</name><arg>array(*)</arg><arg>array(*)</arg><arg>function(item()*, item()*) as item()*</arg><return>array(*)</return></signature>") 
function xqfunctions:array_for-each-pair_3() 
{    
    xqfunctions:inspect(array:for-each-pair#3) 
}; 

(: Test for "array:sort#1" :)
declare  %test:assertEquals( "<signature><name>array:sort#1</name><arg>array(*)</arg><return>array(*)</return></signature>") 
function xqfunctions:array_sort_1() 
{    
    xqfunctions:inspect(array:sort#1) 
}; 

(: Test for "array:sort#2" :)
declare  %test:assertEquals( "<signature><name>array:sort#2</name><arg>array(*)</arg><arg>xs:string?</arg><return>array(*)</return></signature>") 
function xqfunctions:array_sort_2() 
{    
    xqfunctions:inspect(array:sort#2) 
}; 

(: Test for "array:sort#3" :)
declare  %test:assertEquals( "<signature><name>array:sort#3</name><arg>array(*)</arg><arg>xs:string?</arg><arg>function(item()*) as xs:anyAtomicType*</arg><return>array(*)</return></signature>") 
function xqfunctions:array_sort_3() 
{    
    xqfunctions:inspect(array:sort#3) 
}; 

(: Test for "array:flatten#1" :)
declare  %test:assertEquals( "<signature><name>array:flatten#1</name><arg>item()*</arg><return>item()*</return></signature>") 
function xqfunctions:array_flatten_1() 
{    
    xqfunctions:inspect(array:flatten#1) 
}; 

(: Test for "fn:load-xquery-module#1" :)
declare  %test:assertEquals( "<signature><name>load-xquery-module#1</name><arg>xs:string</arg><return>map(*)</return></signature>") 
function xqfunctions:fn_load-xquery-module_1() 
{    
    xqfunctions:inspect(fn:load-xquery-module#1) 
}; 

(: Test for "fn:load-xquery-module#2" :)
declare  %test:assertEquals( "<signature><name>load-xquery-module#2</name><arg>xs:string</arg><arg>map(*)</arg><return>map(*)</return></signature>") 
function xqfunctions:fn_load-xquery-module_2() 
{    
    xqfunctions:inspect(fn:load-xquery-module#2) 
}; 

(: Test for "fn:transform#1" :)
declare  %test:assertEquals( "<signature><name>transform#1</name><arg>map(*)</arg><return>map(*)</return></signature>") 
function xqfunctions:fn_transform_1() 
{    
    xqfunctions:inspect(fn:transform#1) 
}; 

(: Test for "fn:random-number-generator#0" :)
declare  %test:assertEquals( "<signature><name>random-number-generator#0</name><return>map(xs:string, item())</return></signature>") 
function xqfunctions:fn_random-number-generator_0() 
{    
    xqfunctions:inspect(fn:random-number-generator#0) 
}; 

(: Test for "fn:random-number-generator#1" :)
declare  %test:assertEquals( "<signature><name>random-number-generator#1</name><arg>xs:anyAtomicType?</arg><return>map(xs:string, item())</return></signature>") 
function xqfunctions:fn_random-number-generator_1() 
{    
    xqfunctions:inspect(fn:random-number-generator#1) 
}; 

以上是关于text 在eXist-db中为xquery函数生成函数签名测试的脚本的主要内容,如果未能解决你的问题,请参考以下文章

Fulltext Xquery (Lucene/KWIC) 不适用于“标记”结果。 eXist-db 错误?

在哪里声明 xquery 函数?

eXist-db 压缩:zip 函数是不是添加 XML 声明

eXist-db 上的 XML:错误:XPST0003 意外令牌

XQuery 更新:插入或替换取决于节点是不是存在不可能?

text 查找HTML字符实体并将引用转换为XQuery中与XML兼容的字符