Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joewiz/4ce1a564553d954855fe7500989afe22 to your computer and use it in GitHub Desktop.
Save joewiz/4ce1a564553d954855fe7500989afe22 to your computer and use it in GitHub Desktop.
A script to generate function-signature-tests for xquery functions in eXist-db
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/xpath-functions-31/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";
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/xpath-functions-31/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", "function-signature-tests.xq", $document)
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite errors="12" failures="31" package="http://exist-db.org/xquery/test/xqfunctions"
pending="0" tests="273" time="PT0.19S" timestamp="2022-06-24T09:12:02.005-04:00">
<testcase class="xqfunctions:array_append_2" name="array_append_2"/>
<testcase class="xqfunctions:array_filter_2" name="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 class="xqfunctions:array_flatten_1" name="array_flatten_1"/>
<testcase class="xqfunctions:array_fold-left_3" name="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 class="xqfunctions:array_fold-right_3" name="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 class="xqfunctions:array_for-each-pair_3" name="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 class="xqfunctions:array_for-each_2" name="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 class="xqfunctions:array_get_2" name="array_get_2"/>
<testcase class="xqfunctions:array_head_1" name="array_head_1"/>
<testcase class="xqfunctions:array_insert-before_3" name="array_insert-before_3"/>
<testcase class="xqfunctions:array_join_1" name="array_join_1"/>
<testcase class="xqfunctions:array_put_3" name="array_put_3"/>
<testcase class="xqfunctions:array_remove_2" name="array_remove_2"/>
<testcase class="xqfunctions:array_reverse_1" name="array_reverse_1"/>
<testcase class="xqfunctions:array_size_1" name="array_size_1"/>
<testcase class="xqfunctions:array_sort_1" name="array_sort_1"/>
<testcase class="xqfunctions:array_sort_2" name="array_sort_2"/>
<testcase class="xqfunctions:array_sort_3" name="array_sort_3">
<failure message="assertEquals failed." type="failure-error-code-1"
>&lt;signature&gt;&lt;name&gt;array:sort#3&lt;/name&gt;&lt;arg&gt;array(*)&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;array(*)&lt;/return&gt;&lt;/signature&gt;</failure>
<output>
<signature>
<name>array:sort#3</name>
<arg>array(*)</arg>
<arg>xs:string?</arg>
<arg>function(*)</arg>
<return>array(*)</return>
</signature>
</output>
</testcase>
<testcase class="xqfunctions:array_subarray_2" name="array_subarray_2"/>
<testcase class="xqfunctions:array_subarray_3" name="array_subarray_3"/>
<testcase class="xqfunctions:array_tail_1" name="array_tail_1"/>
<testcase class="xqfunctions:fn_QName_2" name="fn_QName_2"/>
<testcase class="xqfunctions:fn_abs_1" name="fn_abs_1"/>
<testcase class="xqfunctions:fn_adjust-date-to-timezone_1"
name="fn_adjust-date-to-timezone_1"/>
<testcase class="xqfunctions:fn_adjust-date-to-timezone_2"
name="fn_adjust-date-to-timezone_2"/>
<testcase class="xqfunctions:fn_adjust-dateTime-to-timezone_1"
name="fn_adjust-dateTime-to-timezone_1"/>
<testcase class="xqfunctions:fn_adjust-dateTime-to-timezone_2"
name="fn_adjust-dateTime-to-timezone_2"/>
<testcase class="xqfunctions:fn_adjust-time-to-timezone_1"
name="fn_adjust-time-to-timezone_1"/>
<testcase class="xqfunctions:fn_adjust-time-to-timezone_2"
name="fn_adjust-time-to-timezone_2"/>
<testcase class="xqfunctions:fn_analyze-string_2" name="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 class="xqfunctions:fn_analyze-string_3" name="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 class="xqfunctions:fn_apply_2" name="fn_apply_2"/>
<testcase class="xqfunctions:fn_available-environment-variables_0"
name="fn_available-environment-variables_0"/>
<testcase class="xqfunctions:fn_avg_1" name="fn_avg_1"/>
<testcase class="xqfunctions:fn_base-uri_0" name="fn_base-uri_0"/>
<testcase class="xqfunctions:fn_base-uri_1" name="fn_base-uri_1"/>
<testcase class="xqfunctions:fn_boolean_1" name="fn_boolean_1"/>
<testcase class="xqfunctions:fn_ceiling_1" name="fn_ceiling_1"/>
<testcase class="xqfunctions:fn_codepoint-equal_2" name="fn_codepoint-equal_2"/>
<testcase class="xqfunctions:fn_codepoints-to-string_1" name="fn_codepoints-to-string_1"/>
<testcase class="xqfunctions:fn_collation-key_1" name="fn_collation-key_1">
<error
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"
type="err:XPST0017"/>
</testcase>
<testcase class="xqfunctions:fn_collation-key_2" name="fn_collation-key_2">
<error
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"
type="err:XPST0017"/>
</testcase>
<testcase class="xqfunctions:fn_collection_0" name="fn_collection_0"/>
<testcase class="xqfunctions:fn_collection_1" name="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>item()*</return>
</signature>
</output>
</testcase>
<testcase class="xqfunctions:fn_compare_2" name="fn_compare_2"/>
<testcase class="xqfunctions:fn_compare_3" name="fn_compare_3"/>
<testcase class="xqfunctions:fn_concat_3" name="fn_concat_3"/>
<testcase class="xqfunctions:fn_contains-token_2" name="fn_contains-token_2"/>
<testcase class="xqfunctions:fn_contains-token_3" name="fn_contains-token_3">
<failure message="assertEquals failed." type="failure-error-code-1"
>&lt;signature&gt;&lt;name&gt;contains-token#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>contains-token#3</name>
<arg>xs:string*</arg>
<arg>xs:string</arg>
<arg>xs:string?</arg>
<return>xs:boolean</return>
</signature>
</output>
</testcase>
<testcase class="xqfunctions:fn_contains_2" name="fn_contains_2"/>
<testcase class="xqfunctions:fn_contains_3" name="fn_contains_3"/>
<testcase class="xqfunctions:fn_count_1" name="fn_count_1"/>
<testcase class="xqfunctions:fn_current-dateTime_0" name="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 class="xqfunctions:fn_current-date_0" name="fn_current-date_0"/>
<testcase class="xqfunctions:fn_current-time_0" name="fn_current-time_0"/>
<testcase class="xqfunctions:fn_data_0" name="fn_data_0"/>
<testcase class="xqfunctions:fn_data_1" name="fn_data_1"/>
<testcase class="xqfunctions:fn_dateTime_2" name="fn_dateTime_2"/>
<testcase class="xqfunctions:fn_day-from-dateTime_1" name="fn_day-from-dateTime_1"/>
<testcase class="xqfunctions:fn_day-from-date_1" name="fn_day-from-date_1"/>
<testcase class="xqfunctions:fn_days-from-duration_1" name="fn_days-from-duration_1"/>
<testcase class="xqfunctions:fn_deep-equal_2" name="fn_deep-equal_2"/>
<testcase class="xqfunctions:fn_deep-equal_3" name="fn_deep-equal_3"/>
<testcase class="xqfunctions:fn_default-collation_0" name="fn_default-collation_0"/>
<testcase class="xqfunctions:fn_default-language_0" name="fn_default-language_0"/>
<testcase class="xqfunctions:fn_distinct-values_1" name="fn_distinct-values_1"/>
<testcase class="xqfunctions:fn_distinct-values_2" name="fn_distinct-values_2"/>
<testcase class="xqfunctions:fn_doc-available_1" name="fn_doc-available_1"/>
<testcase class="xqfunctions:fn_doc_1" name="fn_doc_1"/>
<testcase class="xqfunctions:fn_document-uri_0" name="fn_document-uri_0"/>
<testcase class="xqfunctions:fn_document-uri_1" name="fn_document-uri_1">
<failure message="assertEquals failed." type="failure-error-code-1"
>&lt;signature&gt;&lt;name&gt;document-uri#1&lt;/name&gt;&lt;arg&gt;node()?&lt;/arg&gt;&lt;return&gt;xs:anyURI?&lt;/return&gt;&lt;/signature&gt;</failure>
<output>
<signature>
<name>document-uri#1</name>
<arg>node()*</arg>
<return>xs:anyURI?</return>
</signature>
</output>
</testcase>
<testcase class="xqfunctions:fn_element-with-id_1" name="fn_element-with-id_1">
<error
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"
type="err:XPST0017"/>
</testcase>
<testcase class="xqfunctions:fn_element-with-id_2" name="fn_element-with-id_2">
<error
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"
type="err:XPST0017"/>
</testcase>
<testcase class="xqfunctions:fn_empty_1" name="fn_empty_1"/>
<testcase class="xqfunctions:fn_encode-for-uri_1" name="fn_encode-for-uri_1"/>
<testcase class="xqfunctions:fn_ends-with_2" name="fn_ends-with_2"/>
<testcase class="xqfunctions:fn_ends-with_3" name="fn_ends-with_3"/>
<testcase class="xqfunctions:fn_environment-variable_1" name="fn_environment-variable_1"/>
<testcase class="xqfunctions:fn_error_0" name="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 class="xqfunctions:fn_error_1" name="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 class="xqfunctions:fn_error_2" name="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 class="xqfunctions:fn_error_3" name="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 class="xqfunctions:fn_escape-html-uri_1" name="fn_escape-html-uri_1"/>
<testcase class="xqfunctions:fn_exactly-one_1" name="fn_exactly-one_1"/>
<testcase class="xqfunctions:fn_exists_1" name="fn_exists_1"/>
<testcase class="xqfunctions:fn_false_0" name="fn_false_0"/>
<testcase class="xqfunctions:fn_filter_2" name="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 class="xqfunctions:fn_floor_1" name="fn_floor_1"/>
<testcase class="xqfunctions:fn_fold-left_3" name="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 class="xqfunctions:fn_fold-right_3" name="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 class="xqfunctions:fn_for-each-pair_3" name="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 class="xqfunctions:fn_for-each_2" name="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 class="xqfunctions:fn_format-dateTime_2" name="fn_format-dateTime_2"/>
<testcase class="xqfunctions:fn_format-dateTime_5" name="fn_format-dateTime_5"/>
<testcase class="xqfunctions:fn_format-date_2" name="fn_format-date_2"/>
<testcase class="xqfunctions:fn_format-date_5" name="fn_format-date_5"/>
<testcase class="xqfunctions:fn_format-integer_2" name="fn_format-integer_2">
<failure message="assertEquals failed." type="failure-error-code-1"
>&lt;signature&gt;&lt;name&gt;format-integer#2&lt;/name&gt;&lt;arg&gt;xs:integer?&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-integer#2</name>
<arg>xs:numeric?</arg>
<arg>xs:string</arg>
<return>xs:string</return>
</signature>
</output>
</testcase>
<testcase class="xqfunctions:fn_format-integer_3" name="fn_format-integer_3">
<failure message="assertEquals failed." type="failure-error-code-1"
>&lt;signature&gt;&lt;name&gt;format-integer#3&lt;/name&gt;&lt;arg&gt;xs:integer?&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-integer#3</name>
<arg>xs:numeric?</arg>
<arg>xs:string</arg>
<arg>xs:string?</arg>
<return>xs:string</return>
</signature>
</output>
</testcase>
<testcase class="xqfunctions:fn_format-number_2" name="fn_format-number_2"/>
<testcase class="xqfunctions:fn_format-number_3" name="fn_format-number_3"/>
<testcase class="xqfunctions:fn_format-time_2" name="fn_format-time_2"/>
<testcase class="xqfunctions:fn_format-time_5" name="fn_format-time_5"/>
<testcase class="xqfunctions:fn_function-arity_1" name="fn_function-arity_1"/>
<testcase class="xqfunctions:fn_function-lookup_2" name="fn_function-lookup_2"/>
<testcase class="xqfunctions:fn_function-name_1" name="fn_function-name_1"/>
<testcase class="xqfunctions:fn_generate-id_0" name="fn_generate-id_0"/>
<testcase class="xqfunctions:fn_generate-id_1" name="fn_generate-id_1"/>
<testcase class="xqfunctions:fn_has-children_0" name="fn_has-children_0"/>
<testcase class="xqfunctions:fn_has-children_1" name="fn_has-children_1"/>
<testcase class="xqfunctions:fn_head_1" name="fn_head_1"/>
<testcase class="xqfunctions:fn_hours-from-dateTime_1" name="fn_hours-from-dateTime_1"/>
<testcase class="xqfunctions:fn_hours-from-duration_1" name="fn_hours-from-duration_1"/>
<testcase class="xqfunctions:fn_hours-from-time_1" name="fn_hours-from-time_1"/>
<testcase class="xqfunctions:fn_id_1" name="fn_id_1"/>
<testcase class="xqfunctions:fn_id_2" name="fn_id_2"/>
<testcase class="xqfunctions:fn_idref_1" name="fn_idref_1"/>
<testcase class="xqfunctions:fn_idref_2" name="fn_idref_2"/>
<testcase class="xqfunctions:fn_implicit-timezone_0" name="fn_implicit-timezone_0"/>
<testcase class="xqfunctions:fn_in-scope-prefixes_1" name="fn_in-scope-prefixes_1"/>
<testcase class="xqfunctions:fn_index-of_2" name="fn_index-of_2"/>
<testcase class="xqfunctions:fn_index-of_3" name="fn_index-of_3"/>
<testcase class="xqfunctions:fn_innermost_1" name="fn_innermost_1"/>
<testcase class="xqfunctions:fn_insert-before_3" name="fn_insert-before_3"/>
<testcase class="xqfunctions:fn_iri-to-uri_1" name="fn_iri-to-uri_1"/>
<testcase class="xqfunctions:fn_json-doc_1" name="fn_json-doc_1"/>
<testcase class="xqfunctions:fn_json-doc_2" name="fn_json-doc_2"/>
<testcase class="xqfunctions:fn_json-to-xml_1" name="fn_json-to-xml_1">
<failure message="assertEquals failed." type="failure-error-code-1"
>&lt;signature&gt;&lt;name&gt;json-to-xml#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>json-to-xml#1</name>
<arg>xs:string?</arg>
<return>item()?</return>
</signature>
</output>
</testcase>
<testcase class="xqfunctions:fn_json-to-xml_2" name="fn_json-to-xml_2">
<failure message="assertEquals failed." type="failure-error-code-1"
>&lt;signature&gt;&lt;name&gt;json-to-xml#2&lt;/name&gt;&lt;arg&gt;xs:string?&lt;/arg&gt;&lt;arg&gt;map(*)&lt;/arg&gt;&lt;return&gt;document-node()?&lt;/return&gt;&lt;/signature&gt;</failure>
<output>
<signature>
<name>json-to-xml#2</name>
<arg>xs:string?</arg>
<arg>map(*)</arg>
<return>item()?</return>
</signature>
</output>
</testcase>
<testcase class="xqfunctions:fn_lang_1" name="fn_lang_1"/>
<testcase class="xqfunctions:fn_lang_2" name="fn_lang_2"/>
<testcase class="xqfunctions:fn_last_0" name="fn_last_0"/>
<testcase class="xqfunctions:fn_load-xquery-module_1" name="fn_load-xquery-module_1"/>
<testcase class="xqfunctions:fn_load-xquery-module_2" name="fn_load-xquery-module_2"/>
<testcase class="xqfunctions:fn_local-name-from-QName_1" name="fn_local-name-from-QName_1"/>
<testcase class="xqfunctions:fn_local-name_0" name="fn_local-name_0"/>
<testcase class="xqfunctions:fn_local-name_1" name="fn_local-name_1"/>
<testcase class="xqfunctions:fn_lower-case_1" name="fn_lower-case_1"/>
<testcase class="xqfunctions:fn_matches_2" name="fn_matches_2"/>
<testcase class="xqfunctions:fn_matches_3" name="fn_matches_3"/>
<testcase class="xqfunctions:fn_max_1" name="fn_max_1"/>
<testcase class="xqfunctions:fn_max_2" name="fn_max_2"/>
<testcase class="xqfunctions:fn_min_1" name="fn_min_1"/>
<testcase class="xqfunctions:fn_min_2" name="fn_min_2"/>
<testcase class="xqfunctions:fn_minutes-from-dateTime_1" name="fn_minutes-from-dateTime_1"/>
<testcase class="xqfunctions:fn_minutes-from-duration_1" name="fn_minutes-from-duration_1"/>
<testcase class="xqfunctions:fn_minutes-from-time_1" name="fn_minutes-from-time_1"/>
<testcase class="xqfunctions:fn_month-from-dateTime_1" name="fn_month-from-dateTime_1"/>
<testcase class="xqfunctions:fn_month-from-date_1" name="fn_month-from-date_1"/>
<testcase class="xqfunctions:fn_months-from-duration_1" name="fn_months-from-duration_1"/>
<testcase class="xqfunctions:fn_name_0" name="fn_name_0"/>
<testcase class="xqfunctions:fn_name_1" name="fn_name_1"/>
<testcase class="xqfunctions:fn_namespace-uri-for-prefix_2"
name="fn_namespace-uri-for-prefix_2"/>
<testcase class="xqfunctions:fn_namespace-uri-from-QName_1"
name="fn_namespace-uri-from-QName_1"/>
<testcase class="xqfunctions:fn_namespace-uri_0" name="fn_namespace-uri_0"/>
<testcase class="xqfunctions:fn_namespace-uri_1" name="fn_namespace-uri_1"/>
<testcase class="xqfunctions:fn_nilled_0" name="fn_nilled_0">
<error
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;"
type="err:XPST0017"/>
</testcase>
<testcase class="xqfunctions:fn_nilled_1" name="fn_nilled_1"/>
<testcase class="xqfunctions:fn_node-name_0" name="fn_node-name_0"/>
<testcase class="xqfunctions:fn_node-name_1" name="fn_node-name_1"/>
<testcase class="xqfunctions:fn_normalize-space_0" name="fn_normalize-space_0"/>
<testcase class="xqfunctions:fn_normalize-space_1" name="fn_normalize-space_1"/>
<testcase class="xqfunctions:fn_normalize-unicode_1" name="fn_normalize-unicode_1"/>
<testcase class="xqfunctions:fn_normalize-unicode_2" name="fn_normalize-unicode_2"/>
<testcase class="xqfunctions:fn_not_1" name="fn_not_1"/>
<testcase class="xqfunctions:fn_number_0" name="fn_number_0"/>
<testcase class="xqfunctions:fn_number_1" name="fn_number_1"/>
<testcase class="xqfunctions:fn_one-or-more_1" name="fn_one-or-more_1"/>
<testcase class="xqfunctions:fn_outermost_1" name="fn_outermost_1"/>
<testcase class="xqfunctions:fn_parse-ietf-date_1" name="fn_parse-ietf-date_1"/>
<testcase class="xqfunctions:fn_parse-json_1" name="fn_parse-json_1"/>
<testcase class="xqfunctions:fn_parse-json_2" name="fn_parse-json_2"/>
<testcase class="xqfunctions:fn_parse-xml-fragment_1" name="fn_parse-xml-fragment_1"/>
<testcase class="xqfunctions:fn_parse-xml_1" name="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 class="xqfunctions:fn_path_0" name="fn_path_0">
<error
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"
type="err:XPST0017"/>
</testcase>
<testcase class="xqfunctions:fn_path_1" name="fn_path_1">
<error
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"
type="err:XPST0017"/>
</testcase>
<testcase class="xqfunctions:fn_position_0" name="fn_position_0"/>
<testcase class="xqfunctions:fn_prefix-from-QName_1" name="fn_prefix-from-QName_1"/>
<testcase class="xqfunctions:fn_random-number-generator_0"
name="fn_random-number-generator_0">
<failure message="assertEquals failed." type="failure-error-code-1"
>&lt;signature&gt;&lt;name&gt;random-number-generator#0&lt;/name&gt;&lt;return&gt;map(xs:string,
item())&lt;/return&gt;&lt;/signature&gt;</failure>
<output>
<signature>
<name>random-number-generator#0</name>
<return>map(*)</return>
</signature>
</output>
</testcase>
<testcase class="xqfunctions:fn_random-number-generator_1"
name="fn_random-number-generator_1">
<failure message="assertEquals failed." type="failure-error-code-1"
>&lt;signature&gt;&lt;name&gt;random-number-generator#1&lt;/name&gt;&lt;arg&gt;xs:anyAtomicType?&lt;/arg&gt;&lt;return&gt;map(xs:string,
item())&lt;/return&gt;&lt;/signature&gt;</failure>
<output>
<signature>
<name>random-number-generator#1</name>
<arg>xs:anyAtomicType?</arg>
<return>map(*)</return>
</signature>
</output>
</testcase>
<testcase class="xqfunctions:fn_remove_2" name="fn_remove_2"/>
<testcase class="xqfunctions:fn_replace_3" name="fn_replace_3"/>
<testcase class="xqfunctions:fn_replace_4" name="fn_replace_4"/>
<testcase class="xqfunctions:fn_resolve-QName_2" name="fn_resolve-QName_2"/>
<testcase class="xqfunctions:fn_resolve-uri_1" name="fn_resolve-uri_1"/>
<testcase class="xqfunctions:fn_resolve-uri_2" name="fn_resolve-uri_2"/>
<testcase class="xqfunctions:fn_reverse_1" name="fn_reverse_1"/>
<testcase class="xqfunctions:fn_root_0" name="fn_root_0"/>
<testcase class="xqfunctions:fn_root_1" name="fn_root_1"/>
<testcase class="xqfunctions:fn_round-half-to-even_1" name="fn_round-half-to-even_1"/>
<testcase class="xqfunctions:fn_round-half-to-even_2" name="fn_round-half-to-even_2"/>
<testcase class="xqfunctions:fn_round_1" name="fn_round_1"/>
<testcase class="xqfunctions:fn_round_2" name="fn_round_2">
<error
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 xs:numeric?) xs:numeric?&#xD;&#xA;"
type="err:XPST0017"/>
</testcase>
<testcase class="xqfunctions:fn_seconds-from-dateTime_1" name="fn_seconds-from-dateTime_1"/>
<testcase class="xqfunctions:fn_seconds-from-duration_1" name="fn_seconds-from-duration_1"/>
<testcase class="xqfunctions:fn_seconds-from-time_1" name="fn_seconds-from-time_1"/>
<testcase class="xqfunctions:fn_serialize_1" name="fn_serialize_1"/>
<testcase class="xqfunctions:fn_serialize_2" name="fn_serialize_2"/>
<testcase class="xqfunctions:fn_sort_1" name="fn_sort_1"/>
<testcase class="xqfunctions:fn_sort_2" name="fn_sort_2"/>
<testcase class="xqfunctions:fn_sort_3" name="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 class="xqfunctions:fn_starts-with_2" name="fn_starts-with_2"/>
<testcase class="xqfunctions:fn_starts-with_3" name="fn_starts-with_3"/>
<testcase class="xqfunctions:fn_static-base-uri_0" name="fn_static-base-uri_0"/>
<testcase class="xqfunctions:fn_string-join_1" name="fn_string-join_1"/>
<testcase class="xqfunctions:fn_string-join_2" name="fn_string-join_2"/>
<testcase class="xqfunctions:fn_string-length_0" name="fn_string-length_0"/>
<testcase class="xqfunctions:fn_string-length_1" name="fn_string-length_1"/>
<testcase class="xqfunctions:fn_string-to-codepoints_1" name="fn_string-to-codepoints_1"/>
<testcase class="xqfunctions:fn_string_0" name="fn_string_0"/>
<testcase class="xqfunctions:fn_string_1" name="fn_string_1"/>
<testcase class="xqfunctions:fn_subsequence_2" name="fn_subsequence_2"/>
<testcase class="xqfunctions:fn_subsequence_3" name="fn_subsequence_3"/>
<testcase class="xqfunctions:fn_substring-after_2" name="fn_substring-after_2"/>
<testcase class="xqfunctions:fn_substring-after_3" name="fn_substring-after_3"/>
<testcase class="xqfunctions:fn_substring-before_2" name="fn_substring-before_2"/>
<testcase class="xqfunctions:fn_substring-before_3" name="fn_substring-before_3"/>
<testcase class="xqfunctions:fn_substring_2" name="fn_substring_2"/>
<testcase class="xqfunctions:fn_substring_3" name="fn_substring_3"/>
<testcase class="xqfunctions:fn_sum_1" name="fn_sum_1"/>
<testcase class="xqfunctions:fn_sum_2" name="fn_sum_2"/>
<testcase class="xqfunctions:fn_tail_1" name="fn_tail_1"/>
<testcase class="xqfunctions:fn_timezone-from-dateTime_1" name="fn_timezone-from-dateTime_1"/>
<testcase class="xqfunctions:fn_timezone-from-date_1" name="fn_timezone-from-date_1"/>
<testcase class="xqfunctions:fn_timezone-from-time_1" name="fn_timezone-from-time_1"/>
<testcase class="xqfunctions:fn_tokenize_1" name="fn_tokenize_1"/>
<testcase class="xqfunctions:fn_tokenize_2" name="fn_tokenize_2"/>
<testcase class="xqfunctions:fn_tokenize_3" name="fn_tokenize_3"/>
<testcase class="xqfunctions:fn_trace_1" name="fn_trace_1"/>
<testcase class="xqfunctions:fn_trace_2" name="fn_trace_2"/>
<testcase class="xqfunctions:fn_transform_1" name="fn_transform_1">
<error
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"
type="err:XPST0017"/>
</testcase>
<testcase class="xqfunctions:fn_translate_3" name="fn_translate_3"/>
<testcase class="xqfunctions:fn_true_0" name="fn_true_0"/>
<testcase class="xqfunctions:fn_unordered_1" name="fn_unordered_1"/>
<testcase class="xqfunctions:fn_unparsed-text-available_1"
name="fn_unparsed-text-available_1"/>
<testcase class="xqfunctions:fn_unparsed-text-available_2"
name="fn_unparsed-text-available_2"/>
<testcase class="xqfunctions:fn_unparsed-text-lines_1" name="fn_unparsed-text-lines_1"/>
<testcase class="xqfunctions:fn_unparsed-text-lines_2" name="fn_unparsed-text-lines_2"/>
<testcase class="xqfunctions:fn_unparsed-text_1" name="fn_unparsed-text_1"/>
<testcase class="xqfunctions:fn_unparsed-text_2" name="fn_unparsed-text_2"/>
<testcase class="xqfunctions:fn_upper-case_1" name="fn_upper-case_1"/>
<testcase class="xqfunctions:fn_uri-collection_0" name="fn_uri-collection_0">
<error
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"
type="err:XPST0017"/>
</testcase>
<testcase class="xqfunctions:fn_uri-collection_1" name="fn_uri-collection_1">
<error
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"
type="err:XPST0017"/>
</testcase>
<testcase class="xqfunctions:fn_xml-to-json_1" name="fn_xml-to-json_1"/>
<testcase class="xqfunctions:fn_xml-to-json_2" name="fn_xml-to-json_2">
<failure message="assertEquals failed." type="failure-error-code-1"
>&lt;signature&gt;&lt;name&gt;xml-to-json#2&lt;/name&gt;&lt;arg&gt;node()?&lt;/arg&gt;&lt;arg&gt;map(*)&lt;/arg&gt;&lt;return&gt;xs:string?&lt;/return&gt;&lt;/signature&gt;</failure>
<output>
<signature>
<name>xml-to-json#2</name>
<arg>node()?</arg>
<arg>map(*)?</arg>
<return>xs:string?</return>
</signature>
</output>
</testcase>
<testcase class="xqfunctions:fn_year-from-dateTime_1" name="fn_year-from-dateTime_1"/>
<testcase class="xqfunctions:fn_year-from-date_1" name="fn_year-from-date_1"/>
<testcase class="xqfunctions:fn_years-from-duration_1" name="fn_years-from-duration_1"/>
<testcase class="xqfunctions:fn_zero-or-one_1" name="fn_zero-or-one_1"/>
<testcase class="xqfunctions:map_contains_2" name="map_contains_2"/>
<testcase class="xqfunctions:map_entry_2" name="map_entry_2"/>
<testcase class="xqfunctions:map_find_2" name="map_find_2">
<error
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"
type="err:XPST0017"/>
</testcase>
<testcase class="xqfunctions:map_for-each_2" name="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 class="xqfunctions:map_get_2" name="map_get_2"/>
<testcase class="xqfunctions:map_keys_1" name="map_keys_1"/>
<testcase class="xqfunctions:map_merge_1" name="map_merge_1"/>
<testcase class="xqfunctions:map_merge_2" name="map_merge_2"/>
<testcase class="xqfunctions:map_put_3" name="map_put_3"/>
<testcase class="xqfunctions:map_remove_2" name="map_remove_2"/>
<testcase class="xqfunctions:map_size_1" name="map_size_1"/>
<testcase class="xqfunctions:math_acos_1" name="math_acos_1"/>
<testcase class="xqfunctions:math_asin_1" name="math_asin_1"/>
<testcase class="xqfunctions:math_atan2_2" name="math_atan2_2"/>
<testcase class="xqfunctions:math_atan_1" name="math_atan_1"/>
<testcase class="xqfunctions:math_cos_1" name="math_cos_1"/>
<testcase class="xqfunctions:math_exp10_1" name="math_exp10_1"/>
<testcase class="xqfunctions:math_exp_1" name="math_exp_1"/>
<testcase class="xqfunctions:math_log10_1" name="math_log10_1"/>
<testcase class="xqfunctions:math_log_1" name="math_log_1"/>
<testcase class="xqfunctions:math_pi_0" name="math_pi_0"/>
<testcase class="xqfunctions:math_pow_2" name="math_pow_2"/>
<testcase class="xqfunctions:math_sin_1" name="math_sin_1"/>
<testcase class="xqfunctions:math_sqrt_1" name="math_sqrt_1"/>
<testcase class="xqfunctions:math_tan_1" name="math_tan_1"/>
</testsuite>
</testsuites>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment