diff options
author | axis <qt-info@nokia.com> | 2009-04-24 11:34:15 (GMT) |
---|---|---|
committer | axis <qt-info@nokia.com> | 2009-04-24 11:34:15 (GMT) |
commit | 8f427b2b914d5b575a4a7c0ed65d2fb8f45acc76 (patch) | |
tree | a17e1a767a89542ab59907462206d7dcf2e504b2 /tests/auto/xmlpatternsxqts | |
download | Qt-8f427b2b914d5b575a4a7c0ed65d2fb8f45acc76.zip Qt-8f427b2b914d5b575a4a7c0ed65d2fb8f45acc76.tar.gz Qt-8f427b2b914d5b575a4a7c0ed65d2fb8f45acc76.tar.bz2 |
Long live Qt for S60!
Diffstat (limited to 'tests/auto/xmlpatternsxqts')
68 files changed, 12499 insertions, 0 deletions
diff --git a/tests/auto/xmlpatternsxqts/.gitattributes b/tests/auto/xmlpatternsxqts/.gitattributes new file mode 100644 index 0000000..11fab7e --- /dev/null +++ b/tests/auto/xmlpatternsxqts/.gitattributes @@ -0,0 +1 @@ +summarizeBaseline.xsl -crlf diff --git a/tests/auto/xmlpatternsxqts/.gitignore b/tests/auto/xmlpatternsxqts/.gitignore new file mode 100644 index 0000000..1c2add2 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/.gitignore @@ -0,0 +1,3 @@ +CandidateBaseline.xml +runTests +tst_xmlpatternsxqts diff --git a/tests/auto/xmlpatternsxqts/Baseline.xml b/tests/auto/xmlpatternsxqts/Baseline.xml new file mode 100644 index 0000000..e295dfb --- /dev/null +++ b/tests/auto/xmlpatternsxqts/Baseline.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<test-suite-result xmlns="http://www.w3.org/2005/02/query-test-XQTSResult"><implementation name="Patternist" version="0.1"><organization name="K Desktop Environment(KDE)" website="http://www.kde.org/"/><submittor name="Frans Englich" email="fenglich@trolltech.com"/><description><p>Patternist is an implementation written in C++ and with the Qt/KDE libraries. It is licensed under GNU LGPL and part of KDE, the K Desktop Environment.</p></description></implementation><syntax>XQuery</syntax><test-run dateRun="2009-01-15"><test-suite version="1.0.3 dev"/></test-run><test-case name="combined-errors-1" result="pass"/><test-case name="combined-errors-2" result="pass"/><test-case name="combined-errors-3" result="pass"/><test-case name="combined-errors-4" result="pass"/><test-case name="K-CombinedErrorCodes-1" result="pass"/><test-case name="K-CombinedErrorCodes-2" result="pass"/><test-case name="K-CombinedErrorCodes-3" result="pass"/><test-case name="K-CombinedErrorCodes-4" result="pass"/><test-case name="K-CombinedErrorCodes-5" result="pass"/><test-case name="K-CombinedErrorCodes-6" result="pass"/><test-case name="K-CombinedErrorCodes-7" result="pass"/><test-case name="K-CombinedErrorCodes-9" result="pass"/><test-case name="K-CombinedErrorCodes-10" result="pass"/><test-case name="K-CombinedErrorCodes-11" result="pass"/><test-case name="K-CombinedErrorCodes-12" result="pass"/><test-case name="K-CombinedErrorCodes-13" result="pass"/><test-case name="K-CombinedErrorCodes-14" result="pass"/><test-case name="K-CombinedErrorCodes-15" result="pass"/><test-case name="static-context-1" result="pass"/><test-case name="sequence-type-1" result="pass"/><test-case name="sequence-type-2" result="pass"/><test-case name="sequence-type-3" result="pass"/><test-case name="sequence-type-4" result="pass"/><test-case name="sequence-type-5" result="pass"/><test-case name="sequence-type-6" result="pass"/><test-case name="sequence-type-7" result="pass"/><test-case name="sequence-type-8" result="pass"/><test-case name="sequence-type-9" result="pass"/><test-case name="sequence-type-10" result="pass"/><test-case name="sequence-type-11" result="pass"/><test-case name="sequence-type-12" result="pass"/><test-case name="sequence-type-13" result="pass"/><test-case name="sequence-type-14" result="pass"/><test-case name="sequence-type-15" result="pass"/><test-case name="sequence-type-16" result="pass"/><test-case name="sequence-type-17" result="pass"/><test-case name="sequence-type-18" result="pass"/><test-case name="sequence-type-19" result="pass"/><test-case name="sequence-type-20" result="pass"/><test-case name="sequence-type-21" result="pass"/><test-case name="Literals001" result="pass"/><test-case name="Literals002" result="pass"/><test-case name="Literals003" result="pass"/><test-case name="Literals004" result="pass"/><test-case name="Literals005" result="pass"/><test-case name="Literals006" result="pass"/><test-case name="Literals007" result="pass"/><test-case name="Literals008" result="pass"/><test-case name="Literals009" result="pass"/><test-case name="Literals010" result="pass"/><test-case name="Literals011" result="pass"/><test-case name="Literals012" result="pass"/><test-case name="Literals013" result="pass"/><test-case name="Literals014" result="pass"/><test-case name="Literals015" result="pass"/><test-case name="Literals016" result="pass"/><test-case name="Literals017" result="pass"/><test-case name="Literals018" result="pass"/><test-case name="Literals019" result="pass"/><test-case name="Literals020" result="pass"/><test-case name="Literals021" result="pass"/><test-case name="Literals022" result="pass"/><test-case name="Literals023" result="pass"/><test-case name="Literals024" result="pass"/><test-case name="Literals025" result="pass"/><test-case name="Literals026" result="pass"/><test-case name="Literals027" result="pass"/><test-case name="Literals028" result="pass"/><test-case name="Literals029" result="pass"/><test-case name="Literals030" result="pass"/><test-case name="Literals031" result="pass"/><test-case name="Literals032" result="pass"/><test-case name="Literals033" result="pass"/><test-case name="Literals034" result="pass"/><test-case name="Literals035" result="pass"/><test-case name="Literals036" result="pass"/><test-case name="Literals037" result="pass"/><test-case name="Literals038" result="pass"/><test-case name="Literals039" result="pass"/><test-case name="Literals040" result="pass"/><test-case name="Literals041" result="pass"/><test-case name="Literals042" result="pass"/><test-case name="Literals043" result="pass"/><test-case name="Literals044" result="pass"/><test-case name="Literals045" result="pass"/><test-case name="Literals046" result="pass"/><test-case name="Literals047" result="pass"/><test-case name="Literals048" result="pass"/><test-case name="Literals049" result="pass"/><test-case name="Literals050" result="pass"/><test-case name="Literals051" result="pass"/><test-case name="Literals052" result="pass"/><test-case name="Literals053" result="pass"/><test-case name="Literals054" result="pass"/><test-case name="Literals055" result="pass"/><test-case name="Literals056" result="pass"/><test-case name="Literals057" result="pass"/><test-case name="Literals058" result="pass"/><test-case name="Literals059" result="pass"/><test-case name="Literals060" result="pass"/><test-case name="Literals061" result="pass"/><test-case name="Literals062" result="pass"/><test-case name="Literals063" result="pass"/><test-case name="Literals064" result="pass"/><test-case name="Literals065" result="pass"/><test-case name="Literals066" result="pass"/><test-case name="Literals067" result="pass"/><test-case name="Literals068" result="pass"/><test-case name="Literals069" result="pass"/><test-case name="K-Literals-1" result="pass"/><test-case name="K-Literals-2" result="pass"/><test-case name="K-Literals-3" result="pass"/><test-case name="K-Literals-4" result="pass"/><test-case name="K-Literals-5" result="pass"/><test-case name="K-Literals-6" result="pass"/><test-case name="K-Literals-7" result="pass"/><test-case name="K-Literals-8" result="pass"/><test-case name="K-Literals-9" result="pass"/><test-case name="K-Literals-10" result="pass"/><test-case name="K-Literals-11" result="pass"/><test-case name="K-Literals-12" result="pass"/><test-case name="K-Literals-13" result="pass"/><test-case name="K-Literals-14" result="pass"/><test-case name="K-Literals-15" result="pass"/><test-case name="K-Literals-16" result="pass"/><test-case name="K-Literals-17" result="pass"/><test-case name="K-Literals-18" result="pass"/><test-case name="K-Literals-19" result="pass"/><test-case name="K-Literals-20" result="pass"/><test-case name="K-Literals-21" result="pass"/><test-case name="K-Literals-22" result="pass"/><test-case name="K-Literals-23" result="pass"/><test-case name="K-Literals-24" result="pass"/><test-case name="K-Literals-25" result="pass"/><test-case name="K-Literals-26" result="pass"/><test-case name="K-Literals-27" result="pass"/><test-case name="K-Literals-28" result="pass"/><test-case name="K-Literals-29" result="pass"/><test-case name="K-Literals-30" result="pass"/><test-case name="K-Literals-31" result="pass"/><test-case name="K-Literals-32" result="pass"/><test-case name="K-Literals-33" result="pass"/><test-case name="K-Literals-34" result="pass"/><test-case name="K-Literals-35" result="pass"/><test-case name="K-Literals-36" result="pass"/><test-case name="K-Literals-37" result="pass"/><test-case name="K-Literals-38" result="pass"/><test-case name="K-Literals-39" result="pass"/><test-case name="K-Literals-40" result="pass"/><test-case name="K-Literals-41" result="pass"/><test-case name="K-Literals-42" result="pass"/><test-case name="K-Literals-43" result="pass"/><test-case name="K-Literals-44" result="pass"/><test-case name="K-Literals-45" result="pass"/><test-case name="K-Literals-46" result="pass"/><test-case name="K-Literals-47" result="pass"/><test-case name="K-Literals-48" result="pass"/><test-case name="K-Literals-49" result="pass"/><test-case name="K-Literals-50" result="pass"/><test-case name="K2-Literals-1" result="fail"/><test-case name="K2-Literals-2" result="pass"/><test-case name="K2-Literals-3" result="pass"/><test-case name="K2-Literals-4" result="fail"/><test-case name="K2-Literals-5" result="fail"/><test-case name="K2-Literals-6" result="fail"/><test-case name="K2-Literals-7" result="fail"/><test-case name="K2-Literals-8" result="fail"/><test-case name="K2-Literals-9" result="fail"/><test-case name="K2-Literals-10" result="fail"/><test-case name="K2-Literals-11" result="pass"/><test-case name="K2-Literals-12" result="pass"/><test-case name="K2-Literals-13" result="pass"/><test-case name="K2-Literals-14" result="pass"/><test-case name="K2-Literals-15" result="pass"/><test-case name="K2-Literals-16" result="fail"/><test-case name="K2-Literals-17" result="fail"/><test-case name="K2-Literals-18" result="fail"/><test-case name="K2-Literals-19" result="fail"/><test-case name="K2-Literals-20" result="pass"/><test-case name="K2-Literals-21" result="pass"/><test-case name="K2-Literals-22" result="fail"/><test-case name="K2-Literals-23" result="fail"/><test-case name="K2-Literals-24" result="fail"/><test-case name="K2-Literals-25" result="fail"/><test-case name="K2-Literals-26" result="pass"/><test-case name="K2-Literals-27" result="pass"/><test-case name="K2-Literals-28" result="pass"/><test-case name="K2-Literals-29" result="pass"/><test-case name="K2-Literals-30" result="pass"/><test-case name="K2-Literals-31" result="pass"/><test-case name="K2-Literals-32" result="pass"/><test-case name="K2-Literals-33" result="pass"/><test-case name="K2-Literals-34" result="pass"/><test-case name="K2-Literals-35" result="pass"/><test-case name="K2-Literals-36" result="pass"/><test-case name="K2-Literals-37" result="pass"/><test-case name="K2-Literals-38" result="pass"/><test-case name="K2-Literals-39" result="pass"/><test-case name="Parenexpr-1" result="pass"/><test-case name="Parenexpr-2" result="pass"/><test-case name="Parenexpr-3" result="pass"/><test-case name="Parenexpr-4" result="pass"/><test-case name="Parenexpr-5" result="pass"/><test-case name="Parenexpr-6" result="pass"/><test-case name="Parenexpr-7" result="pass"/><test-case name="Parenexpr-8" result="pass"/><test-case name="Parenexpr-9" result="pass"/><test-case name="Parenexpr-10" result="pass"/><test-case name="Parenexpr-11" result="pass"/><test-case name="Parenexpr-12" result="pass"/><test-case name="Parenexpr-13" result="pass"/><test-case name="Parenexpr-14" result="pass"/><test-case name="Parenexpr-15" result="pass"/><test-case name="Parenexpr-16" result="pass"/><test-case name="Parenexpr-17" result="pass"/><test-case name="Parenexpr-18" result="pass"/><test-case name="Parenexpr-19" result="pass"/><test-case name="Parenexpr-20" result="pass"/><test-case name="externalcontextitem-1" result="pass"/><test-case name="externalcontextitem-2" result="pass"/><test-case name="externalcontextitem-3" result="pass"/><test-case name="externalcontextitem-4" result="pass"/><test-case name="externalcontextitem-5" result="pass"/><test-case name="externalcontextitem-6" result="pass"/><test-case name="externalcontextitem-7" result="pass"/><test-case name="externalcontextitem-8" result="pass"/><test-case name="externalcontextitem-9" result="pass"/><test-case name="externalcontextitem-10" result="pass"/><test-case name="externalcontextitem-11" result="pass"/><test-case name="externalcontextitem-12" result="pass"/><test-case name="externalcontextitem-13" result="pass"/><test-case name="externalcontextitem-14" result="pass"/><test-case name="externalcontextitem-15" result="pass"/><test-case name="externalcontextitem-16" result="pass"/><test-case name="externalcontextitem-17" result="pass"/><test-case name="externalcontextitem-18" result="pass"/><test-case name="externalcontextitem-19" result="pass"/><test-case name="externalcontextitem-20" result="pass"/><test-case name="externalcontextitem-21" result="pass"/><test-case name="externalcontextitem-22" result="pass"/><test-case name="externalcontextitem-23" result="pass"/><test-case name="externalcontextitem-24" result="pass"/><test-case name="internalcontextitem-1" result="pass"/><test-case name="internalcontextitem-2" result="pass"/><test-case name="internalcontextitem-3" result="pass"/><test-case name="internalcontextitem-4" result="pass"/><test-case name="internalcontextitem-5" result="pass"/><test-case name="internalcontextitem-6" result="pass"/><test-case name="internalcontextitem-7" result="pass"/><test-case name="internalcontextitem-8" result="pass"/><test-case name="internalcontextitem-9" result="pass"/><test-case name="internalcontextitem-10" result="pass"/><test-case name="internalcontextitem-11" result="pass"/><test-case name="internalcontextitem-12" result="pass"/><test-case name="internalcontextitem-13" result="pass"/><test-case name="internalcontextitem-14" result="pass"/><test-case name="internalcontextitem-15" result="pass"/><test-case name="internalcontextitem-16" result="pass"/><test-case name="internalcontextitem-17" result="pass"/><test-case name="internalcontextitem-18" result="pass"/><test-case name="internalcontextitem-19" result="pass"/><test-case name="internalcontextitem-20" result="pass"/><test-case name="internalcontextitem-21" result="pass"/><test-case name="K-FunctionCallExpr-1" result="pass"/><test-case name="K-FunctionCallExpr-2" result="pass"/><test-case name="K-FunctionCallExpr-3" result="pass"/><test-case name="K-FunctionCallExpr-4" result="pass"/><test-case name="K-FunctionCallExpr-5" result="pass"/><test-case name="K-FunctionCallExpr-6" result="pass"/><test-case name="K-FunctionCallExpr-7" result="pass"/><test-case name="K-FunctionCallExpr-8" result="pass"/><test-case name="K-FunctionCallExpr-9" result="pass"/><test-case name="K-FunctionCallExpr-10" result="pass"/><test-case name="K-FunctionCallExpr-11" result="pass"/><test-case name="K-FunctionCallExpr-12" result="pass"/><test-case name="K-FunctionCallExpr-13" result="pass"/><test-case name="K-FunctionCallExpr-14" result="pass"/><test-case name="K-FunctionCallExpr-15" result="pass"/><test-case name="K-FunctionCallExpr-16" result="pass"/><test-case name="K-FunctionCallExpr-17" result="pass"/><test-case name="K-FunctionCallExpr-18" result="pass"/><test-case name="K-FunctionCallExpr-19" result="pass"/><test-case name="K-FunctionCallExpr-20" result="pass"/><test-case name="K-FunctionCallExpr-21" result="pass"/><test-case name="K-FunctionCallExpr-22" result="pass"/><test-case name="K-FunctionCallExpr-23" result="pass"/><test-case name="K-FunctionCallExpr-24" result="pass"/><test-case name="K-FunctionCallExpr-25" result="pass"/><test-case name="K-FunctionCallExpr-26" result="pass"/><test-case name="K-FunctionCallExpr-27" result="pass"/><test-case name="K-FunctionCallExpr-28" result="pass"/><test-case name="K2-FunctionCallExpr-1" result="pass"/><test-case name="K2-FunctionCallExpr-2" result="pass"/><test-case name="K2-FunctionCallExpr-3" result="pass"/><test-case name="K2-FunctionCallExpr-4" result="pass"/><test-case name="K2-FunctionCallExpr-5" result="pass"/><test-case name="K2-FunctionCallExpr-6" result="pass"/><test-case name="K2-FunctionCallExpr-7" result="pass"/><test-case name="K2-FunctionCallExpr-8" result="pass"/><test-case name="K2-FunctionCallExpr-9" result="pass"/><test-case name="K2-FunctionCallExpr-10" result="pass"/><test-case name="K2-FunctionCallExpr-11" result="pass"/><test-case name="K2-FunctionCallExpr-12" result="pass"/><test-case name="K2-FunctionCallExpr-13" result="pass"/><test-case name="PathExprErr-2" result="pass"/><test-case name="K2-Steps-1" result="pass"/><test-case name="K2-Steps-2" result="pass"/><test-case name="K2-Steps-3" result="pass"/><test-case name="K2-Steps-4" result="pass"/><test-case name="K2-Steps-5" result="pass"/><test-case name="K2-Steps-6" result="pass"/><test-case name="K2-Steps-7" result="pass"/><test-case name="K2-Steps-8" result="pass"/><test-case name="K2-Steps-9" result="pass"/><test-case name="K2-Steps-10" result="pass"/><test-case name="K2-Steps-11" result="pass"/><test-case name="K2-Steps-12" result="pass"/><test-case name="K2-Steps-13" result="pass"/><test-case name="K2-Steps-14" result="pass"/><test-case name="K2-Steps-15" result="pass"/><test-case name="K2-Steps-16" result="pass"/><test-case name="K2-Steps-17" result="pass"/><test-case name="K2-Steps-18" result="pass"/><test-case name="K2-Steps-19" result="pass"/><test-case name="K2-Steps-20" result="pass"/><test-case name="K2-Steps-21" result="pass"/><test-case name="K2-Steps-22" result="pass"/><test-case name="K2-Steps-23" result="pass"/><test-case name="K2-Steps-24" result="pass"/><test-case name="K2-Steps-25" result="fail"/><test-case name="K2-Steps-26" result="fail"/><test-case name="K2-Steps-27" result="fail"/><test-case name="K2-Steps-28" result="pass"/><test-case name="K2-Steps-29" result="pass"/><test-case name="K2-Steps-30" result="pass"/><test-case name="K2-Steps-31" result="pass"/><test-case name="K2-Steps-32" result="pass"/><test-case name="K2-Steps-33" result="fail"/><test-case name="K2-Steps-34" result="fail"/><test-case name="K2-Steps-35" result="pass"/><test-case name="Axes001-1" result="pass"/><test-case name="Axes001-2" result="pass"/><test-case name="Axes001-3" result="pass"/><test-case name="Axes002-1" result="pass"/><test-case name="Axes002-2" result="pass"/><test-case name="Axes002-3" result="pass"/><test-case name="Axes002-4" result="pass"/><test-case name="Axes003-1" result="pass"/><test-case name="Axes003-2" result="pass"/><test-case name="Axes003-3" result="pass"/><test-case name="Axes003-4" result="pass"/><test-case name="Axes004-1" result="pass"/><test-case name="Axes004-2" result="pass"/><test-case name="Axes004-3" result="pass"/><test-case name="Axes005-1" result="pass"/><test-case name="Axes005-2" result="pass"/><test-case name="Axes005-3" result="pass"/><test-case name="Axes005-4" result="pass"/><test-case name="Axes006-1" result="pass"/><test-case name="Axes006-2" result="pass"/><test-case name="Axes006-3" result="pass"/><test-case name="Axes006-4" result="pass"/><test-case name="Axes007-1" result="pass"/><test-case name="Axes007-2" result="pass"/><test-case name="Axes007-3" result="pass"/><test-case name="Axes008-1" result="pass"/><test-case name="Axes008-2" result="pass"/><test-case name="Axes008-3" result="pass"/><test-case name="Axes009-1" result="pass"/><test-case name="Axes009-2" result="pass"/><test-case name="Axes009-3" result="pass"/><test-case name="Axes010-1" result="pass"/><test-case name="Axes010-2" result="pass"/><test-case name="Axes010-3" result="pass"/><test-case name="Axes011-1" result="pass"/><test-case name="Axes011-2" result="pass"/><test-case name="Axes011-3" result="pass"/><test-case name="Axes012-1" result="pass"/><test-case name="Axes013-1" result="pass"/><test-case name="Axes014-1" result="pass"/><test-case name="Axes015-1" result="pass"/><test-case name="Axes016-1" result="pass"/><test-case name="Axes017-1" result="pass"/><test-case name="Axes018-1" result="pass"/><test-case name="Axes019-1" result="pass"/><test-case name="Axes020-1" result="pass"/><test-case name="Axes021-1" result="pass"/><test-case name="Axes023-1" result="pass"/><test-case name="Axes027-1" result="pass"/><test-case name="Axes030-1" result="pass"/><test-case name="Axes030-2" result="pass"/><test-case name="Axes031-1" result="pass"/><test-case name="Axes031-2" result="pass"/><test-case name="Axes031-3" result="pass"/><test-case name="Axes031-4" result="pass"/><test-case name="Axes032-1" result="pass"/><test-case name="Axes032-2" result="pass"/><test-case name="Axes032-3" result="pass"/><test-case name="Axes032-4" result="pass"/><test-case name="Axes033-1" result="pass"/><test-case name="Axes033-2" result="pass"/><test-case name="Axes033-3" result="pass"/><test-case name="Axes033-4" result="pass"/><test-case name="Axes034-1" result="pass"/><test-case name="Axes034-2" result="pass"/><test-case name="Axes035-1" result="pass"/><test-case name="Axes035-2" result="pass"/><test-case name="Axes035-3" result="pass"/><test-case name="Axes035-4" result="pass"/><test-case name="Axes036-1" result="pass"/><test-case name="Axes036-2" result="pass"/><test-case name="Axes037-1" result="pass"/><test-case name="Axes037-2" result="pass"/><test-case name="Axes041-1" result="pass"/><test-case name="Axes043-1" result="pass"/><test-case name="Axes043-2" result="pass"/><test-case name="Axes044-1" result="pass"/><test-case name="Axes044-2" result="pass"/><test-case name="Axes045-1" result="pass"/><test-case name="Axes045-2" result="pass"/><test-case name="Axes046-1" result="pass"/><test-case name="Axes046-2" result="pass"/><test-case name="Axes047-1" result="pass"/><test-case name="Axes047-2" result="pass"/><test-case name="Axes048-1" result="pass"/><test-case name="Axes048-2" result="pass"/><test-case name="Axes049-1" result="pass"/><test-case name="Axes049-2" result="pass"/><test-case name="Axes055-1" result="pass"/><test-case name="Axes056-1" result="pass"/><test-case name="Axes056-2" result="pass"/><test-case name="Axes056-3" result="pass"/><test-case name="Axes057-1" result="pass"/><test-case name="Axes057-2" result="pass"/><test-case name="Axes057-3" result="pass"/><test-case name="Axes057-4" result="pass"/><test-case name="Axes058-1" result="pass"/><test-case name="Axes058-2" result="pass"/><test-case name="Axes058-3" result="pass"/><test-case name="Axes059-1" result="pass"/><test-case name="Axes059-2" result="pass"/><test-case name="Axes060-1" result="pass"/><test-case name="Axes060-2" result="pass"/><test-case name="Axes060-3" result="pass"/><test-case name="Axes060-4" result="pass"/><test-case name="Axes061-1" result="pass"/><test-case name="Axes061-2" result="pass"/><test-case name="Axes062-1" result="pass"/><test-case name="Axes062-2" result="pass"/><test-case name="Axes063-1" result="pass"/><test-case name="Axes063-2" result="pass"/><test-case name="Axes063-3" result="pass"/><test-case name="Axes063-4" result="pass"/><test-case name="Axes064-1" result="pass"/><test-case name="Axes064-2" result="pass"/><test-case name="Axes064-3" result="pass"/><test-case name="Axes065-1" result="pass"/><test-case name="Axes065-2" result="pass"/><test-case name="Axes066-1" result="pass"/><test-case name="Axes066-2" result="pass"/><test-case name="Axes066-3" result="pass"/><test-case name="Axes066-4" result="pass"/><test-case name="Axes067-1" result="pass"/><test-case name="Axes067-2" result="pass"/><test-case name="Axes067-3" result="pass"/><test-case name="Axes068-1" result="pass"/><test-case name="Axes068-2" result="pass"/><test-case name="Axes068-3" result="pass"/><test-case name="Axes069-1" result="pass"/><test-case name="Axes069-2" result="pass"/><test-case name="Axes069-3" result="pass"/><test-case name="Axes070-1" result="pass"/><test-case name="Axes070-2" result="pass"/><test-case name="Axes070-3" result="pass"/><test-case name="Axes071-1" result="pass"/><test-case name="Axes071-2" result="pass"/><test-case name="Axes071-3" result="pass"/><test-case name="Axes072-1" result="pass"/><test-case name="Axes072-2" result="pass"/><test-case name="Axes073-1" result="pass"/><test-case name="Axes073-2" result="pass"/><test-case name="Axes074-1" result="pass"/><test-case name="Axes074-2" result="pass"/><test-case name="Axes074-3" result="pass"/><test-case name="Axes074-4" result="pass"/><test-case name="Axes075-1" result="pass"/><test-case name="Axes075-2" result="pass"/><test-case name="Axes075-3" result="pass"/><test-case name="Axes075-4" result="pass"/><test-case name="Axes076-1" result="pass"/><test-case name="Axes076-2" result="pass"/><test-case name="Axes076-3" result="pass"/><test-case name="Axes076-4" result="pass"/><test-case name="Axes077-1" result="pass"/><test-case name="Axes077-2" result="pass"/><test-case name="Axes077-3" result="pass"/><test-case name="Axes078-1" result="pass"/><test-case name="Axes078-2" result="pass"/><test-case name="Axes078-3" result="pass"/><test-case name="Axes078-4" result="pass"/><test-case name="Axes079-1" result="pass"/><test-case name="Axes079-2" result="pass"/><test-case name="Axes079-3" result="pass"/><test-case name="Axes079-4" result="pass"/><test-case name="Axes080-1" result="pass"/><test-case name="Axes080-2" result="pass"/><test-case name="Axes080-3" result="pass"/><test-case name="Axes081-1" result="pass"/><test-case name="Axes081-2" result="pass"/><test-case name="Axes081-3" result="pass"/><test-case name="Axes081-4" result="pass"/><test-case name="Axes082-1" result="pass"/><test-case name="Axes082-2" result="pass"/><test-case name="Axes082-3" result="pass"/><test-case name="Axes083-1" result="pass"/><test-case name="Axes083-2" result="pass"/><test-case name="Axes083-3" result="pass"/><test-case name="Axes084-1" result="pass"/><test-case name="Axes084-2" result="pass"/><test-case name="Axes084-3" result="pass"/><test-case name="Axes084-4" result="pass"/><test-case name="Axes085" result="pass"/><test-case name="Axes086" result="pass"/><test-case name="Axes087" result="pass"/><test-case name="Axes088" result="pass"/><test-case name="Axes089" result="fail" comment="Skipped this test, we crash on it."/><test-case name="axis-err-1" result="pass"/><test-case name="K2-Axes-1" result="pass"/><test-case name="K2-Axes-2" result="pass"/><test-case name="K2-Axes-3" result="pass"/><test-case name="K2-Axes-4" result="pass"/><test-case name="K2-Axes-5" result="pass"/><test-case name="K2-Axes-6" result="pass"/><test-case name="K2-Axes-7" result="pass"/><test-case name="K2-Axes-8" result="pass"/><test-case name="K2-Axes-9" result="pass"/><test-case name="K2-Axes-10" result="pass"/><test-case name="K2-Axes-11" result="pass"/><test-case name="K2-Axes-12" result="pass"/><test-case name="K2-Axes-13" result="pass"/><test-case name="K2-Axes-14" result="pass"/><test-case name="K2-Axes-15" result="pass"/><test-case name="K2-Axes-16" result="pass"/><test-case name="K2-Axes-17" result="pass"/><test-case name="K2-Axes-18" result="pass"/><test-case name="K2-Axes-19" result="pass"/><test-case name="K2-Axes-20" result="pass"/><test-case name="K2-Axes-21" result="pass"/><test-case name="K2-Axes-22" result="pass"/><test-case name="K2-Axes-23" result="pass"/><test-case name="K2-Axes-24" result="pass"/><test-case name="K2-Axes-25" result="pass"/><test-case name="K2-Axes-26" result="pass"/><test-case name="K2-Axes-27" result="pass"/><test-case name="K2-Axes-28" result="pass"/><test-case name="K2-Axes-29" result="pass"/><test-case name="K2-Axes-30" result="pass"/><test-case name="K2-Axes-31" result="pass"/><test-case name="K2-Axes-32" result="pass"/><test-case name="K2-Axes-33" result="pass"/><test-case name="K2-Axes-34" result="pass"/><test-case name="K2-Axes-35" result="pass"/><test-case name="K2-Axes-36" result="pass"/><test-case name="K2-Axes-37" result="pass"/><test-case name="K2-Axes-38" result="pass"/><test-case name="K2-Axes-39" result="pass"/><test-case name="K2-Axes-40" result="pass"/><test-case name="K2-Axes-41" result="pass"/><test-case name="K2-Axes-42" result="pass"/><test-case name="K2-Axes-43" result="pass"/><test-case name="K2-Axes-44" result="pass"/><test-case name="K2-Axes-45" result="pass"/><test-case name="K2-Axes-46" result="pass"/><test-case name="K2-Axes-47" result="pass"/><test-case name="K2-Axes-48" result="pass"/><test-case name="K2-Axes-49" result="pass"/><test-case name="K2-Axes-50" result="pass"/><test-case name="K2-Axes-51" result="pass"/><test-case name="K2-Axes-52" result="pass"/><test-case name="K2-Axes-53" result="pass"/><test-case name="K2-Axes-54" result="pass"/><test-case name="K2-Axes-55" result="pass"/><test-case name="K2-Axes-56" result="pass"/><test-case name="K2-Axes-57" result="pass"/><test-case name="K2-Axes-58" result="pass"/><test-case name="K2-Axes-59" result="pass"/><test-case name="K2-Axes-60" result="pass"/><test-case name="K2-Axes-61" result="pass"/><test-case name="K2-Axes-62" result="pass"/><test-case name="K2-Axes-63" result="pass"/><test-case name="K2-Axes-64" result="pass"/><test-case name="K2-Axes-65" result="pass"/><test-case name="K2-Axes-66" result="pass"/><test-case name="K2-Axes-67" result="pass"/><test-case name="K2-Axes-68" result="pass"/><test-case name="K2-Axes-69" result="pass"/><test-case name="K2-Axes-70" result="pass"/><test-case name="K2-Axes-71" result="pass"/><test-case name="K2-Axes-72" result="pass"/><test-case name="K2-Axes-73" result="pass"/><test-case name="K2-Axes-74" result="pass"/><test-case name="K2-Axes-75" result="pass"/><test-case name="K2-Axes-76" result="pass"/><test-case name="K2-Axes-77" result="pass"/><test-case name="K2-Axes-78" result="pass"/><test-case name="K2-Axes-79" result="pass"/><test-case name="K2-Axes-80" result="pass"/><test-case name="K2-Axes-81" result="pass"/><test-case name="K2-Axes-82" result="pass"/><test-case name="K2-Axes-83" result="pass"/><test-case name="K2-Axes-84" result="pass"/><test-case name="K2-Axes-85" result="pass"/><test-case name="K2-Axes-86" result="pass"/><test-case name="K2-Axes-87" result="pass"/><test-case name="K2-Axes-88" result="pass"/><test-case name="K2-Axes-89" result="pass"/><test-case name="K2-Axes-90" result="pass"/><test-case name="K2-Axes-91" result="pass"/><test-case name="K2-Axes-92" result="pass"/><test-case name="K2-Axes-93" result="pass"/><test-case name="K2-Axes-94" result="pass"/><test-case name="K2-Axes-95" result="pass"/><test-case name="K2-Axes-96" result="pass"/><test-case name="K2-Axes-97" result="pass"/><test-case name="K2-Axes-98" result="pass"/><test-case name="K2-Axes-99" result="pass"/><test-case name="K2-Axes-100" result="pass"/><test-case name="K2-Axes-101" result="pass"/><test-case name="K2-Axes-102" result="pass"/><test-case name="K2-Axes-103" result="pass"/><test-case name="K2-Axes-104" result="pass"/><test-case name="NodeTest001" result="pass"/><test-case name="NodeTest002" result="pass"/><test-case name="NodeTest006" result="pass"/><test-case name="NodeTest007-1" result="pass"/><test-case name="NodeTest007-2" result="pass"/><test-case name="NodeTest008-1" result="pass"/><test-case name="NodeTest008-2" result="pass"/><test-case name="NodeTest009-1" result="pass"/><test-case name="NodeTest009-2" result="pass"/><test-case name="NodeTest010-1" result="pass"/><test-case name="NodeTest010-2" result="pass"/><test-case name="NodeTest011-1" result="pass"/><test-case name="NodeTest011-2" result="pass"/><test-case name="NodeTest012-1" result="pass"/><test-case name="NodeTest012-2" result="pass"/><test-case name="NodeTest013-1" result="pass"/><test-case name="NodeTesthc-1" result="pass"/><test-case name="NodeTesthc-2" result="pass"/><test-case name="NodeTesthc-3" result="pass"/><test-case name="NodeTesthc-4" result="pass"/><test-case name="NodeTesthc-5" result="pass"/><test-case name="NodeTesthc-6" result="pass"/><test-case name="NodeTesthc-7" result="pass"/><test-case name="NodeTesthc-8" result="pass"/><test-case name="K2-NodeTest-1" result="pass"/><test-case name="K2-NodeTest-2" result="pass"/><test-case name="K2-NodeTest-3" result="pass"/><test-case name="K2-NodeTest-4" result="pass"/><test-case name="K2-NodeTest-5" result="pass"/><test-case name="K2-NodeTest-6" result="pass"/><test-case name="K2-NodeTest-7" result="pass"/><test-case name="K2-NodeTest-8" result="pass"/><test-case name="K2-NodeTest-9" result="pass"/><test-case name="K2-NodeTest-10" result="pass"/><test-case name="K2-NodeTest-11" result="pass"/><test-case name="K2-NodeTest-12" result="pass"/><test-case name="K2-NodeTest-13" result="pass"/><test-case name="K2-NodeTest-14" result="pass"/><test-case name="K2-NodeTest-15" result="pass"/><test-case name="K2-NodeTest-16" result="pass"/><test-case name="K2-NodeTest-17" result="pass"/><test-case name="K2-NodeTest-18" result="pass"/><test-case name="K2-NodeTest-19" result="pass"/><test-case name="K2-NodeTest-20" result="pass"/><test-case name="K2-NodeTest-21" result="pass"/><test-case name="K2-NodeTest-22" result="pass"/><test-case name="K2-NodeTest-23" result="pass"/><test-case name="K2-NodeTest-24" result="pass"/><test-case name="K2-NodeTest-25" result="pass"/><test-case name="K2-NodeTest-26" result="pass"/><test-case name="K2-NodeTest-27" result="pass"/><test-case name="K2-NodeTest-28" result="pass"/><test-case name="K2-NodeTest-29" result="pass"/><test-case name="K2-NodeTest-30" result="pass"/><test-case name="K2-NodeTest-31" result="pass"/><test-case name="K2-NodeTest-32" result="pass"/><test-case name="K2-NodeTest-33" result="pass"/><test-case name="K2-NodeTest-34" result="pass"/><test-case name="K2-NodeTest-35" result="pass"/><test-case name="K2-NodeTest-36" result="pass"/><test-case name="K2-NodeTest-37" result="pass"/><test-case name="K2-NodeTest-38" result="pass"/><test-case name="K2-NodeTest-39" result="pass"/><test-case name="K2-NodeTest-40" result="pass"/><test-case name="K2-NodeTest-41" result="fail"/><test-case name="K2-NodeTest-42" result="fail"/><test-case name="K2-NodeTest-43" result="fail"/><test-case name="NodeTest003" result="pass"/><test-case name="NodeTest004" result="pass"/><test-case name="NodeTest005" result="pass"/><test-case name="nametest-1" result="pass"/><test-case name="nametest-2" result="pass"/><test-case name="nametest-3" result="pass"/><test-case name="nametest-4" result="pass"/><test-case name="nametest-5" result="pass"/><test-case name="nametest-6" result="pass"/><test-case name="nametest-7" result="pass"/><test-case name="nametest-8" result="pass"/><test-case name="nametest-9" result="pass"/><test-case name="nametest-10" result="pass"/><test-case name="nametest-11" result="pass"/><test-case name="nametest-12" result="pass"/><test-case name="nametest-13" result="pass"/><test-case name="nametest-14" result="pass"/><test-case name="nametest-15" result="pass"/><test-case name="nametest-16" result="pass"/><test-case name="nametest-17" result="pass"/><test-case name="nametest-18" result="pass"/><test-case name="K-NameTest-1" result="pass"/><test-case name="K-NameTest-2" result="pass"/><test-case name="K-NameTest-3" result="pass"/><test-case name="K-NameTest-4" result="pass"/><test-case name="K-NameTest-5" result="pass"/><test-case name="K-NameTest-6" result="pass"/><test-case name="K-NameTest-7" result="pass"/><test-case name="K-NameTest-8" result="pass"/><test-case name="K-NameTest-9" result="pass"/><test-case name="K-NameTest-10" result="pass"/><test-case name="K-NameTest-11" result="pass"/><test-case name="K2-NameTest-1" result="pass"/><test-case name="K2-NameTest-2" result="pass"/><test-case name="K2-NameTest-3" result="pass"/><test-case name="K2-NameTest-4" result="pass"/><test-case name="K2-NameTest-5" result="pass"/><test-case name="K2-NameTest-6" result="pass"/><test-case name="K2-NameTest-7" result="pass"/><test-case name="K2-NameTest-8" result="pass"/><test-case name="K2-NameTest-9" result="pass"/><test-case name="K2-NameTest-10" result="pass"/><test-case name="K2-NameTest-11" result="pass"/><test-case name="K2-NameTest-12" result="pass"/><test-case name="K2-NameTest-13" result="pass"/><test-case name="K2-NameTest-14" result="pass"/><test-case name="K2-NameTest-15" result="pass"/><test-case name="K2-NameTest-16" result="pass"/><test-case name="K2-NameTest-17" result="pass"/><test-case name="K2-NameTest-18" result="pass"/><test-case name="K2-NameTest-19" result="pass"/><test-case name="K2-NameTest-20" result="pass"/><test-case name="K2-NameTest-21" result="pass"/><test-case name="K2-NameTest-22" result="pass"/><test-case name="K2-NameTest-23" result="pass"/><test-case name="K2-NameTest-24" result="pass"/><test-case name="K2-NameTest-25" result="pass"/><test-case name="K2-NameTest-26" result="pass"/><test-case name="K2-NameTest-27" result="pass"/><test-case name="K2-NameTest-28" result="pass"/><test-case name="K2-NameTest-29" result="pass"/><test-case name="K2-NameTest-30" result="pass"/><test-case name="K2-NameTest-31" result="pass"/><test-case name="K2-NameTest-32" result="pass"/><test-case name="K2-NameTest-33" result="pass"/><test-case name="K2-NameTest-34" result="pass"/><test-case name="K2-NameTest-35" result="pass"/><test-case name="K2-NameTest-36" result="pass"/><test-case name="K2-NameTest-37" result="pass"/><test-case name="K2-NameTest-38" result="pass"/><test-case name="K2-NameTest-39" result="pass"/><test-case name="K2-NameTest-40" result="pass"/><test-case name="K2-NameTest-41" result="pass"/><test-case name="K2-NameTest-42" result="pass"/><test-case name="K2-NameTest-43" result="pass"/><test-case name="K2-NameTest-44" result="pass"/><test-case name="K2-NameTest-45" result="pass"/><test-case name="K2-NameTest-46" result="pass"/><test-case name="K2-NameTest-47" result="pass"/><test-case name="K2-NameTest-48" result="pass"/><test-case name="K2-NameTest-49" result="pass"/><test-case name="K2-NameTest-50" result="pass"/><test-case name="K2-NameTest-51" result="pass"/><test-case name="K2-NameTest-52" result="pass"/><test-case name="K2-NameTest-53" result="pass"/><test-case name="K2-NameTest-54" result="pass"/><test-case name="K2-NameTest-55" result="pass"/><test-case name="K2-NameTest-56" result="pass"/><test-case name="K2-NameTest-57" result="pass"/><test-case name="K2-NameTest-58" result="pass"/><test-case name="K2-NameTest-59" result="pass"/><test-case name="K2-NameTest-60" result="pass"/><test-case name="K2-NameTest-61" result="pass"/><test-case name="K2-NameTest-62" result="pass"/><test-case name="K2-NameTest-63" result="pass"/><test-case name="K2-NameTest-64" result="pass"/><test-case name="K2-NameTest-65" result="pass"/><test-case name="K2-NameTest-66" result="pass"/><test-case name="K2-NameTest-67" result="pass"/><test-case name="K2-NameTest-68" result="fail"/><test-case name="K2-NameTest-69" result="pass"/><test-case name="K2-NameTest-70" result="pass"/><test-case name="K2-NameTest-71" result="pass"/><test-case name="K2-NameTest-72" result="pass"/><test-case name="K2-NameTest-73" result="pass"/><test-case name="K2-NameTest-74" result="pass"/><test-case name="K2-NameTest-75" result="pass"/><test-case name="K2-NameTest-76" result="pass"/><test-case name="K2-NameTest-77" result="pass"/><test-case name="K2-NameTest-78" result="pass"/><test-case name="K2-NameTest-79" result="pass"/><test-case name="K2-NameTest-80" result="pass"/><test-case name="K2-NameTest-81" result="pass"/><test-case name="K2-NameTest-82" result="pass"/><test-case name="K2-NameTest-83" result="pass"/><test-case name="K2-NameTest-84" result="pass"/><test-case name="K2-NameTest-85" result="pass"/><test-case name="K2-NameTest-86" result="pass"/><test-case name="K2-NameTest-87" result="pass"/><test-case name="K2-NameTest-88" result="pass"/><test-case name="K2-NameTest-89" result="pass"/><test-case name="K2-NameTest-90" result="pass"/><test-case name="predicates-1" result="pass"/><test-case name="predicates-2" result="pass"/><test-case name="predicates-3" result="pass"/><test-case name="predicates-4" result="pass"/><test-case name="predicates-5" result="pass"/><test-case name="predicates-6" result="pass"/><test-case name="predicates-7" result="pass"/><test-case name="predicates-8" result="pass"/><test-case name="predicates-9" result="pass"/><test-case name="predicates-10" result="pass"/><test-case name="predicates-11" result="pass"/><test-case name="predicates-12" result="pass"/><test-case name="predicates-13" result="pass"/><test-case name="predicates-14" result="pass"/><test-case name="predicates-17" result="pass"/><test-case name="predicates-18" result="pass"/><test-case name="predicates-19" result="pass"/><test-case name="predicates-20" result="pass"/><test-case name="predicates-21" result="pass"/><test-case name="predicates-22" result="pass"/><test-case name="predicates-23" result="pass"/><test-case name="predicates-24" result="pass"/><test-case name="predicates-25" result="pass"/><test-case name="predicates-26" result="pass"/><test-case name="predicates-27" result="pass"/><test-case name="predicates-28" result="pass"/><test-case name="predicates-29" result="pass"/><test-case name="predicates-30" result="pass"/><test-case name="predicates-31" result="pass"/><test-case name="predicatesns-1" result="pass"/><test-case name="predicatesns-2" result="pass"/><test-case name="predicatesns-3" result="pass"/><test-case name="predicatesns-4" result="pass"/><test-case name="predicatesns-5" result="pass"/><test-case name="predicatesns-6" result="pass"/><test-case name="predicatesns-7" result="pass"/><test-case name="predicatesns-8" result="pass"/><test-case name="predicatesns-9" result="pass"/><test-case name="predicatesns-10" result="pass"/><test-case name="predicatesns-11" result="pass"/><test-case name="predicatesns-12" result="pass"/><test-case name="predicatesns-13" result="pass"/><test-case name="predicatesns-14" result="pass"/><test-case name="K2-Predicates-1" result="pass"/><test-case name="K2-Predicates-2" result="pass"/><test-case name="K2-Predicates-3" result="pass"/><test-case name="K2-Predicates-4" result="pass"/><test-case name="K2-Predicates-5" result="pass"/><test-case name="K2-Predicates-6" result="pass"/><test-case name="K2-Predicates-7" result="pass"/><test-case name="K2-Predicates-8" result="fail"/><test-case name="K2-Predicates-9" result="pass"/><test-case name="unabbreviatedSyntax-1" result="pass"/><test-case name="unabbreviatedSyntax-2" result="pass"/><test-case name="unabbreviatedSyntax-3" result="pass"/><test-case name="unabbreviatedSyntax-4" result="pass"/><test-case name="unabbreviatedSyntax-5" result="pass"/><test-case name="unabbreviatedSyntax-8" result="pass"/><test-case name="unabbreviatedSyntax-9" result="pass"/><test-case name="unabbreviatedSyntax-12" result="pass"/><test-case name="unabbreviatedSyntax-13" result="pass"/><test-case name="unabbreviatedSyntax-14" result="pass"/><test-case name="unabbreviatedSyntax-15" result="pass"/><test-case name="unabbreviatedSyntax-16" result="pass"/><test-case name="unabbreviatedSyntax-18" result="pass"/><test-case name="unabbreviatedSyntax-19" result="pass"/><test-case name="unabbreviatedSyntax-20" result="pass"/><test-case name="unabbreviatedSyntax-21" result="pass"/><test-case name="unabbreviatedSyntax-22" result="pass"/><test-case name="unabbreviatedSyntax-23" result="pass"/><test-case name="unabbreviatedSyntax-26" result="pass"/><test-case name="unabbreviatedSyntax-27" result="pass"/><test-case name="unabbreviatedSyntax-28" result="pass"/><test-case name="unabbreviatedSyntax-29" result="pass"/><test-case name="unabbreviatedSyntax-30" result="pass"/><test-case name="unabbreviatedSyntax-31" result="pass"/><test-case name="unabbreviatedSyntax-32" result="pass"/><test-case name="unabbreviatedSyntax-33" result="fail"/><test-case name="abbreviatedSyntax-1" result="pass"/><test-case name="abbreviatedSyntax-2" result="pass"/><test-case name="abbreviatedSyntax-3" result="pass"/><test-case name="abbreviatedSyntax-5" result="pass"/><test-case name="abbreviatedSyntax-6" result="pass"/><test-case name="abbreviatedSyntax-7" result="pass"/><test-case name="abbreviatedSyntax-8" result="pass"/><test-case name="abbreviatedSyntax-9" result="pass"/><test-case name="abbreviatedSyntax-10" result="pass"/><test-case name="abbreviatedSyntax-12" result="pass"/><test-case name="abbreviatedSyntax-13" result="pass"/><test-case name="abbreviatedSyntax-14" result="pass"/><test-case name="abbreviatedSyntax-16" result="pass"/><test-case name="abbreviatedSyntax-17" result="pass"/><test-case name="abbreviatedSyntax-18" result="pass"/><test-case name="abbreviatedSyntax-19" result="pass"/><test-case name="abbreviatedSyntax-20" result="pass"/><test-case name="abbreviatedSyntax-21" result="pass"/><test-case name="abbreviatedSyntax-22" result="pass"/><test-case name="abbreviatedSyntax-24" result="pass"/><test-case name="abbreviatedSyntax-25" result="pass"/><test-case name="K2-AbbrAxes-1" result="pass"/><test-case name="sequenceexpressionhc1" result="pass"/><test-case name="sequenceexpressionhc2" result="pass"/><test-case name="sequenceexpressionhc3" result="pass"/><test-case name="sequenceexpressionhc4" result="pass"/><test-case name="sequenceexpressionhc5" result="pass"/><test-case name="sequenceexpressionhc6" result="pass"/><test-case name="sequenceexpressionhc7" result="pass"/><test-case name="sequenceexpressionhc8" result="pass"/><test-case name="sequenceexpressionhc9" result="pass"/><test-case name="constSeq-1" result="pass"/><test-case name="constSeq-2" result="pass"/><test-case name="constSeq-3" result="pass"/><test-case name="constSeq-4" result="pass"/><test-case name="constSeq-5" result="pass"/><test-case name="constSeq-6" result="pass"/><test-case name="constSeq-7" result="pass"/><test-case name="constSeq-8" result="pass"/><test-case name="constSeq-9" result="pass"/><test-case name="constSeq-10" result="pass"/><test-case name="constSeq-11" result="pass"/><test-case name="constSeq-12" result="pass"/><test-case name="constSeq-13" result="pass"/><test-case name="constSeq-14" result="pass"/><test-case name="constSeq-15" result="pass"/><test-case name="constSeq-16" result="pass"/><test-case name="constSeq-17" result="pass"/><test-case name="constSeq-18" result="pass"/><test-case name="constSeq-19" result="pass"/><test-case name="constSeq-20" result="pass"/><test-case name="constSeq-21" result="pass"/><test-case name="constSeq-22" result="pass"/><test-case name="op-concatenate-mix-args-001" result="pass"/><test-case name="op-concatenate-mix-args-002" result="pass"/><test-case name="op-concatenate-mix-args-003" result="pass"/><test-case name="op-concatenate-mix-args-004" result="pass"/><test-case name="op-concatenate-mix-args-005" result="pass"/><test-case name="op-concatenate-mix-args-006" result="pass"/><test-case name="op-concatenate-mix-args-007" result="pass"/><test-case name="op-concatenate-mix-args-008" result="pass"/><test-case name="op-concatenate-mix-args-009" result="pass"/><test-case name="op-concatenate-mix-args-010" result="pass"/><test-case name="op-concatenate-mix-args-011" result="pass"/><test-case name="op-concatenate-mix-args-012" result="pass"/><test-case name="op-concatenate-mix-args-013" result="pass"/><test-case name="op-concatenate-mix-args-014" result="pass"/><test-case name="op-concatenate-mix-args-015" result="pass"/><test-case name="op-concatenate-mix-args-016" result="pass"/><test-case name="op-concatenate-mix-args-017" result="pass"/><test-case name="op-concatenate-mix-args-018" result="pass"/><test-case name="op-concatenate-mix-args-019" result="pass"/><test-case name="op-concatenate-mix-args-020" result="pass"/><test-case name="K-commaOp-1" result="pass"/><test-case name="K-commaOp-2" result="pass"/><test-case name="K-commaOp-3" result="pass"/><test-case name="rangeExpr-1" result="pass"/><test-case name="rangeExpr-2" result="pass"/><test-case name="rangeExpr-3" result="pass"/><test-case name="rangeExpr-4" result="pass"/><test-case name="rangeExpr-5" result="pass"/><test-case name="rangeExpr-6" result="pass"/><test-case name="rangeExpr-7" result="pass"/><test-case name="rangeExpr-8" result="pass"/><test-case name="rangeExpr-9" result="pass"/><test-case name="rangeExpr-10" result="pass"/><test-case name="rangeExpr-11" result="pass"/><test-case name="rangeExpr-12" result="pass"/><test-case name="rangeExpr-13" result="pass"/><test-case name="rangeExpr-14" result="pass"/><test-case name="rangeExpr-15" result="pass"/><test-case name="rangeExpr-16" result="pass"/><test-case name="rangeExpr-17" result="pass"/><test-case name="rangeExpr-18" result="pass"/><test-case name="rangeExpr-19" result="pass"/><test-case name="rangeExpr-20" result="pass"/><test-case name="rangeExpr-21" result="pass"/><test-case name="rangeExpr-22" result="pass"/><test-case name="rangeExpr-23" result="pass"/><test-case name="rangeExpr-24" result="pass"/><test-case name="rangeExpr-25" result="pass"/><test-case name="rangeExpr-26" result="pass"/><test-case name="rangeExpr-27" result="pass"/><test-case name="K-RangeExpr-1" result="pass"/><test-case name="K-RangeExpr-2" result="pass"/><test-case name="K-RangeExpr-3" result="pass"/><test-case name="K-RangeExpr-4" result="pass"/><test-case name="K-RangeExpr-5" result="pass"/><test-case name="K-RangeExpr-6" result="pass"/><test-case name="K-RangeExpr-7" result="pass"/><test-case name="K-RangeExpr-8" result="pass"/><test-case name="K-RangeExpr-9" result="pass"/><test-case name="K-RangeExpr-10" result="pass"/><test-case name="K-RangeExpr-11" result="pass"/><test-case name="K-RangeExpr-12" result="pass"/><test-case name="K-RangeExpr-13" result="pass"/><test-case name="K-RangeExpr-14" result="pass"/><test-case name="K-RangeExpr-15" result="pass"/><test-case name="K-RangeExpr-16" result="pass"/><test-case name="K-RangeExpr-17" result="pass"/><test-case name="K-RangeExpr-18" result="pass"/><test-case name="K-RangeExpr-19" result="pass"/><test-case name="K-RangeExpr-20" result="pass"/><test-case name="K-RangeExpr-21" result="pass"/><test-case name="K-RangeExpr-22" result="pass"/><test-case name="K-RangeExpr-23" result="pass"/><test-case name="K-RangeExpr-24" result="pass"/><test-case name="K-RangeExpr-25" result="pass"/><test-case name="K-RangeExpr-26" result="pass"/><test-case name="K-RangeExpr-27" result="pass"/><test-case name="K-RangeExpr-28" result="pass"/><test-case name="K-RangeExpr-29" result="pass"/><test-case name="K-RangeExpr-30" result="pass"/><test-case name="K-RangeExpr-31" result="pass"/><test-case name="K-RangeExpr-32" result="pass"/><test-case name="K-RangeExpr-33" result="pass"/><test-case name="K-RangeExpr-34" result="pass"/><test-case name="K-RangeExpr-35" result="pass"/><test-case name="K-RangeExpr-36" result="pass"/><test-case name="K2-RangeExpr-1" result="pass"/><test-case name="K2-RangeExpr-2" result="pass"/><test-case name="K2-RangeExpr-3" result="pass"/><test-case name="K2-RangeExpr-4" result="pass"/><test-case name="filterexpressionhc1" result="pass"/><test-case name="filterexpressionhc2" result="pass"/><test-case name="filterexpressionhc3" result="pass"/><test-case name="filterexpressionhc4" result="pass"/><test-case name="filterexpressionhc5" result="pass"/><test-case name="filterexpressionhc6" result="pass"/><test-case name="filterexpressionhc7" result="pass"/><test-case name="filterexpressionhc8" result="pass"/><test-case name="filterexpressionhc9" result="pass"/><test-case name="filterexpressionhc10" result="pass"/><test-case name="filterexpressionhc11" result="pass"/><test-case name="filterexpressionhc12" result="pass"/><test-case name="filterexpressionhc13" result="pass"/><test-case name="filterexpressionhc14" result="pass"/><test-case name="filterexpressionhc15" result="pass"/><test-case name="filterexpressionhc16" result="pass"/><test-case name="filterexpressionhc17" result="pass"/><test-case name="filterexpressionhc18" result="pass"/><test-case name="filterexpressionhc19" result="pass"/><test-case name="filterexpressionhc20" result="pass"/><test-case name="filterexpressionhc21" result="pass"/><test-case name="filterexpressionhc22" result="pass"/><test-case name="K-FilterExpr-1" result="pass"/><test-case name="K-FilterExpr-2" result="pass"/><test-case name="K-FilterExpr-3" result="pass"/><test-case name="K-FilterExpr-4" result="pass"/><test-case name="K-FilterExpr-5" result="pass"/><test-case name="K-FilterExpr-6" result="pass"/><test-case name="K-FilterExpr-7" result="pass"/><test-case name="K-FilterExpr-8" result="pass"/><test-case name="K-FilterExpr-9" result="pass"/><test-case name="K-FilterExpr-10" result="pass"/><test-case name="K-FilterExpr-11" result="pass"/><test-case name="K-FilterExpr-12" result="pass"/><test-case name="K-FilterExpr-13" result="pass"/><test-case name="K-FilterExpr-14" result="pass"/><test-case name="K-FilterExpr-15" result="pass"/><test-case name="K-FilterExpr-16" result="pass"/><test-case name="K-FilterExpr-17" result="pass"/><test-case name="K-FilterExpr-18" result="pass"/><test-case name="K-FilterExpr-19" result="pass"/><test-case name="K-FilterExpr-20" result="pass"/><test-case name="K-FilterExpr-21" result="pass"/><test-case name="K-FilterExpr-22" result="pass"/><test-case name="K-FilterExpr-23" result="pass"/><test-case name="K-FilterExpr-24" result="pass"/><test-case name="K-FilterExpr-25" result="pass"/><test-case name="K-FilterExpr-26" result="pass"/><test-case name="K-FilterExpr-27" result="pass"/><test-case name="K-FilterExpr-28" result="pass"/><test-case name="K-FilterExpr-29" result="pass"/><test-case name="K-FilterExpr-30" result="pass"/><test-case name="K-FilterExpr-31" result="pass"/><test-case name="K-FilterExpr-32" result="pass"/><test-case name="K-FilterExpr-33" result="pass"/><test-case name="K-FilterExpr-34" result="pass"/><test-case name="K-FilterExpr-35" result="pass"/><test-case name="K-FilterExpr-36" result="pass"/><test-case name="K-FilterExpr-37" result="pass"/><test-case name="K-FilterExpr-38" result="pass"/><test-case name="K-FilterExpr-39" result="pass"/><test-case name="K-FilterExpr-40" result="pass"/><test-case name="K-FilterExpr-41" result="pass"/><test-case name="K-FilterExpr-42" result="pass"/><test-case name="K-FilterExpr-43" result="pass"/><test-case name="K-FilterExpr-44" result="pass"/><test-case name="K-FilterExpr-45" result="pass"/><test-case name="K-FilterExpr-46" result="pass"/><test-case name="K-FilterExpr-47" result="pass"/><test-case name="K-FilterExpr-48" result="pass"/><test-case name="K-FilterExpr-49" result="pass"/><test-case name="K-FilterExpr-50" result="pass"/><test-case name="K-FilterExpr-51" result="pass"/><test-case name="K-FilterExpr-52" result="pass"/><test-case name="K-FilterExpr-53" result="pass"/><test-case name="K-FilterExpr-54" result="pass"/><test-case name="K-FilterExpr-55" result="pass"/><test-case name="K-FilterExpr-56" result="pass"/><test-case name="K-FilterExpr-57" result="pass"/><test-case name="K-FilterExpr-58" result="pass"/><test-case name="K-FilterExpr-59" result="pass"/><test-case name="K-FilterExpr-60" result="pass"/><test-case name="K-FilterExpr-61" result="pass"/><test-case name="K-FilterExpr-62" result="pass"/><test-case name="K-FilterExpr-63" result="pass"/><test-case name="K-FilterExpr-64" result="pass"/><test-case name="K-FilterExpr-65" result="pass"/><test-case name="K-FilterExpr-66" result="pass"/><test-case name="K-FilterExpr-67" result="pass"/><test-case name="K-FilterExpr-68" result="pass"/><test-case name="K-FilterExpr-69" result="pass"/><test-case name="K-FilterExpr-70" result="pass"/><test-case name="K-FilterExpr-71" result="pass"/><test-case name="K-FilterExpr-72" result="pass"/><test-case name="K-FilterExpr-73" result="pass"/><test-case name="K-FilterExpr-74" result="pass"/><test-case name="K-FilterExpr-75" result="pass"/><test-case name="K-FilterExpr-76" result="pass"/><test-case name="K-FilterExpr-77" result="pass"/><test-case name="K-FilterExpr-78" result="pass"/><test-case name="K-FilterExpr-79" result="pass"/><test-case name="K-FilterExpr-80" result="pass"/><test-case name="K-FilterExpr-81" result="pass"/><test-case name="K-FilterExpr-82" result="pass"/><test-case name="K-FilterExpr-83" result="pass"/><test-case name="K-FilterExpr-84" result="pass"/><test-case name="K-FilterExpr-85" result="pass"/><test-case name="K-FilterExpr-86" result="pass"/><test-case name="K-FilterExpr-87" result="pass"/><test-case name="K-FilterExpr-88" result="pass"/><test-case name="K-FilterExpr-89" result="pass"/><test-case name="K-FilterExpr-90" result="pass"/><test-case name="K-FilterExpr-91" result="pass"/><test-case name="K-FilterExpr-92" result="pass"/><test-case name="K-FilterExpr-93" result="pass"/><test-case name="K-FilterExpr-94" result="pass"/><test-case name="K2-FilterExpr-1" result="pass"/><test-case name="K2-FilterExpr-2" result="pass"/><test-case name="K2-FilterExpr-3" result="pass"/><test-case name="K2-FilterExpr-4" result="pass"/><test-case name="K2-FilterExpr-5" result="pass"/><test-case name="K2-FilterExpr-6" result="pass"/><test-case name="K2-FilterExpr-7" result="pass"/><test-case name="K2-FilterExpr-8" result="pass"/><test-case name="combiningnodeseqhc1" result="pass"/><test-case name="combiningnodeseqhc2" result="pass"/><test-case name="combiningnodeseqhc3" result="pass"/><test-case name="combiningnodeseqhc4" result="pass"/><test-case name="combiningnodeseqhc5" result="pass"/><test-case name="combiningnodeseqhc6" result="pass"/><test-case name="combiningnodeseqhc7" result="pass"/><test-case name="combiningnodeseqhc8" result="pass"/><test-case name="combiningnodeseqhc9" result="pass"/><test-case name="combiningnodeseqhc10" result="pass"/><test-case name="combiningnodeseqexcepthc1" result="pass"/><test-case name="combiningnodeseqexcepthc2" result="pass"/><test-case name="combiningnodeseqexcepthc3" result="pass"/><test-case name="combiningnodeseqexcepthc4" result="pass"/><test-case name="combiningnodeseqexcepthc5" result="pass"/><test-case name="combiningnodeseqexcepthc6" result="pass"/><test-case name="combiningnodeseqintersecthc1" result="pass"/><test-case name="combiningnodeseqintersecthc2" result="pass"/><test-case name="combiningnodeseqintersecthc3" result="pass"/><test-case name="combiningnodeseqintersecthc4" result="pass"/><test-case name="op-numeric-addint2args-1" result="pass"/><test-case name="op-numeric-addint2args-2" result="pass"/><test-case name="op-numeric-addint2args-3" result="pass"/><test-case name="op-numeric-addint2args-4" result="pass"/><test-case name="op-numeric-addintg2args-1" result="pass"/><test-case name="op-numeric-addintg2args-2" result="pass"/><test-case name="op-numeric-addintg2args-3" result="pass"/><test-case name="op-numeric-addintg2args-4" result="pass"/><test-case name="op-numeric-adddec2args-1" result="fail"/><test-case name="op-numeric-adddec2args-2" result="pass"/><test-case name="op-numeric-adddec2args-3" result="fail"/><test-case name="op-numeric-adddec2args-4" result="pass"/><test-case name="op-numeric-adddbl2args-1" result="pass"/><test-case name="op-numeric-adddbl2args-2" result="pass"/><test-case name="op-numeric-adddbl2args-3" result="pass"/><test-case name="op-numeric-adddbl2args-4" result="pass"/><test-case name="op-numeric-addflt2args-1" result="pass"/><test-case name="op-numeric-addflt2args-2" result="pass"/><test-case name="op-numeric-addflt2args-3" result="pass"/><test-case name="op-numeric-addflt2args-4" result="pass"/><test-case name="op-numeric-addlng2args-1" result="pass"/><test-case name="op-numeric-addlng2args-2" result="pass"/><test-case name="op-numeric-addlng2args-3" result="pass"/><test-case name="op-numeric-addlng2args-4" result="pass"/><test-case name="op-numeric-addusht2args-1" result="pass"/><test-case name="op-numeric-addusht2args-2" result="pass"/><test-case name="op-numeric-addusht2args-3" result="pass"/><test-case name="op-numeric-addusht2args-4" result="pass"/><test-case name="op-numeric-addusht2args-5" result="pass"/><test-case name="op-numeric-addnint2args-1" result="pass"/><test-case name="op-numeric-addnint2args-2" result="pass"/><test-case name="op-numeric-addnint2args-3" result="pass"/><test-case name="op-numeric-addnint2args-4" result="pass"/><test-case name="op-numeric-addpint2args-1" result="pass"/><test-case name="op-numeric-addpint2args-2" result="pass"/><test-case name="op-numeric-addpint2args-3" result="pass"/><test-case name="op-numeric-addpint2args-4" result="pass"/><test-case name="op-numeric-addpint2args-5" result="pass"/><test-case name="op-numeric-addulng2args-1" result="pass"/><test-case name="op-numeric-addulng2args-2" result="pass"/><test-case name="op-numeric-addulng2args-3" result="pass"/><test-case name="op-numeric-addulng2args-4" result="pass"/><test-case name="op-numeric-addulng2args-5" result="pass"/><test-case name="op-numeric-addnpi2args-1" result="pass"/><test-case name="op-numeric-addnpi2args-2" result="pass"/><test-case name="op-numeric-addnpi2args-3" result="pass"/><test-case name="op-numeric-addnpi2args-4" result="pass"/><test-case name="op-numeric-addnni2args-1" result="pass"/><test-case name="op-numeric-addnni2args-2" result="pass"/><test-case name="op-numeric-addnni2args-3" result="pass"/><test-case name="op-numeric-addnni2args-4" result="pass"/><test-case name="op-numeric-addnni2args-5" result="pass"/><test-case name="op-numeric-addsht2args-1" result="pass"/><test-case name="op-numeric-addsht2args-2" result="pass"/><test-case name="op-numeric-addsht2args-3" result="pass"/><test-case name="op-numeric-addsht2args-4" result="pass"/><test-case name="op-numeric-addmix2args-1" result="pass"/><test-case name="op-numeric-addmix2args-2" result="pass"/><test-case name="op-numeric-addmix2args-3" result="pass"/><test-case name="op-numeric-addmix2args-4" result="pass"/><test-case name="op-numeric-addmix2args-5" result="pass"/><test-case name="op-numeric-addmix2args-6" result="pass"/><test-case name="op-numeric-addmix2args-7" result="pass"/><test-case name="op-numeric-addmix2args-8" result="pass"/><test-case name="op-numeric-addmix2args-9" result="pass"/><test-case name="op-numeric-add-derived-1" result="pass"/><test-case name="op-numeric-add-derived-2" result="pass"/><test-case name="op-numeric-add-derived-3" result="pass"/><test-case name="op-numeric-add-derived-4" result="pass"/><test-case name="op-numeric-add-derived-5" result="pass"/><test-case name="K-NumericAdd-1" result="pass"/><test-case name="K-NumericAdd-2" result="pass"/><test-case name="K-NumericAdd-3" result="pass"/><test-case name="K-NumericAdd-4" result="pass"/><test-case name="K-NumericAdd-5" result="fail"/><test-case name="K-NumericAdd-6" result="fail"/><test-case name="K-NumericAdd-7" result="pass"/><test-case name="K-NumericAdd-8" result="pass"/><test-case name="K-NumericAdd-9" result="pass"/><test-case name="K-NumericAdd-10" result="pass"/><test-case name="K-NumericAdd-11" result="pass"/><test-case name="K-NumericAdd-12" result="pass"/><test-case name="K-NumericAdd-13" result="pass"/><test-case name="K-NumericAdd-14" result="pass"/><test-case name="K-NumericAdd-15" result="pass"/><test-case name="K-NumericAdd-16" result="pass"/><test-case name="K-NumericAdd-17" result="pass"/><test-case name="K-NumericAdd-18" result="pass"/><test-case name="K-NumericAdd-19" result="pass"/><test-case name="K-NumericAdd-20" result="pass"/><test-case name="K-NumericAdd-21" result="pass"/><test-case name="K-NumericAdd-22" result="pass"/><test-case name="K-NumericAdd-23" result="pass"/><test-case name="K-NumericAdd-24" result="pass"/><test-case name="K-NumericAdd-25" result="pass"/><test-case name="K-NumericAdd-26" result="pass"/><test-case name="K-NumericAdd-27" result="pass"/><test-case name="K-NumericAdd-28" result="pass"/><test-case name="K-NumericAdd-29" result="pass"/><test-case name="K-NumericAdd-30" result="pass"/><test-case name="K-NumericAdd-31" result="pass"/><test-case name="K-NumericAdd-32" result="pass"/><test-case name="K-NumericAdd-33" result="pass"/><test-case name="K-NumericAdd-34" result="pass"/><test-case name="K-NumericAdd-35" result="pass"/><test-case name="K-NumericAdd-36" result="pass"/><test-case name="K-NumericAdd-37" result="pass"/><test-case name="K-NumericAdd-38" result="pass"/><test-case name="K-NumericAdd-39" result="pass"/><test-case name="K-NumericAdd-40" result="pass"/><test-case name="K-NumericAdd-41" result="pass"/><test-case name="K-NumericAdd-42" result="pass"/><test-case name="K-NumericAdd-43" result="pass"/><test-case name="K-NumericAdd-44" result="pass"/><test-case name="K-NumericAdd-45" result="pass"/><test-case name="K-NumericAdd-46" result="pass"/><test-case name="K-NumericAdd-47" result="pass"/><test-case name="K-NumericAdd-48" result="pass"/><test-case name="K-NumericAdd-49" result="pass"/><test-case name="K-NumericAdd-50" result="pass"/><test-case name="K-NumericAdd-51" result="pass"/><test-case name="K-NumericAdd-52" result="pass"/><test-case name="K-NumericAdd-53" result="pass"/><test-case name="K-NumericAdd-54" result="pass"/><test-case name="K-NumericAdd-55" result="pass"/><test-case name="K-NumericAdd-56" result="pass"/><test-case name="K-NumericAdd-57" result="pass"/><test-case name="K-NumericAdd-58" result="pass"/><test-case name="K-NumericAdd-59" result="pass"/><test-case name="K-NumericAdd-60" result="pass"/><test-case name="K-NumericAdd-61" result="pass"/><test-case name="K-NumericAdd-62" result="pass"/><test-case name="K-NumericAdd-63" result="pass"/><test-case name="K-NumericAdd-64" result="pass"/><test-case name="K-NumericAdd-65" result="pass"/><test-case name="K-NumericAdd-66" result="pass"/><test-case name="K2-NumericAdd-1" result="pass"/><test-case name="K2-NumericAdd-2" result="pass"/><test-case name="K2-NumericAdd-3" result="pass"/><test-case name="op-numeric-subtractint2args-1" result="pass"/><test-case name="op-numeric-subtractint2args-2" result="pass"/><test-case name="op-numeric-subtractint2args-3" result="pass"/><test-case name="op-numeric-subtractint2args-4" result="pass"/><test-case name="op-numeric-subtractint2args-5" result="pass"/><test-case name="op-numeric-subtractintg2args-1" result="pass"/><test-case name="op-numeric-subtractintg2args-2" result="pass"/><test-case name="op-numeric-subtractintg2args-3" result="pass"/><test-case name="op-numeric-subtractintg2args-4" result="pass"/><test-case name="op-numeric-subtractintg2args-5" result="pass"/><test-case name="op-numeric-subtractdec2args-1" result="pass"/><test-case name="op-numeric-subtractdec2args-2" result="fail"/><test-case name="op-numeric-subtractdec2args-3" result="fail"/><test-case name="op-numeric-subtractdec2args-4" result="fail"/><test-case name="op-numeric-subtractdec2args-5" result="fail"/><test-case name="op-numeric-subtractdbl2args-1" result="pass"/><test-case name="op-numeric-subtractdbl2args-2" result="pass"/><test-case name="op-numeric-subtractdbl2args-3" result="pass"/><test-case name="op-numeric-subtractdbl2args-4" result="pass"/><test-case name="op-numeric-subtractdbl2args-5" result="pass"/><test-case name="op-numeric-subtractflt2args-1" result="pass"/><test-case name="op-numeric-subtractflt2args-2" result="pass"/><test-case name="op-numeric-subtractflt2args-3" result="pass"/><test-case name="op-numeric-subtractflt2args-4" result="pass"/><test-case name="op-numeric-subtractflt2args-5" result="pass"/><test-case name="op-numeric-subtractlng2args-1" result="pass"/><test-case name="op-numeric-subtractlng2args-2" result="pass"/><test-case name="op-numeric-subtractlng2args-3" result="pass"/><test-case name="op-numeric-subtractlng2args-4" result="pass"/><test-case name="op-numeric-subtractlng2args-5" result="pass"/><test-case name="op-numeric-subtractusht2args-1" result="pass"/><test-case name="op-numeric-subtractusht2args-2" result="pass"/><test-case name="op-numeric-subtractusht2args-3" result="pass"/><test-case name="op-numeric-subtractusht2args-4" result="pass"/><test-case name="op-numeric-subtractusht2args-5" result="pass"/><test-case name="op-numeric-subtractnint2args-1" result="pass"/><test-case name="op-numeric-subtractnint2args-2" result="pass"/><test-case name="op-numeric-subtractpint2args-1" result="pass"/><test-case name="op-numeric-subtractpint2args-2" result="pass"/><test-case name="op-numeric-subtractpint2args-3" result="pass"/><test-case name="op-numeric-subtractulng2args-1" result="pass"/><test-case name="op-numeric-subtractulng2args-2" result="pass"/><test-case name="op-numeric-subtractulng2args-3" result="pass"/><test-case name="op-numeric-subtractulng2args-4" result="pass"/><test-case name="op-numeric-subtractulng2args-5" result="pass"/><test-case name="op-numeric-subtractnpi2args-1" result="pass"/><test-case name="op-numeric-subtractnpi2args-2" result="pass"/><test-case name="op-numeric-subtractnpi2args-3" result="pass"/><test-case name="op-numeric-subtractnpi2args-4" result="pass"/><test-case name="op-numeric-subtractnpi2args-5" result="pass"/><test-case name="op-numeric-subtractnni2args-1" result="pass"/><test-case name="op-numeric-subtractnni2args-2" result="pass"/><test-case name="op-numeric-subtractnni2args-3" result="pass"/><test-case name="op-numeric-subtractnni2args-4" result="pass"/><test-case name="op-numeric-subtractnni2args-5" result="pass"/><test-case name="op-numeric-subtractsht2args-1" result="pass"/><test-case name="op-numeric-subtractsht2args-2" result="pass"/><test-case name="op-numeric-subtractsht2args-3" result="pass"/><test-case name="op-numeric-subtractsht2args-4" result="pass"/><test-case name="op-numeric-subtractsht2args-5" result="pass"/><test-case name="op-numeric-subtractmix2args-1" result="pass"/><test-case name="op-numeric-subtractmix2args-2" result="pass"/><test-case name="op-numeric-subtractmix2args-3" result="pass"/><test-case name="op-numeric-subtractmix2args-4" result="pass"/><test-case name="op-numeric-subtractmix2args-5" result="pass"/><test-case name="op-numeric-subtractmix2args-6" result="pass"/><test-case name="op-numeric-subtractmix2args-7" result="pass"/><test-case name="op-numeric-subtractmix2args-8" result="pass"/><test-case name="op-numeric-subtractmix2args-9" result="pass"/><test-case name="K-NumericSubtract-1" result="pass"/><test-case name="K-NumericSubtract-2" result="pass"/><test-case name="K-NumericSubtract-3" result="pass"/><test-case name="K-NumericSubtract-4" result="pass"/><test-case name="K-NumericSubtract-5" result="pass"/><test-case name="K-NumericSubtract-6" result="pass"/><test-case name="K-NumericSubtract-7" result="pass"/><test-case name="K-NumericSubtract-8" result="pass"/><test-case name="K-NumericSubtract-9" result="pass"/><test-case name="K-NumericSubtract-10" result="pass"/><test-case name="K-NumericSubtract-11" result="pass"/><test-case name="K-NumericSubtract-12" result="pass"/><test-case name="K-NumericSubtract-13" result="pass"/><test-case name="K-NumericSubtract-14" result="pass"/><test-case name="K-NumericSubtract-15" result="pass"/><test-case name="K-NumericSubtract-16" result="pass"/><test-case name="K-NumericSubtract-17" result="pass"/><test-case name="K-NumericSubtract-18" result="pass"/><test-case name="K-NumericSubtract-19" result="pass"/><test-case name="K-NumericSubtract-20" result="pass"/><test-case name="K-NumericSubtract-21" result="pass"/><test-case name="K-NumericSubtract-22" result="pass"/><test-case name="K-NumericSubtract-23" result="pass"/><test-case name="K-NumericSubtract-24" result="pass"/><test-case name="K-NumericSubtract-25" result="pass"/><test-case name="K-NumericSubtract-26" result="pass"/><test-case name="K-NumericSubtract-27" result="pass"/><test-case name="K-NumericSubtract-28" result="pass"/><test-case name="K-NumericSubtract-29" result="pass"/><test-case name="K-NumericSubtract-30" result="pass"/><test-case name="K-NumericSubtract-31" result="pass"/><test-case name="K-NumericSubtract-32" result="pass"/><test-case name="K-NumericSubtract-33" result="pass"/><test-case name="K-NumericSubtract-34" result="pass"/><test-case name="K-NumericSubtract-35" result="pass"/><test-case name="K-NumericSubtract-36" result="pass"/><test-case name="K-NumericSubtract-37" result="pass"/><test-case name="K-NumericSubtract-38" result="pass"/><test-case name="K2-NumericSubtract-1" result="pass"/><test-case name="K2-NumericSubtract-2" result="pass"/><test-case name="op-numeric-multiplydec2args-1" result="fail"/><test-case name="op-numeric-multiplydec2args-2" result="pass"/><test-case name="op-numeric-multiplydec2args-3" result="fail"/><test-case name="op-numeric-multiplydec2args-4" result="pass"/><test-case name="op-numeric-multiplydec2args-5" result="fail"/><test-case name="op-numeric-multiplydbl2args-1" result="pass"/><test-case name="op-numeric-multiplydbl2args-2" result="pass"/><test-case name="op-numeric-multiplydbl2args-3" result="pass"/><test-case name="op-numeric-multiplydbl2args-4" result="pass"/><test-case name="op-numeric-multiplydbl2args-5" result="pass"/><test-case name="op-numeric-multiplyflt2args-1" result="pass"/><test-case name="op-numeric-multiplyflt2args-2" result="pass"/><test-case name="op-numeric-multiplyflt2args-3" result="pass"/><test-case name="op-numeric-multiplyflt2args-4" result="pass"/><test-case name="op-numeric-multiplyflt2args-5" result="pass"/><test-case name="op-numeric-multiplyusht2args-1" result="pass"/><test-case name="op-numeric-multiplyusht2args-2" result="pass"/><test-case name="op-numeric-multiplyusht2args-3" result="pass"/><test-case name="op-numeric-multiplyusht2args-4" result="pass"/><test-case name="op-numeric-multiplyusht2args-5" result="pass"/><test-case name="op-numeric-multiplypint2args-1" result="pass"/><test-case name="op-numeric-multiplypint2args-2" result="pass"/><test-case name="op-numeric-multiplypint2args-3" result="pass"/><test-case name="op-numeric-multiplypint2args-4" result="pass"/><test-case name="op-numeric-multiplypint2args-5" result="pass"/><test-case name="op-numeric-multiplyulng2args-1" result="pass"/><test-case name="op-numeric-multiplyulng2args-2" result="pass"/><test-case name="op-numeric-multiplyulng2args-3" result="pass"/><test-case name="op-numeric-multiplyulng2args-4" result="pass"/><test-case name="op-numeric-multiplyulng2args-5" result="pass"/><test-case name="op-numeric-multiplynpi2args-1" result="pass"/><test-case name="op-numeric-multiplynpi2args-2" result="pass"/><test-case name="op-numeric-multiplynni2args-1" result="pass"/><test-case name="op-numeric-multiplynni2args-2" result="pass"/><test-case name="op-numeric-multiplynni2args-3" result="pass"/><test-case name="op-numeric-multiplynni2args-4" result="pass"/><test-case name="op-numeric-multiplynni2args-5" result="pass"/><test-case name="op-numeric-multiplymix2args-1" result="pass"/><test-case name="op-numeric-multiplymix2args-2" result="pass"/><test-case name="op-numeric-multiplymix2args-3" result="pass"/><test-case name="op-numeric-multiplymix2args-4" result="pass"/><test-case name="op-numeric-multiplymix2args-5" result="pass"/><test-case name="op-numeric-multiplymix2args-6" result="pass"/><test-case name="op-numeric-multiplymix2args-7" result="pass"/><test-case name="op-numeric-multiplymix2args-8" result="pass"/><test-case name="op-numeric-multiplymix2args-9" result="pass"/><test-case name="K-NumericMultiply-1" result="pass"/><test-case name="K-NumericMultiply-2" result="pass"/><test-case name="K-NumericMultiply-3" result="pass"/><test-case name="K-NumericMultiply-4" result="pass"/><test-case name="K-NumericMultiply-5" result="pass"/><test-case name="K-NumericMultiply-6" result="pass"/><test-case name="K-NumericMultiply-7" result="pass"/><test-case name="K-NumericMultiply-8" result="pass"/><test-case name="K-NumericMultiply-9" result="pass"/><test-case name="K-NumericMultiply-10" result="pass"/><test-case name="K-NumericMultiply-11" result="pass"/><test-case name="K-NumericMultiply-12" result="pass"/><test-case name="K-NumericMultiply-13" result="pass"/><test-case name="K-NumericMultiply-14" result="pass"/><test-case name="K-NumericMultiply-15" result="pass"/><test-case name="K-NumericMultiply-16" result="pass"/><test-case name="K-NumericMultiply-17" result="pass"/><test-case name="K-NumericMultiply-18" result="pass"/><test-case name="K-NumericMultiply-19" result="pass"/><test-case name="K-NumericMultiply-20" result="pass"/><test-case name="K-NumericMultiply-21" result="pass"/><test-case name="K-NumericMultiply-22" result="pass"/><test-case name="K-NumericMultiply-23" result="pass"/><test-case name="K-NumericMultiply-24" result="pass"/><test-case name="K-NumericMultiply-25" result="pass"/><test-case name="K-NumericMultiply-26" result="pass"/><test-case name="K-NumericMultiply-27" result="pass"/><test-case name="K-NumericMultiply-28" result="pass"/><test-case name="K-NumericMultiply-29" result="pass"/><test-case name="K-NumericMultiply-30" result="pass"/><test-case name="K-NumericMultiply-31" result="pass"/><test-case name="K-NumericMultiply-32" result="pass"/><test-case name="K-NumericMultiply-33" result="pass"/><test-case name="op-numeric-divideint2args-1" result="pass"/><test-case name="op-numeric-divideint2args-2" result="fail"/><test-case name="op-numeric-divideint2args-3" result="fail"/><test-case name="op-numeric-divideint2args-4" result="fail"/><test-case name="op-numeric-divideint2args-5" result="fail"/><test-case name="op-numeric-divideintg2args-1" result="pass"/><test-case name="op-numeric-divideintg2args-2" result="fail"/><test-case name="op-numeric-divideintg2args-3" result="pass"/><test-case name="op-numeric-divideintg2args-4" result="fail"/><test-case name="op-numeric-divideintg2args-5" result="pass"/><test-case name="op-numeric-dividedec2args-1" result="pass"/><test-case name="op-numeric-dividedec2args-2" result="fail"/><test-case name="op-numeric-dividedec2args-3" result="pass"/><test-case name="op-numeric-dividedec2args-4" result="fail"/><test-case name="op-numeric-dividedec2args-5" result="pass"/><test-case name="op-numeric-dividedbl2args-1" result="pass"/><test-case name="op-numeric-dividedbl2args-2" result="pass"/><test-case name="op-numeric-dividedbl2args-3" result="pass"/><test-case name="op-numeric-dividedbl2args-4" result="pass"/><test-case name="op-numeric-divideflt2args-1" result="pass"/><test-case name="op-numeric-divideflt2args-2" result="pass"/><test-case name="op-numeric-divideflt2args-3" result="pass"/><test-case name="op-numeric-divideflt2args-4" result="pass"/><test-case name="op-numeric-dividelng2args-1" result="pass"/><test-case name="op-numeric-dividelng2args-2" result="fail"/><test-case name="op-numeric-dividelng2args-3" result="pass"/><test-case name="op-numeric-dividelng2args-4" result="fail"/><test-case name="op-numeric-dividelng2args-5" result="pass"/><test-case name="op-numeric-divideusht2args-1" result="pass"/><test-case name="op-numeric-divideusht2args-2" result="pass"/><test-case name="op-numeric-dividenint2args-1" result="pass"/><test-case name="op-numeric-dividenint2args-2" result="fail"/><test-case name="op-numeric-dividenint2args-3" result="pass"/><test-case name="op-numeric-dividenint2args-4" result="fail"/><test-case name="op-numeric-dividenint2args-5" result="fail"/><test-case name="op-numeric-dividepint2args-1" result="pass"/><test-case name="op-numeric-dividepint2args-2" result="fail"/><test-case name="op-numeric-dividepint2args-3" result="fail"/><test-case name="op-numeric-dividepint2args-4" result="fail"/><test-case name="op-numeric-dividepint2args-5" result="pass"/><test-case name="op-numeric-divideulng2args-1" result="pass"/><test-case name="op-numeric-divideulng2args-2" result="pass"/><test-case name="op-numeric-dividenpi2args-1" result="pass"/><test-case name="op-numeric-dividenpi2args-2" result="fail"/><test-case name="op-numeric-dividenpi2args-3" result="pass"/><test-case name="op-numeric-dividenpi2args-4" result="fail"/><test-case name="op-numeric-dividenni2args-1" result="pass"/><test-case name="op-numeric-dividenni2args-2" result="pass"/><test-case name="op-numeric-dividesht2args-1" result="pass"/><test-case name="op-numeric-dividesht2args-2" result="fail"/><test-case name="op-numeric-dividesht2args-3" result="pass"/><test-case name="op-numeric-dividesht2args-4" result="fail"/><test-case name="op-numeric-dividesht2args-5" result="fail"/><test-case name="op-numeric-dividemix2args-1" result="pass"/><test-case name="op-numeric-dividemix2args-2" result="pass"/><test-case name="op-numeric-dividemix2args-3" result="pass"/><test-case name="op-numeric-dividemix2args-4" result="pass"/><test-case name="op-numeric-dividemix2args-5" result="pass"/><test-case name="op-numeric-dividemix2args-6" result="pass"/><test-case name="op-numeric-dividemix2args-7" result="pass"/><test-case name="op-numeric-dividemix2args-8" result="pass"/><test-case name="op-numeric-dividemix2args-9" result="pass"/><test-case name="K-NumericDivide-1" result="pass"/><test-case name="K-NumericDivide-2" result="pass"/><test-case name="K-NumericDivide-3" result="pass"/><test-case name="K-NumericDivide-4" result="pass"/><test-case name="K-NumericDivide-5" result="pass"/><test-case name="K-NumericDivide-6" result="pass"/><test-case name="K-NumericDivide-7" result="pass"/><test-case name="K-NumericDivide-8" result="pass"/><test-case name="K-NumericDivide-9" result="pass"/><test-case name="K-NumericDivide-10" result="pass"/><test-case name="K-NumericDivide-11" result="pass"/><test-case name="K-NumericDivide-12" result="pass"/><test-case name="K-NumericDivide-13" result="pass"/><test-case name="K-NumericDivide-14" result="pass"/><test-case name="K-NumericDivide-15" result="pass"/><test-case name="K-NumericDivide-16" result="pass"/><test-case name="K-NumericDivide-17" result="pass"/><test-case name="K-NumericDivide-18" result="pass"/><test-case name="K-NumericDivide-19" result="pass"/><test-case name="K-NumericDivide-20" result="pass"/><test-case name="K-NumericDivide-21" result="pass"/><test-case name="K-NumericDivide-22" result="pass"/><test-case name="K-NumericDivide-23" result="pass"/><test-case name="K-NumericDivide-24" result="pass"/><test-case name="K-NumericDivide-25" result="pass"/><test-case name="K-NumericDivide-26" result="pass"/><test-case name="K-NumericDivide-27" result="pass"/><test-case name="K-NumericDivide-28" result="pass"/><test-case name="K-NumericDivide-29" result="pass"/><test-case name="K-NumericDivide-30" result="pass"/><test-case name="K-NumericDivide-31" result="pass"/><test-case name="K-NumericDivide-32" result="pass"/><test-case name="K-NumericDivide-33" result="pass"/><test-case name="K-NumericDivide-34" result="pass"/><test-case name="K-NumericDivide-35" result="pass"/><test-case name="K-NumericDivide-36" result="pass"/><test-case name="K-NumericDivide-37" result="pass"/><test-case name="K-NumericDivide-38" result="pass"/><test-case name="K-NumericDivide-39" result="pass"/><test-case name="K-NumericDivide-40" result="pass"/><test-case name="K-NumericDivide-41" result="pass"/><test-case name="K-NumericDivide-42" result="pass"/><test-case name="K-NumericDivide-43" result="pass"/><test-case name="K2-NumericDivide-1" result="pass"/><test-case name="K2-NumericDivide-2" result="pass"/><test-case name="K2-NumericDivide-3" result="pass"/><test-case name="K2-NumericDivide-4" result="pass"/><test-case name="K2-NumericDivide-5" result="pass"/><test-case name="K2-NumericDivide-6" result="pass"/><test-case name="K2-NumericDivide-7" result="pass"/><test-case name="K2-NumericDivide-8" result="pass"/><test-case name="K2-NumericDivide-9" result="pass"/><test-case name="K2-NumericDivide-10" result="pass"/><test-case name="K2-NumericDivide-11" result="pass"/><test-case name="K2-NumericDivide-12" result="pass"/><test-case name="K2-NumericDivide-13" result="pass"/><test-case name="K2-NumericDivide-14" result="pass"/><test-case name="K2-NumericDivide-15" result="pass"/><test-case name="K2-NumericDivide-16" result="pass"/><test-case name="K2-NumericDivide-17" result="fail"/><test-case name="op-numeric-integer-divideint2args-1" result="pass"/><test-case name="op-numeric-integer-divideint2args-2" result="pass"/><test-case name="op-numeric-integer-divideint2args-3" result="pass"/><test-case name="op-numeric-integer-divideint2args-4" result="pass"/><test-case name="op-numeric-integer-divideint2args-5" result="pass"/><test-case name="op-numeric-integer-divideintg2args-1" result="pass"/><test-case name="op-numeric-integer-divideintg2args-2" result="pass"/><test-case name="op-numeric-integer-divideintg2args-3" result="pass"/><test-case name="op-numeric-integer-divideintg2args-4" result="pass"/><test-case name="op-numeric-integer-divideintg2args-5" result="pass"/><test-case name="op-numeric-integer-dividedec2args-1" result="pass"/><test-case name="op-numeric-integer-dividedec2args-2" result="pass"/><test-case name="op-numeric-integer-dividedec2args-3" result="pass"/><test-case name="op-numeric-integer-dividedec2args-4" result="pass"/><test-case name="op-numeric-integer-dividedec2args-5" result="pass"/><test-case name="op-numeric-integer-dividelng2args-1" result="pass"/><test-case name="op-numeric-integer-dividelng2args-2" result="pass"/><test-case name="op-numeric-integer-dividelng2args-3" result="pass"/><test-case name="op-numeric-integer-dividelng2args-4" result="pass"/><test-case name="op-numeric-integer-dividelng2args-5" result="pass"/><test-case name="op-numeric-integer-divideusht2args-1" result="pass"/><test-case name="op-numeric-integer-divideusht2args-2" result="pass"/><test-case name="op-numeric-integer-dividenint2args-1" result="pass"/><test-case name="op-numeric-integer-dividenint2args-2" result="pass"/><test-case name="op-numeric-integer-dividenint2args-3" result="pass"/><test-case name="op-numeric-integer-dividenint2args-4" result="pass"/><test-case name="op-numeric-integer-dividenint2args-5" result="pass"/><test-case name="op-numeric-integer-dividepint2args-1" result="pass"/><test-case name="op-numeric-integer-dividepint2args-2" result="pass"/><test-case name="op-numeric-integer-dividepint2args-3" result="pass"/><test-case name="op-numeric-integer-dividepint2args-4" result="pass"/><test-case name="op-numeric-integer-dividepint2args-5" result="pass"/><test-case name="op-numeric-integer-divideulng2args-1" result="pass"/><test-case name="op-numeric-integer-divideulng2args-2" result="pass"/><test-case name="op-numeric-integer-dividenpi2args-1" result="pass"/><test-case name="op-numeric-integer-dividenpi2args-2" result="pass"/><test-case name="op-numeric-integer-dividenpi2args-3" result="pass"/><test-case name="op-numeric-integer-dividenpi2args-4" result="pass"/><test-case name="op-numeric-integer-dividenni2args-1" result="pass"/><test-case name="op-numeric-integer-dividenni2args-2" result="pass"/><test-case name="op-numeric-integer-dividesht2args-1" result="pass"/><test-case name="op-numeric-integer-dividesht2args-2" result="pass"/><test-case name="op-numeric-integer-dividesht2args-3" result="pass"/><test-case name="op-numeric-integer-dividesht2args-4" result="pass"/><test-case name="op-numeric-integer-dividesht2args-5" result="pass"/><test-case name="op-numeric-integer-dividemix2args-1" result="pass"/><test-case name="op-numeric-integer-dividemix2args-2" result="pass"/><test-case name="op-numeric-integer-dividemix2args-3" result="pass"/><test-case name="op-numeric-integer-dividemix2args-4" result="pass"/><test-case name="op-numeric-integer-dividemix2args-5" result="pass"/><test-case name="op-numeric-integer-dividemix2args-6" result="pass"/><test-case name="op-numeric-integer-dividemix2args-7" result="pass"/><test-case name="op-numeric-integer-dividemix2args-8" result="pass"/><test-case name="op-numeric-integer-dividemix2args-9" result="pass"/><test-case name="op-numeric-integer-dividemix2args-10" result="pass"/><test-case name="op-numeric-integer-divide-1" result="pass"/><test-case name="K-NumericIntegerDivide-1" result="pass"/><test-case name="K-NumericIntegerDivide-2" result="pass"/><test-case name="K-NumericIntegerDivide-3" result="pass"/><test-case name="K-NumericIntegerDivide-4" result="pass"/><test-case name="K-NumericIntegerDivide-5" result="pass"/><test-case name="K-NumericIntegerDivide-6" result="pass"/><test-case name="K-NumericIntegerDivide-7" result="pass"/><test-case name="K-NumericIntegerDivide-8" result="pass"/><test-case name="K-NumericIntegerDivide-9" result="pass"/><test-case name="K-NumericIntegerDivide-10" result="pass"/><test-case name="K-NumericIntegerDivide-11" result="pass"/><test-case name="K-NumericIntegerDivide-12" result="pass"/><test-case name="K-NumericIntegerDivide-13" result="pass"/><test-case name="K-NumericIntegerDivide-14" result="pass"/><test-case name="K-NumericIntegerDivide-15" result="pass"/><test-case name="K-NumericIntegerDivide-16" result="pass"/><test-case name="K-NumericIntegerDivide-17" result="pass"/><test-case name="K-NumericIntegerDivide-18" result="pass"/><test-case name="K-NumericIntegerDivide-19" result="pass"/><test-case name="K-NumericIntegerDivide-20" result="pass"/><test-case name="K-NumericIntegerDivide-21" result="pass"/><test-case name="K-NumericIntegerDivide-22" result="pass"/><test-case name="K-NumericIntegerDivide-23" result="pass"/><test-case name="K-NumericIntegerDivide-24" result="pass"/><test-case name="K-NumericIntegerDivide-25" result="pass"/><test-case name="K-NumericIntegerDivide-26" result="pass"/><test-case name="K-NumericIntegerDivide-27" result="pass"/><test-case name="K-NumericIntegerDivide-28" result="pass"/><test-case name="K-NumericIntegerDivide-29" result="pass"/><test-case name="K-NumericIntegerDivide-30" result="pass"/><test-case name="K-NumericIntegerDivide-31" result="pass"/><test-case name="K-NumericIntegerDivide-32" result="pass"/><test-case name="K-NumericIntegerDivide-33" result="pass"/><test-case name="K-NumericIntegerDivide-34" result="pass"/><test-case name="K-NumericIntegerDivide-35" result="pass"/><test-case name="K-NumericIntegerDivide-36" result="pass"/><test-case name="K-NumericIntegerDivide-37" result="pass"/><test-case name="K-NumericIntegerDivide-38" result="pass"/><test-case name="K-NumericIntegerDivide-39" result="pass"/><test-case name="K-NumericIntegerDivide-40" result="pass"/><test-case name="K-NumericIntegerDivide-41" result="pass"/><test-case name="K-NumericIntegerDivide-42" result="pass"/><test-case name="K-NumericIntegerDivide-43" result="pass"/><test-case name="K-NumericIntegerDivide-44" result="pass"/><test-case name="K-NumericIntegerDivide-45" result="pass"/><test-case name="K-NumericIntegerDivide-46" result="pass"/><test-case name="K-NumericIntegerDivide-47" result="pass"/><test-case name="K-NumericIntegerDivide-48" result="pass"/><test-case name="K-NumericIntegerDivide-49" result="pass"/><test-case name="K-NumericIntegerDivide-50" result="pass"/><test-case name="K-NumericIntegerDivide-51" result="pass"/><test-case name="K-NumericIntegerDivide-52" result="pass"/><test-case name="K-NumericIntegerDivide-53" result="pass"/><test-case name="K2-NumericIntegerDivide-1" result="pass"/><test-case name="K2-NumericIntegerDivide-2" result="pass"/><test-case name="K2-NumericIntegerDivide-3" result="pass"/><test-case name="K2-NumericIntegerDivide-4" result="pass"/><test-case name="K2-NumericIntegerDivide-5" result="pass"/><test-case name="K2-NumericIntegerDivide-6" result="pass"/><test-case name="K2-NumericIntegerDivide-7" result="pass"/><test-case name="K2-NumericIntegerDivide-8" result="pass"/><test-case name="op-numeric-modint2args-1" result="pass"/><test-case name="op-numeric-modintg2args-1" result="pass"/><test-case name="op-numeric-modintg2args-2" result="pass"/><test-case name="op-numeric-moddec2args-1" result="fail"/><test-case name="op-numeric-moddec2args-2" result="pass"/><test-case name="op-numeric-moddbl2args-1" result="pass"/><test-case name="op-numeric-modflt2args-1" result="pass"/><test-case name="op-numeric-modlng2args-1" result="pass"/><test-case name="op-numeric-modusht2args-1" result="pass"/><test-case name="op-numeric-modusht2args-2" result="pass"/><test-case name="op-numeric-modpint2args-1" result="pass"/><test-case name="op-numeric-modpint2args-2" result="pass"/><test-case name="op-numeric-modpint2args-3" result="pass"/><test-case name="op-numeric-modpint2args-4" result="pass"/><test-case name="op-numeric-modpint2args-5" result="pass"/><test-case name="op-numeric-modulng2args-1" result="pass"/><test-case name="op-numeric-modulng2args-2" result="pass"/><test-case name="op-numeric-modnni2args-1" result="pass"/><test-case name="op-numeric-modnni2args-2" result="pass"/><test-case name="op-numeric-modsht2args-1" result="pass"/><test-case name="op-numeric-modmix2args-1" result="pass"/><test-case name="op-numeric-modmix2args-2" result="pass"/><test-case name="op-numeric-modmix2args-3" result="pass"/><test-case name="op-numeric-modmix2args-4" result="pass"/><test-case name="op-numeric-modmix2args-5" result="pass"/><test-case name="op-numeric-modmix2args-6" result="pass"/><test-case name="op-numeric-modmix2args-7" result="pass"/><test-case name="op-numeric-modmix2args-8" result="pass"/><test-case name="op-numeric-modmix2args-9" result="pass"/><test-case name="K-NumericMod-1" result="pass"/><test-case name="K-NumericMod-2" result="pass"/><test-case name="K-NumericMod-3" result="pass"/><test-case name="K-NumericMod-4" result="pass"/><test-case name="K-NumericMod-5" result="pass"/><test-case name="K-NumericMod-6" result="pass"/><test-case name="K-NumericMod-7" result="pass"/><test-case name="K-NumericMod-8" result="pass"/><test-case name="K-NumericMod-9" result="pass"/><test-case name="K-NumericMod-10" result="pass"/><test-case name="K-NumericMod-11" result="pass"/><test-case name="K-NumericMod-12" result="pass"/><test-case name="K-NumericMod-13" result="pass"/><test-case name="K-NumericMod-14" result="pass"/><test-case name="K-NumericMod-15" result="pass"/><test-case name="K-NumericMod-16" result="pass"/><test-case name="K-NumericMod-17" result="pass"/><test-case name="K-NumericMod-18" result="pass"/><test-case name="K-NumericMod-19" result="pass"/><test-case name="K-NumericMod-20" result="pass"/><test-case name="K-NumericMod-21" result="pass"/><test-case name="K-NumericMod-22" result="pass"/><test-case name="K-NumericMod-23" result="pass"/><test-case name="K-NumericMod-24" result="pass"/><test-case name="K-NumericMod-25" result="pass"/><test-case name="K-NumericMod-26" result="pass"/><test-case name="K-NumericMod-27" result="pass"/><test-case name="K-NumericMod-28" result="pass"/><test-case name="K-NumericMod-29" result="pass"/><test-case name="K2-NumericMod-1" result="pass"/><test-case name="K2-NumericMod-2" result="pass"/><test-case name="K2-NumericMod-3" result="pass"/><test-case name="K2-NumericMod-4" result="pass"/><test-case name="K2-NumericMod-5" result="fail"/><test-case name="K2-NumericMod-6" result="pass"/><test-case name="K2-NumericMod-7" result="fail"/><test-case name="K2-NumericMod-8" result="fail"/><test-case name="K2-NumericMod-9" result="pass"/><test-case name="K2-NumericMod-10" result="pass"/><test-case name="K2-NumericMod-11" result="pass"/><test-case name="K2-NumericMod-12" result="pass"/><test-case name="K2-NumericMod-13" result="pass"/><test-case name="K2-NumericMod-14" result="pass"/><test-case name="K2-NumericMod-15" result="pass"/><test-case name="K2-NumericMod-16" result="pass"/><test-case name="K2-NumericMod-17" result="pass"/><test-case name="K2-NumericMod-18" result="pass"/><test-case name="K2-NumericMod-19" result="pass"/><test-case name="K2-NumericMod-20" result="pass"/><test-case name="K2-NumericMod-21" result="pass"/><test-case name="K2-NumericMod-22" result="pass"/><test-case name="K2-NumericMod-23" result="pass"/><test-case name="K2-NumericMod-24" result="pass"/><test-case name="K2-NumericMod-25" result="pass"/><test-case name="K2-NumericMod-26" result="pass"/><test-case name="K2-NumericMod-27" result="pass"/><test-case name="K2-NumericMod-28" result="pass"/><test-case name="K2-NumericMod-29" result="pass"/><test-case name="K2-NumericMod-30" result="pass"/><test-case name="K2-NumericMod-31" result="pass"/><test-case name="K2-NumericMod-32" result="pass"/><test-case name="K2-NumericMod-33" result="pass"/><test-case name="K2-NumericMod-34" result="pass"/><test-case name="K2-NumericMod-35" result="pass"/><test-case name="K2-NumericMod-36" result="pass"/><test-case name="K2-NumericMod-37" result="pass"/><test-case name="K2-NumericMod-38" result="pass"/><test-case name="K2-NumericMod-39" result="pass"/><test-case name="K2-NumericMod-40" result="pass"/><test-case name="K2-NumericMod-41" result="pass"/><test-case name="K2-NumericMod-42" result="pass"/><test-case name="K2-NumericMod-43" result="pass"/><test-case name="K2-NumericMod-44" result="pass"/><test-case name="K2-NumericMod-45" result="pass"/><test-case name="K2-NumericMod-46" result="pass"/><test-case name="K2-NumericMod-47" result="pass"/><test-case name="K2-NumericMod-48" result="pass"/><test-case name="K2-NumericMod-49" result="pass"/><test-case name="K2-NumericMod-50" result="pass"/><test-case name="K2-NumericMod-51" result="pass"/><test-case name="K2-NumericMod-52" result="pass"/><test-case name="K2-NumericMod-53" result="pass"/><test-case name="K2-NumericMod-54" result="pass"/><test-case name="K2-NumericMod-55" result="pass"/><test-case name="K2-NumericMod-56" result="pass"/><test-case name="K2-NumericMod-57" result="pass"/><test-case name="K2-NumericMod-58" result="pass"/><test-case name="K2-NumericMod-59" result="pass"/><test-case name="K2-NumericMod-60" result="pass"/><test-case name="K2-NumericMod-61" result="pass"/><test-case name="K2-NumericMod-62" result="fail"/><test-case name="op-numeric-unary-plusint1args-1" result="pass"/><test-case name="op-numeric-unary-plusint1args-2" result="pass"/><test-case name="op-numeric-unary-plusint1args-3" result="pass"/><test-case name="op-numeric-unary-plusintg1args-1" result="pass"/><test-case name="op-numeric-unary-plusintg1args-2" result="pass"/><test-case name="op-numeric-unary-plusintg1args-3" result="pass"/><test-case name="op-numeric-unary-plusdec1args-1" result="fail"/><test-case name="op-numeric-unary-plusdec1args-2" result="fail"/><test-case name="op-numeric-unary-plusdec1args-3" result="fail"/><test-case name="op-numeric-unary-plusdbl1args-1" result="pass"/><test-case name="op-numeric-unary-plusdbl1args-2" result="pass"/><test-case name="op-numeric-unary-plusdbl1args-3" result="pass"/><test-case name="op-numeric-unary-plusflt1args-1" result="pass"/><test-case name="op-numeric-unary-plusflt1args-2" result="pass"/><test-case name="op-numeric-unary-plusflt1args-3" result="pass"/><test-case name="op-numeric-unary-pluslng1args-1" result="pass"/><test-case name="op-numeric-unary-pluslng1args-2" result="pass"/><test-case name="op-numeric-unary-pluslng1args-3" result="pass"/><test-case name="op-numeric-unary-plususht1args-1" result="pass"/><test-case name="op-numeric-unary-plususht1args-2" result="pass"/><test-case name="op-numeric-unary-plususht1args-3" result="pass"/><test-case name="op-numeric-unary-plusnint1args-1" result="pass"/><test-case name="op-numeric-unary-plusnint1args-2" result="pass"/><test-case name="op-numeric-unary-plusnint1args-3" result="pass"/><test-case name="op-numeric-unary-pluspint1args-1" result="pass"/><test-case name="op-numeric-unary-pluspint1args-2" result="pass"/><test-case name="op-numeric-unary-pluspint1args-3" result="pass"/><test-case name="op-numeric-unary-plusulng1args-1" result="pass"/><test-case name="op-numeric-unary-plusulng1args-2" result="pass"/><test-case name="op-numeric-unary-plusulng1args-3" result="pass"/><test-case name="op-numeric-unary-plusnpi1args-1" result="pass"/><test-case name="op-numeric-unary-plusnpi1args-2" result="pass"/><test-case name="op-numeric-unary-plusnpi1args-3" result="pass"/><test-case name="op-numeric-unary-plusnni1args-1" result="pass"/><test-case name="op-numeric-unary-plusnni1args-2" result="pass"/><test-case name="op-numeric-unary-plusnni1args-3" result="pass"/><test-case name="op-numeric-unary-plussht1args-1" result="pass"/><test-case name="op-numeric-unary-plussht1args-2" result="pass"/><test-case name="op-numeric-unary-plussht1args-3" result="pass"/><test-case name="K-NumericUnaryPlus-1" result="pass"/><test-case name="K-NumericUnaryPlus-2" result="pass"/><test-case name="K-NumericUnaryPlus-3" result="pass"/><test-case name="K-NumericUnaryPlus-4" result="pass"/><test-case name="K-NumericUnaryPlus-5" result="pass"/><test-case name="K-NumericUnaryPlus-6" result="pass"/><test-case name="K-NumericUnaryPlus-7" result="pass"/><test-case name="K-NumericUnaryPlus-8" result="pass"/><test-case name="K-NumericUnaryPlus-9" result="pass"/><test-case name="K-NumericUnaryPlus-10" result="pass"/><test-case name="K-NumericUnaryPlus-11" result="pass"/><test-case name="K-NumericUnaryPlus-12" result="pass"/><test-case name="K2-NumericUnaryPlus-1" result="pass"/><test-case name="K2-NumericUnaryPlus-2" result="pass"/><test-case name="op-numeric-unary-minusint1args-1" result="pass"/><test-case name="op-numeric-unary-minusint1args-2" result="pass"/><test-case name="op-numeric-unary-minusint1args-3" result="pass"/><test-case name="op-numeric-unary-minusintg1args-1" result="pass"/><test-case name="op-numeric-unary-minusintg1args-2" result="pass"/><test-case name="op-numeric-unary-minusintg1args-3" result="pass"/><test-case name="op-numeric-unary-minusdec1args-1" result="fail"/><test-case name="op-numeric-unary-minusdec1args-2" result="fail"/><test-case name="op-numeric-unary-minusdec1args-3" result="fail"/><test-case name="op-numeric-unary-minusdbl1args-1" result="pass"/><test-case name="op-numeric-unary-minusdbl1args-2" result="pass"/><test-case name="op-numeric-unary-minusdbl1args-3" result="pass"/><test-case name="op-numeric-unary-minusflt1args-1" result="pass"/><test-case name="op-numeric-unary-minusflt1args-2" result="pass"/><test-case name="op-numeric-unary-minusflt1args-3" result="pass"/><test-case name="op-numeric-unary-minuslng1args-1" result="pass"/><test-case name="op-numeric-unary-minuslng1args-2" result="pass"/><test-case name="op-numeric-unary-minuslng1args-3" result="pass"/><test-case name="op-numeric-unary-minususht1args-1" result="pass"/><test-case name="op-numeric-unary-minususht1args-2" result="pass"/><test-case name="op-numeric-unary-minususht1args-3" result="pass"/><test-case name="op-numeric-unary-minusnint1args-1" result="pass"/><test-case name="op-numeric-unary-minusnint1args-2" result="pass"/><test-case name="op-numeric-unary-minusnint1args-3" result="pass"/><test-case name="op-numeric-unary-minuspint1args-1" result="pass"/><test-case name="op-numeric-unary-minuspint1args-2" result="pass"/><test-case name="op-numeric-unary-minuspint1args-3" result="pass"/><test-case name="op-numeric-unary-minusulng1args-1" result="pass"/><test-case name="op-numeric-unary-minusulng1args-2" result="pass"/><test-case name="op-numeric-unary-minusulng1args-3" result="pass"/><test-case name="op-numeric-unary-minusnpi1args-1" result="pass"/><test-case name="op-numeric-unary-minusnpi1args-2" result="pass"/><test-case name="op-numeric-unary-minusnpi1args-3" result="pass"/><test-case name="op-numeric-unary-minusnni1args-1" result="pass"/><test-case name="op-numeric-unary-minusnni1args-2" result="pass"/><test-case name="op-numeric-unary-minusnni1args-3" result="pass"/><test-case name="op-numeric-unary-minussht1args-1" result="pass"/><test-case name="op-numeric-unary-minussht1args-2" result="pass"/><test-case name="op-numeric-unary-minussht1args-3" result="pass"/><test-case name="K-NumericUnaryMinus-1" result="pass"/><test-case name="K-NumericUnaryMinus-2" result="pass"/><test-case name="K-NumericUnaryMinus-3" result="pass"/><test-case name="K-NumericUnaryMinus-4" result="pass"/><test-case name="K-NumericUnaryMinus-5" result="pass"/><test-case name="K-NumericUnaryMinus-6" result="pass"/><test-case name="K-NumericUnaryMinus-7" result="pass"/><test-case name="K-NumericUnaryMinus-8" result="pass"/><test-case name="K-NumericUnaryMinus-9" result="pass"/><test-case name="K-NumericUnaryMinus-10" result="pass"/><test-case name="K-NumericUnaryMinus-11" result="pass"/><test-case name="K-NumericUnaryMinus-12" result="pass"/><test-case name="K-NumericUnaryMinus-13" result="pass"/><test-case name="K2-NumericUnaryMinus-1" result="pass"/><test-case name="K2-NumericUnaryMinus-2" result="pass"/><test-case name="K2-NumericUnaryMinus-3" result="pass"/><test-case name="K2-NumericUnaryMinus-4" result="pass"/><test-case name="K2-NumericUnaryMinus-5" result="pass"/><test-case name="K2-NumericUnaryMinus-6" result="pass"/><test-case name="K2-NumericUnaryMinus-7" result="pass"/><test-case name="K2-NumericUnaryMinus-8" result="pass"/><test-case name="K2-NumericUnaryMinus-9" result="pass"/><test-case name="K2-NumericUnaryMinus-10" result="pass"/><test-case name="op-add-yearMonthDurations2args-1" result="pass"/><test-case name="op-add-yearMonthDurations2args-2" result="pass"/><test-case name="op-add-yearMonthDurations2args-3" result="pass"/><test-case name="op-add-yearMonthDurations2args-4" result="pass"/><test-case name="op-add-yearMonthDurations2args-5" result="pass"/><test-case name="op-add-yearMonthDurations-1" result="pass"/><test-case name="op-add-yearMonthDurations-2" result="pass"/><test-case name="op-add-yearMonthDurations-3" result="pass"/><test-case name="op-add-yearMonthDurations-4" result="pass"/><test-case name="op-add-yearMonthDurations-5" result="pass"/><test-case name="op-add-yearMonthDurations-6" result="pass"/><test-case name="op-add-yearMonthDurations-7" result="pass"/><test-case name="op-add-yearMonthDurations-8" result="pass"/><test-case name="op-add-yearMonthDurations-9" result="pass"/><test-case name="op-add-yearMonthDurations-10" result="pass"/><test-case name="op-add-yearMonthDurations-11" result="pass"/><test-case name="op-add-yearMonthDurations-12" result="pass"/><test-case name="op-add-yearMonthDurations-13" result="pass"/><test-case name="op-add-yearMonthDurations-14" result="pass"/><test-case name="op-add-yearMonthDurations-15" result="pass"/><test-case name="op-add-yearMonthDurations-16" result="pass"/><test-case name="K-YearMonthDurationAdd-1" result="pass"/><test-case name="K-YearMonthDurationAdd-2" result="pass"/><test-case name="K-YearMonthDurationAdd-3" result="pass"/><test-case name="op-subtract-yearMonthDurations2args-1" result="pass"/><test-case name="op-subtract-yearMonthDurations2args-2" result="pass"/><test-case name="op-subtract-yearMonthDurations2args-3" result="pass"/><test-case name="op-subtract-yearMonthDurations2args-4" result="pass"/><test-case name="op-subtract-yearMonthDurations2args-5" result="pass"/><test-case name="op-subtract-yearMonthDurations-1" result="pass"/><test-case name="op-subtract-yearMonthDurations-2" result="pass"/><test-case name="op-subtract-yearMonthDurations-3" result="pass"/><test-case name="op-subtract-yearMonthDurations-4" result="pass"/><test-case name="op-subtract-yearMonthDurations-5" result="pass"/><test-case name="op-subtract-yearMonthDurations-6" result="pass"/><test-case name="op-subtract-yearMonthDurations-7" result="pass"/><test-case name="op-subtract-yearMonthDurations-8" result="pass"/><test-case name="op-subtract-yearMonthDurations-9" result="pass"/><test-case name="op-subtract-yearMonthDurations-10" result="pass"/><test-case name="op-subtract-yearMonthDurations-11" result="pass"/><test-case name="op-subtract-yearMonthDurations-12" result="pass"/><test-case name="op-subtract-yearMonthDurations-13" result="pass"/><test-case name="op-subtract-yearMonthDurations-14" result="pass"/><test-case name="op-subtract-yearMonthDurations-15" result="pass"/><test-case name="op-subtract-yearMonthDurations-16" result="pass"/><test-case name="K-YearMonthDurationSubtract-1" result="pass"/><test-case name="K-YearMonthDurationSubtract-2" result="pass"/><test-case name="K-YearMonthDurationSubtract-3" result="pass"/><test-case name="K-YearMonthDurationSubtract-4" result="pass"/><test-case name="K-YearMonthDurationSubtract-5" result="pass"/><test-case name="K-YearMonthDurationSubtract-6" result="pass"/><test-case name="K-YearMonthDurationSubtract-7" result="pass"/><test-case name="K-YearMonthDurationSubtract-8" result="pass"/><test-case name="K-YearMonthDurationSubtract-9" result="pass"/><test-case name="op-multiply-yearMonthDuration2args-1" result="pass"/><test-case name="op-multiply-yearMonthDuration2args-2" result="pass"/><test-case name="op-multiply-yearMonthDuration2args-3" result="pass"/><test-case name="op-multiply-yearMonthDuration2args-4" result="pass"/><test-case name="op-multiply-yearMonthDuration2args-5" result="pass"/><test-case name="op-multiply-yearMonthDuration-1" result="fail"/><test-case name="op-multiply-yearMonthDuration-2" result="pass"/><test-case name="op-multiply-yearMonthDuration-3" result="pass"/><test-case name="op-multiply-yearMonthDuration-4" result="pass"/><test-case name="op-multiply-yearMonthDuration-5" result="pass"/><test-case name="op-multiply-yearMonthDuration-6" result="pass"/><test-case name="op-multiply-yearMonthDuration-7" result="pass"/><test-case name="op-multiply-yearMonthDuration-8" result="pass"/><test-case name="op-multiply-yearMonthDuration-9" result="pass"/><test-case name="op-multiply-yearMonthDuration-10" result="pass"/><test-case name="op-multiply-yearMonthDuration-11" result="pass"/><test-case name="op-multiply-yearMonthDuration-12" result="pass"/><test-case name="op-multiply-yearMonthDuration-13" result="pass"/><test-case name="op-multiply-yearMonthDuration-14" result="pass"/><test-case name="op-multiply-yearMonthDuration-15" result="pass"/><test-case name="op-multiply-yearMonthDuration-16" result="pass"/><test-case name="op-multiply-yearMonthDuration-17" result="pass"/><test-case name="op-multiply-yearMonthDuration-18" result="pass"/><test-case name="op-multiply-yearMonthDuration-19" result="pass"/><test-case name="K-YearMonthDurationMultiply-1" result="pass"/><test-case name="K-YearMonthDurationMultiply-2" result="pass"/><test-case name="K-YearMonthDurationMultiply-3" result="pass"/><test-case name="K-YearMonthDurationMultiply-4" result="pass"/><test-case name="K-YearMonthDurationMultiply-5" result="pass"/><test-case name="K-YearMonthDurationMultiply-6" result="pass"/><test-case name="K-YearMonthDurationMultiply-7" result="pass"/><test-case name="K-YearMonthDurationMultiply-8" result="pass"/><test-case name="K-YearMonthDurationMultiply-9" result="pass"/><test-case name="K-YearMonthDurationMultiply-10" result="pass"/><test-case name="K-YearMonthDurationMultiply-11" result="pass"/><test-case name="K-YearMonthDurationMultiply-12" result="pass"/><test-case name="K-YearMonthDurationMultiply-13" result="pass"/><test-case name="op-divide-yearMonthDuration2args-1" result="pass"/><test-case name="op-divide-yearMonthDuration2args-2" result="pass"/><test-case name="op-divide-yearMonthDuration2args-3" result="pass"/><test-case name="op-divide-yearMonthDuration2args-4" result="pass"/><test-case name="op-divide-yearMonthDuration2args-5" result="pass"/><test-case name="op-divide-yearMonthDuration-1" result="pass"/><test-case name="op-divide-yearMonthDuration-2" result="pass"/><test-case name="op-divide-yearMonthDuration-3" result="pass"/><test-case name="op-divide-yearMonthDuration-4" result="pass"/><test-case name="op-divide-yearMonthDuration-5" result="pass"/><test-case name="op-divide-yearMonthDuration-6" result="pass"/><test-case name="op-divide-yearMonthDuration-7" result="pass"/><test-case name="op-divide-yearMonthDuration-8" result="pass"/><test-case name="op-divide-yearMonthDuration-9" result="pass"/><test-case name="op-divide-yearMonthDuration-10" result="pass"/><test-case name="op-divide-yearMonthDuration-11" result="pass"/><test-case name="op-divide-yearMonthDuration-12" result="pass"/><test-case name="op-divide-yearMonthDuration-13" result="pass"/><test-case name="op-divide-yearMonthDuration-14" result="pass"/><test-case name="op-divide-yearMonthDuration-15" result="pass"/><test-case name="op-divide-yearMonthDuration-16" result="pass"/><test-case name="K-YearMonthDurationDivide-1" result="pass"/><test-case name="K-YearMonthDurationDivide-2" result="pass"/><test-case name="K-YearMonthDurationDivide-3" result="pass"/><test-case name="K-YearMonthDurationDivide-4" result="pass"/><test-case name="K-YearMonthDurationDivide-5" result="pass"/><test-case name="K-YearMonthDurationDivide-6" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yearMonthDuration2args-1" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yearMonthDuration2args-2" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yearMonthDuration2args-3" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yearMonthDuration2args-4" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yearMonthDuration2args-5" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-1" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-2" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-3" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-4" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-5" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-6" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-7" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-8" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-9" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-10" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-11" result="fail"/><test-case name="op-divide-yearMonthDuration-by-yMD-12" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-13" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-14" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-15" result="pass"/><test-case name="op-divide-yearMonthDuration-by-yMD-16" result="pass"/><test-case name="K-YearMonthDurationDivideYMD-1" result="pass"/><test-case name="op-add-dayTimeDurations2args-1" result="pass"/><test-case name="op-add-dayTimeDurations2args-2" result="pass"/><test-case name="op-add-dayTimeDurations2args-3" result="fail"/><test-case name="op-add-dayTimeDurations2args-4" result="pass"/><test-case name="op-add-dayTimeDurations2args-5" result="fail"/><test-case name="op-add-dayTimeDurations-1" result="pass"/><test-case name="op-add-dayTimeDurations-2" result="pass"/><test-case name="op-add-dayTimeDurations-3" result="pass"/><test-case name="op-add-dayTimeDurations-4" result="pass"/><test-case name="op-add-dayTimeDurations-5" result="pass"/><test-case name="op-add-dayTimeDurations-6" result="pass"/><test-case name="op-add-dayTimeDurations-7" result="pass"/><test-case name="op-add-dayTimeDurations-8" result="pass"/><test-case name="op-add-dayTimeDurations-9" result="pass"/><test-case name="op-add-dayTimeDurations-10" result="pass"/><test-case name="op-add-dayTimeDurations-11" result="pass"/><test-case name="op-add-dayTimeDurations-12" result="pass"/><test-case name="op-add-dayTimeDurations-13" result="pass"/><test-case name="op-add-dayTimeDurations-14" result="pass"/><test-case name="op-add-dayTimeDurations-15" result="pass"/><test-case name="op-add-dayTimeDurations-16" result="pass"/><test-case name="K-DayTimeDurationAdd-1" result="pass"/><test-case name="K-DayTimeDurationAdd-2" result="pass"/><test-case name="K-DayTimeDurationAdd-3" result="pass"/><test-case name="op-subtract-dayTimeDurations2args-1" result="pass"/><test-case name="op-subtract-dayTimeDurations2args-2" result="pass"/><test-case name="op-subtract-dayTimeDurations2args-3" result="fail"/><test-case name="op-subtract-dayTimeDurations2args-4" result="pass"/><test-case name="op-subtract-dayTimeDurations2args-5" result="fail"/><test-case name="op-subtract-dayTimeDurations-1" result="pass"/><test-case name="op-subtract-dayTimeDurations-2" result="pass"/><test-case name="op-subtract-dayTimeDurations-3" result="pass"/><test-case name="op-subtract-dayTimeDurations-4" result="pass"/><test-case name="op-subtract-dayTimeDurations-5" result="pass"/><test-case name="op-subtract-dayTimeDurations-6" result="pass"/><test-case name="op-subtract-dayTimeDurations-7" result="pass"/><test-case name="op-subtract-dayTimeDurations-8" result="pass"/><test-case name="op-subtract-dayTimeDurations-9" result="pass"/><test-case name="op-subtract-dayTimeDurations-10" result="pass"/><test-case name="op-subtract-dayTimeDurations-11" result="fail"/><test-case name="op-subtract-dayTimeDurations-12" result="pass"/><test-case name="op-subtract-dayTimeDurations-13" result="pass"/><test-case name="op-subtract-dayTimeDurations-14" result="pass"/><test-case name="op-subtract-dayTimeDurations-15" result="pass"/><test-case name="op-subtract-dayTimeDurations-16" result="pass"/><test-case name="K-DayTimeDurationSubtract-1" result="pass"/><test-case name="K-DayTimeDurationSubtract-2" result="pass"/><test-case name="K-DayTimeDurationSubtract-3" result="pass"/><test-case name="K-DayTimeDurationSubtract-4" result="pass"/><test-case name="K-DayTimeDurationSubtract-5" result="pass"/><test-case name="K-DayTimeDurationSubtract-6" result="pass"/><test-case name="K-DayTimeDurationSubtract-7" result="pass"/><test-case name="K-DayTimeDurationSubtract-8" result="pass"/><test-case name="K-DayTimeDurationSubtract-9" result="pass"/><test-case name="K2-DayTimeDurationSubtract-1" result="pass"/><test-case name="K2-DayTimeDurationSubtract-2" result="pass"/><test-case name="op-multiply-dayTimeDuration2args-1" result="pass"/><test-case name="op-multiply-dayTimeDuration2args-2" result="pass"/><test-case name="op-multiply-dayTimeDuration2args-3" result="pass"/><test-case name="op-multiply-dayTimeDuration2args-4" result="pass"/><test-case name="op-multiply-dayTimeDuration2args-5" result="pass"/><test-case name="op-multiply-dayTimeDuration-1" result="pass"/><test-case name="op-multiply-dayTimeDuration-2" result="pass"/><test-case name="op-multiply-dayTimeDuration-3" result="pass"/><test-case name="op-multiply-dayTimeDuration-4" result="pass"/><test-case name="op-multiply-dayTimeDuration-5" result="pass"/><test-case name="op-multiply-dayTimeDuration-6" result="pass"/><test-case name="op-multiply-dayTimeDuration-7" result="pass"/><test-case name="op-multiply-dayTimeDuration-8" result="pass"/><test-case name="op-multiply-dayTimeDuration-9" result="pass"/><test-case name="op-multiply-dayTimeDuration-10" result="pass"/><test-case name="op-multiply-dayTimeDuration-11" result="pass"/><test-case name="op-multiply-dayTimeDuration-12" result="pass"/><test-case name="op-multiply-dayTimeDuration-13" result="pass"/><test-case name="op-multiply-dayTimeDuration-14" result="pass"/><test-case name="op-multiply-dayTimeDuration-15" result="pass"/><test-case name="op-multiply-dayTimeDuration-16" result="pass"/><test-case name="op-multiply-dayTimeDuration-17" result="pass"/><test-case name="op-multiply-dayTimeDuration-18" result="pass"/><test-case name="K-DayTimeDurationMultiply-1" result="pass"/><test-case name="K-DayTimeDurationMultiply-2" result="pass"/><test-case name="K-DayTimeDurationMultiply-3" result="pass"/><test-case name="K-DayTimeDurationMultiply-4" result="pass"/><test-case name="K-DayTimeDurationMultiply-5" result="pass"/><test-case name="K-DayTimeDurationMultiply-6" result="pass"/><test-case name="K-DayTimeDurationMultiply-7" result="pass"/><test-case name="K-DayTimeDurationMultiply-8" result="pass"/><test-case name="K-DayTimeDurationMultiply-9" result="pass"/><test-case name="op-divide-dayTimeDuration2args-1" result="pass"/><test-case name="op-divide-dayTimeDuration2args-2" result="pass"/><test-case name="op-divide-dayTimeDuration2args-3" result="pass"/><test-case name="op-divide-dayTimeDuration2args-4" result="pass"/><test-case name="op-divide-dayTimeDuration2args-5" result="pass"/><test-case name="op-divide-dayTimeDuration-2" result="pass"/><test-case name="op-divide-dayTimeDuration-3" result="pass"/><test-case name="op-divide-dayTimeDuration-4" result="pass"/><test-case name="op-divide-dayTimeDuration-5" result="pass"/><test-case name="op-divide-dayTimeDuration-6" result="pass"/><test-case name="op-divide-dayTimeDuration-7" result="pass"/><test-case name="op-divide-dayTimeDuration-8" result="pass"/><test-case name="op-divide-dayTimeDuration-9" result="pass"/><test-case name="op-divide-dayTimeDuration-10" result="pass"/><test-case name="op-divide-dayTimeDuration-11" result="pass"/><test-case name="op-divide-dayTimeDuration-12" result="pass"/><test-case name="op-divide-dayTimeDuration-13" result="pass"/><test-case name="op-divide-dayTimeDuration-14" result="pass"/><test-case name="op-divide-dayTimeDuration-15" result="pass"/><test-case name="op-divide-dayTimeDuration-16" result="pass"/><test-case name="K-DayTimeDurationDivide-1" result="pass"/><test-case name="K-DayTimeDurationDivide-2" result="pass"/><test-case name="K-DayTimeDurationDivide-3" result="pass"/><test-case name="K-DayTimeDurationDivide-4" result="pass"/><test-case name="K-DayTimeDurationDivide-5" result="pass"/><test-case name="K-DayTimeDurationDivide-6" result="pass"/><test-case name="K-DayTimeDurationDivide-7" result="pass"/><test-case name="K-DayTimeDurationDivide-8" result="pass"/><test-case name="K-DayTimeDurationDivide-9" result="pass"/><test-case name="K-DayTimeDurationDivide-10" result="pass"/><test-case name="K-DayTimeDurationDivide-11" result="pass"/><test-case name="K-DayTimeDurationDivide-12" result="pass"/><test-case name="K-DayTimeDurationDivide-13" result="pass"/><test-case name="K-DayTimeDurationDivide-14" result="pass"/><test-case name="K-DayTimeDurationDivide-15" result="pass"/><test-case name="K-DayTimeDurationDivide-16" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dayTimeDuration2args-1" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dayTimeDuration2args-2" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dayTimeDuration2args-3" result="fail"/><test-case name="op-divide-dayTimeDuration-by-dayTimeDuration2args-4" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dayTimeDuration2args-5" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-1" result="fail"/><test-case name="op-divide-dayTimeDuration-by-dTD-2" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-3" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-4" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-5" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-6" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-7" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-8" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-9" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-10" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-11" result="fail"/><test-case name="op-divide-dayTimeDuration-by-dTD-12" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-13" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-14" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-15" result="pass"/><test-case name="op-divide-dayTimeDuration-by-dTD-16" result="pass"/><test-case name="K-DayTimeDurationDivideDTD-1" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-1" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-2" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-3" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-4" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-5" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-6" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-7" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-8" result="fail"/><test-case name="op-subtract-dateTimes-yielding-DTD-9" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-10" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-11" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-12" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-13" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-14" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-15" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-16" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-17" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-18" result="pass"/><test-case name="op-subtract-dateTimes-yielding-DTD-19" result="fail"/><test-case name="op-subtract-dateTimes-yielding-DTD-20" result="fail"/><test-case name="K-dateTimesSubtract-1" result="pass"/><test-case name="K-dateTimesSubtract-2" result="pass"/><test-case name="K-dateTimesSubtract-3" result="pass"/><test-case name="K-dateTimesSubtract-4" result="pass"/><test-case name="K-dateTimesSubtract-5" result="pass"/><test-case name="K-dateTimesSubtract-6" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-1" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-2" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-3" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-4" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-5" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-6" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-7" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-8" result="fail"/><test-case name="op-subtract-dates-yielding-DTD-9" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-10" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-11" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-12" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-13" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-14" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-15" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-16" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-17" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-18" result="pass"/><test-case name="op-subtract-dates-yielding-DTD-19" result="fail"/><test-case name="op-subtract-dates-yielding-DTD-20" result="fail"/><test-case name="K-DatesSubtract-1" result="fail"/><test-case name="K-DatesSubtract-2" result="pass"/><test-case name="K-DatesSubtract-3" result="pass"/><test-case name="K-DatesSubtract-4" result="pass"/><test-case name="K-DatesSubtract-5" result="pass"/><test-case name="K-DatesSubtract-6" result="pass"/><test-case name="op-subtract-times2args-1" result="pass"/><test-case name="op-subtract-times2args-2" result="pass"/><test-case name="op-subtract-times2args-3" result="pass"/><test-case name="op-subtract-times2args-4" result="pass"/><test-case name="op-subtract-times2args-5" result="pass"/><test-case name="op-subtract-times-1" result="pass"/><test-case name="op-subtract-times-2" result="pass"/><test-case name="op-subtract-times-3" result="pass"/><test-case name="op-subtract-times-4" result="pass"/><test-case name="op-subtract-times-5" result="pass"/><test-case name="op-subtract-times-6" result="pass"/><test-case name="op-subtract-times-7" result="pass"/><test-case name="op-subtract-times-8" result="pass"/><test-case name="op-subtract-times-9" result="pass"/><test-case name="op-subtract-times-10" result="pass"/><test-case name="op-subtract-times-11" result="pass"/><test-case name="op-subtract-times-12" result="pass"/><test-case name="op-subtract-times-13" result="pass"/><test-case name="op-subtract-times-14" result="pass"/><test-case name="op-subtract-times-15" result="pass"/><test-case name="op-subtract-times-16" result="pass"/><test-case name="K-TimeSubtract-1" result="pass"/><test-case name="K-TimeSubtract-2" result="pass"/><test-case name="K-TimeSubtract-3" result="pass"/><test-case name="K-TimeSubtract-4" result="pass"/><test-case name="K-TimeSubtract-5" result="pass"/><test-case name="K-TimeSubtract-6" result="pass"/><test-case name="K-TimeSubtract-7" result="pass"/><test-case name="K-TimeSubtract-8" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime2args-1" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime2args-2" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime2args-3" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime2args-4" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime2args-5" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-1" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-2" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-3" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-4" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTimealt-5" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-6" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-7" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-8" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-9" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-10" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-12" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-13" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-14" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-15" result="pass"/><test-case name="op-add-yearMonthDuration-to-dateTime-16" result="pass"/><test-case name="K-YearMonthDurationAddDT-1" result="pass"/><test-case name="K-YearMonthDurationAddDT-2" result="pass"/><test-case name="K-YearMonthDurationAddDT-3" result="pass"/><test-case name="K-YearMonthDurationAddDT-4" result="pass"/><test-case name="K-YearMonthDurationAddDT-5" result="pass"/><test-case name="K-YearMonthDurationAddDT-6" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime2args-1" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime2args-2" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime2args-3" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime2args-4" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime2args-5" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-1" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-2" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-3" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-4" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-5" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-6" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-7" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-8" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-9" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-10" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-12" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-13" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-14" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-15" result="pass"/><test-case name="op-add-dayTimeDuration-to-dateTime-16" result="pass"/><test-case name="K-DateTimeAddDTD-1" result="pass"/><test-case name="K-DateTimeAddDTD-2" result="pass"/><test-case name="K-DateTimeAddDTD-3" result="pass"/><test-case name="K-DateTimeAddDTD-4" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime2args-1" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime2args-2" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime2args-3" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime2args-4" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime2args-5" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-1" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-2" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-3" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-4" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-5" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-6" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-7" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-8" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-9" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-10" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-12" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-13" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-14" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-15" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-dateTime-16" result="pass"/><test-case name="K-DateTimeSubtractYMD-1" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime2args-1" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime2args-2" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime2args-3" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime2args-4" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime2args-5" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-1" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-2" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-3" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-4" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-5" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-6" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-7" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-8" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-9" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-10" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-12" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-13" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-14" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-15" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-dateTime-16" result="pass"/><test-case name="op-add-yearMonthDuration-to-date2args-1" result="pass"/><test-case name="op-add-yearMonthDuration-to-date2args-2" result="pass"/><test-case name="op-add-yearMonthDuration-to-date2args-3" result="pass"/><test-case name="op-add-yearMonthDuration-to-date2args-4" result="pass"/><test-case name="op-add-yearMonthDuration-to-date2args-5" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-1" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-2" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-3" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-4" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-5" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-6" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-7" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-8" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-9" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-10" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-12" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-13" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-14" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-15" result="pass"/><test-case name="op-add-yearMonthDuration-to-date-16" result="pass"/><test-case name="K-DateAddYMD-1" result="pass"/><test-case name="K-DateAddYMD-2" result="pass"/><test-case name="K-DateAddYMD-3" result="pass"/><test-case name="K-DateAddYMD-4" result="pass"/><test-case name="op-add-dayTimeDuration-to-date2args-1" result="pass"/><test-case name="op-add-dayTimeDuration-to-date2args-2" result="pass"/><test-case name="op-add-dayTimeDuration-to-date2args-3" result="pass"/><test-case name="op-add-dayTimeDuration-to-date2args-4" result="pass"/><test-case name="op-add-dayTimeDuration-to-date2args-5" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-1" result="pass"/><test-case name="op-add-dayTimeDuration-to-datealt-2" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-3" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-4" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-5" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-6" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-7" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-8" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-9" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-10" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-12" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-13" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-14" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-15" result="pass"/><test-case name="op-add-dayTimeDuration-to-date-16" result="pass"/><test-case name="K-DateAddDTD-1" result="pass"/><test-case name="K-DateAddDTD-2" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date2args-1" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date2args-2" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date2args-3" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date2args-4" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date2args-5" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-1" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-2" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-3" result="fail"/><test-case name="op-subtract-yearMonthDuration-from-date-4" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-5" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-6" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-7" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-8" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-9" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-10" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-12" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-13" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-14" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-15" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-16" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-17" result="pass"/><test-case name="op-subtract-yearMonthDuration-from-date-18" result="pass"/><test-case name="K-DateSubtractYMD-1" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date2args-1" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date2args-2" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date2args-3" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date2args-4" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date2args-5" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-1" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-2" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-3" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-4" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-5" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-6" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-7" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-8" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-9" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-10" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-12" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-13" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-14" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-15" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-date-16" result="pass"/><test-case name="K-DateSubtractDTD-1" result="pass"/><test-case name="op-add-dayTimeDuration-to-time2args-1" result="pass"/><test-case name="op-add-dayTimeDuration-to-time2args-2" result="pass"/><test-case name="op-add-dayTimeDuration-to-time2args-3" result="pass"/><test-case name="op-add-dayTimeDuration-to-time2args-4" result="pass"/><test-case name="op-add-dayTimeDuration-to-time2args-5" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-1" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-2" result="fail"/><test-case name="op-add-dayTimeDuration-to-time-3" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-4" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-5" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-6" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-7" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-8" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-9" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-10" result="pass"/><test-case name="op-add-dayTimeDuration-to-timealt-12" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-13" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-14" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-15" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-16" result="pass"/><test-case name="op-add-dayTimeDuration-to-time-17" result="pass"/><test-case name="K-TimeAddDTD-1" result="pass"/><test-case name="K-TimeAddDTD-2" result="pass"/><test-case name="K2-TimeAddDTD-1" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time2args-1" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time2args-2" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time2args-3" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time2args-4" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time2args-5" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-1" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-2" result="fail"/><test-case name="op-subtract-dayTimeDuration-from-time-3" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-4" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-5" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-6" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-7" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-8" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-9" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-10" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-12" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-13" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-14" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-15" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-16" result="pass"/><test-case name="op-subtract-dayTimeDuration-from-time-17" result="pass"/><test-case name="K-TimeSubtractDTD-1" result="pass"/><test-case name="K-TimeSubtractDTD-2" result="pass"/><test-case name="K-TimeSubtractDTD-3" result="pass"/><test-case name="K-TimeSubtractDTD-4" result="pass"/><test-case name="K-TimeSubtractDTD-5" result="pass"/><test-case name="op-numeric-equalint2args-1" result="pass"/><test-case name="op-numeric-equalint2args-2" result="pass"/><test-case name="op-numeric-equalint2args-3" result="pass"/><test-case name="op-numeric-equalint2args-4" result="pass"/><test-case name="op-numeric-equalint2args-5" result="pass"/><test-case name="op-numeric-equalint2args-6" result="pass"/><test-case name="op-numeric-equalint2args-7" result="pass"/><test-case name="op-numeric-equalint2args-8" result="pass"/><test-case name="op-numeric-equalint2args-9" result="pass"/><test-case name="op-numeric-equalint2args-10" result="pass"/><test-case name="op-numeric-equalintg2args-1" result="pass"/><test-case name="op-numeric-equalintg2args-2" result="pass"/><test-case name="op-numeric-equalintg2args-3" result="pass"/><test-case name="op-numeric-equalintg2args-4" result="pass"/><test-case name="op-numeric-equalintg2args-5" result="pass"/><test-case name="op-numeric-equalintg2args-6" result="pass"/><test-case name="op-numeric-equalintg2args-7" result="pass"/><test-case name="op-numeric-equalintg2args-8" result="pass"/><test-case name="op-numeric-equalintg2args-9" result="pass"/><test-case name="op-numeric-equalintg2args-10" result="pass"/><test-case name="op-numeric-equaldec2args-1" result="pass"/><test-case name="op-numeric-equaldec2args-2" result="pass"/><test-case name="op-numeric-equaldec2args-3" result="pass"/><test-case name="op-numeric-equaldec2args-4" result="pass"/><test-case name="op-numeric-equaldec2args-5" result="pass"/><test-case name="op-numeric-equaldec2args-6" result="pass"/><test-case name="op-numeric-equaldec2args-7" result="pass"/><test-case name="op-numeric-equaldec2args-8" result="pass"/><test-case name="op-numeric-equaldec2args-9" result="pass"/><test-case name="op-numeric-equaldec2args-10" result="pass"/><test-case name="op-numeric-equaldbl2args-1" result="pass"/><test-case name="op-numeric-equaldbl2args-2" result="pass"/><test-case name="op-numeric-equaldbl2args-3" result="pass"/><test-case name="op-numeric-equaldbl2args-4" result="pass"/><test-case name="op-numeric-equaldbl2args-5" result="pass"/><test-case name="op-numeric-equaldbl2args-6" result="pass"/><test-case name="op-numeric-equaldbl2args-7" result="pass"/><test-case name="op-numeric-equaldbl2args-8" result="pass"/><test-case name="op-numeric-equaldbl2args-9" result="pass"/><test-case name="op-numeric-equaldbl2args-10" result="pass"/><test-case name="op-numeric-equalflt2args-1" result="pass"/><test-case name="op-numeric-equalflt2args-2" result="pass"/><test-case name="op-numeric-equalflt2args-3" result="pass"/><test-case name="op-numeric-equalflt2args-4" result="pass"/><test-case name="op-numeric-equalflt2args-5" result="pass"/><test-case name="op-numeric-equalflt2args-6" result="pass"/><test-case name="op-numeric-equalflt2args-7" result="pass"/><test-case name="op-numeric-equalflt2args-8" result="pass"/><test-case name="op-numeric-equalflt2args-9" result="pass"/><test-case name="op-numeric-equalflt2args-10" result="pass"/><test-case name="op-numeric-equallng2args-1" result="pass"/><test-case name="op-numeric-equallng2args-2" result="pass"/><test-case name="op-numeric-equallng2args-3" result="pass"/><test-case name="op-numeric-equallng2args-4" result="pass"/><test-case name="op-numeric-equallng2args-5" result="pass"/><test-case name="op-numeric-equallng2args-6" result="pass"/><test-case name="op-numeric-equallng2args-7" result="pass"/><test-case name="op-numeric-equallng2args-8" result="pass"/><test-case name="op-numeric-equallng2args-9" result="pass"/><test-case name="op-numeric-equallng2args-10" result="pass"/><test-case name="op-numeric-equalusht2args-1" result="pass"/><test-case name="op-numeric-equalusht2args-2" result="pass"/><test-case name="op-numeric-equalusht2args-3" result="pass"/><test-case name="op-numeric-equalusht2args-4" result="pass"/><test-case name="op-numeric-equalusht2args-5" result="pass"/><test-case name="op-numeric-equalusht2args-6" result="pass"/><test-case name="op-numeric-equalusht2args-7" result="pass"/><test-case name="op-numeric-equalusht2args-8" result="pass"/><test-case name="op-numeric-equalusht2args-9" result="pass"/><test-case name="op-numeric-equalusht2args-10" result="pass"/><test-case name="op-numeric-equalnint2args-1" result="pass"/><test-case name="op-numeric-equalnint2args-2" result="pass"/><test-case name="op-numeric-equalnint2args-3" result="pass"/><test-case name="op-numeric-equalnint2args-4" result="pass"/><test-case name="op-numeric-equalnint2args-5" result="pass"/><test-case name="op-numeric-equalnint2args-6" result="pass"/><test-case name="op-numeric-equalnint2args-7" result="pass"/><test-case name="op-numeric-equalnint2args-8" result="pass"/><test-case name="op-numeric-equalnint2args-9" result="pass"/><test-case name="op-numeric-equalnint2args-10" result="pass"/><test-case name="op-numeric-equalpint2args-1" result="pass"/><test-case name="op-numeric-equalpint2args-2" result="pass"/><test-case name="op-numeric-equalpint2args-3" result="pass"/><test-case name="op-numeric-equalpint2args-4" result="pass"/><test-case name="op-numeric-equalpint2args-5" result="pass"/><test-case name="op-numeric-equalpint2args-6" result="pass"/><test-case name="op-numeric-equalpint2args-7" result="pass"/><test-case name="op-numeric-equalpint2args-8" result="pass"/><test-case name="op-numeric-equalpint2args-9" result="pass"/><test-case name="op-numeric-equalpint2args-10" result="pass"/><test-case name="op-numeric-equalulng2args-1" result="pass"/><test-case name="op-numeric-equalulng2args-2" result="pass"/><test-case name="op-numeric-equalulng2args-3" result="pass"/><test-case name="op-numeric-equalulng2args-4" result="pass"/><test-case name="op-numeric-equalulng2args-5" result="pass"/><test-case name="op-numeric-equalulng2args-6" result="pass"/><test-case name="op-numeric-equalulng2args-7" result="pass"/><test-case name="op-numeric-equalulng2args-8" result="pass"/><test-case name="op-numeric-equalulng2args-9" result="pass"/><test-case name="op-numeric-equalulng2args-10" result="pass"/><test-case name="op-numeric-equalnpi2args-1" result="pass"/><test-case name="op-numeric-equalnpi2args-2" result="pass"/><test-case name="op-numeric-equalnpi2args-3" result="pass"/><test-case name="op-numeric-equalnpi2args-4" result="pass"/><test-case name="op-numeric-equalnpi2args-5" result="pass"/><test-case name="op-numeric-equalnpi2args-6" result="pass"/><test-case name="op-numeric-equalnpi2args-7" result="pass"/><test-case name="op-numeric-equalnpi2args-8" result="pass"/><test-case name="op-numeric-equalnpi2args-9" result="pass"/><test-case name="op-numeric-equalnpi2args-10" result="pass"/><test-case name="op-numeric-equalnni2args-1" result="pass"/><test-case name="op-numeric-equalnni2args-2" result="pass"/><test-case name="op-numeric-equalnni2args-3" result="pass"/><test-case name="op-numeric-equalnni2args-4" result="pass"/><test-case name="op-numeric-equalnni2args-5" result="pass"/><test-case name="op-numeric-equalnni2args-6" result="pass"/><test-case name="op-numeric-equalnni2args-7" result="pass"/><test-case name="op-numeric-equalnni2args-8" result="pass"/><test-case name="op-numeric-equalnni2args-9" result="pass"/><test-case name="op-numeric-equalnni2args-10" result="pass"/><test-case name="op-numeric-equalsht2args-1" result="pass"/><test-case name="op-numeric-equalsht2args-2" result="pass"/><test-case name="op-numeric-equalsht2args-3" result="pass"/><test-case name="op-numeric-equalsht2args-4" result="pass"/><test-case name="op-numeric-equalsht2args-5" result="pass"/><test-case name="op-numeric-equalsht2args-6" result="pass"/><test-case name="op-numeric-equalsht2args-7" result="pass"/><test-case name="op-numeric-equalsht2args-8" result="pass"/><test-case name="op-numeric-equalsht2args-9" result="pass"/><test-case name="op-numeric-equalsht2args-10" result="pass"/><test-case name="op-numeric-equal-emptyseq" result="pass"/><test-case name="K-NumericEqual-1" result="pass"/><test-case name="K-NumericEqual-2" result="pass"/><test-case name="K-NumericEqual-3" result="pass"/><test-case name="K-NumericEqual-4" result="pass"/><test-case name="K-NumericEqual-5" result="pass"/><test-case name="K-NumericEqual-6" result="pass"/><test-case name="K-NumericEqual-7" result="pass"/><test-case name="K-NumericEqual-8" result="pass"/><test-case name="K-NumericEqual-9" result="pass"/><test-case name="K-NumericEqual-10" result="pass"/><test-case name="K-NumericEqual-11" result="pass"/><test-case name="K-NumericEqual-12" result="pass"/><test-case name="K-NumericEqual-13" result="pass"/><test-case name="K-NumericEqual-14" result="pass"/><test-case name="K-NumericEqual-15" result="pass"/><test-case name="K-NumericEqual-16" result="pass"/><test-case name="K-NumericEqual-17" result="pass"/><test-case name="K-NumericEqual-18" result="pass"/><test-case name="K-NumericEqual-19" result="pass"/><test-case name="K-NumericEqual-20" result="pass"/><test-case name="K-NumericEqual-21" result="pass"/><test-case name="K-NumericEqual-22" result="pass"/><test-case name="K-NumericEqual-23" result="pass"/><test-case name="K-NumericEqual-24" result="pass"/><test-case name="K-NumericEqual-25" result="pass"/><test-case name="K-NumericEqual-26" result="pass"/><test-case name="K-NumericEqual-27" result="pass"/><test-case name="K-NumericEqual-28" result="pass"/><test-case name="K-NumericEqual-29" result="pass"/><test-case name="K-NumericEqual-30" result="pass"/><test-case name="K-NumericEqual-31" result="pass"/><test-case name="K-NumericEqual-32" result="pass"/><test-case name="K-NumericEqual-33" result="pass"/><test-case name="K-NumericEqual-34" result="pass"/><test-case name="K-NumericEqual-35" result="pass"/><test-case name="K-NumericEqual-36" result="pass"/><test-case name="K-NumericEqual-37" result="pass"/><test-case name="K-NumericEqual-38" result="pass"/><test-case name="K-NumericEqual-39" result="pass"/><test-case name="K-NumericEqual-40" result="pass"/><test-case name="K-NumericEqual-41" result="pass"/><test-case name="K-NumericEqual-42" result="pass"/><test-case name="K-NumericEqual-43" result="pass"/><test-case name="K-NumericEqual-44" result="pass"/><test-case name="K-NumericEqual-45" result="pass"/><test-case name="K-NumericEqual-46" result="pass"/><test-case name="K-NumericEqual-47" result="pass"/><test-case name="K2-NumericEqual-1" result="pass"/><test-case name="K2-NumericEqual-2" result="pass"/><test-case name="K2-NumericEqual-3" result="pass"/><test-case name="K2-NumericEqual-4" result="pass"/><test-case name="K2-NumericEqual-5" result="pass"/><test-case name="K2-NumericEqual-6" result="pass"/><test-case name="op-numeric-less-thanint2args-1" result="pass"/><test-case name="op-numeric-less-thanint2args-2" result="pass"/><test-case name="op-numeric-less-thanint2args-3" result="pass"/><test-case name="op-numeric-less-thanint2args-4" result="pass"/><test-case name="op-numeric-less-thanint2args-5" result="pass"/><test-case name="op-numeric-less-thanint2args-6" result="pass"/><test-case name="op-numeric-less-thanint2args-7" result="pass"/><test-case name="op-numeric-less-thanint2args-8" result="pass"/><test-case name="op-numeric-less-thanint2args-9" result="pass"/><test-case name="op-numeric-less-thanint2args-10" result="pass"/><test-case name="op-numeric-less-thanintg2args-1" result="pass"/><test-case name="op-numeric-less-thanintg2args-2" result="pass"/><test-case name="op-numeric-less-thanintg2args-3" result="pass"/><test-case name="op-numeric-less-thanintg2args-4" result="pass"/><test-case name="op-numeric-less-thanintg2args-5" result="pass"/><test-case name="op-numeric-less-thanintg2args-6" result="pass"/><test-case name="op-numeric-less-thanintg2args-7" result="pass"/><test-case name="op-numeric-less-thanintg2args-8" result="pass"/><test-case name="op-numeric-less-thanintg2args-9" result="pass"/><test-case name="op-numeric-less-thanintg2args-10" result="pass"/><test-case name="op-numeric-less-thandec2args-1" result="pass"/><test-case name="op-numeric-less-thandec2args-2" result="pass"/><test-case name="op-numeric-less-thandec2args-3" result="pass"/><test-case name="op-numeric-less-thandec2args-4" result="pass"/><test-case name="op-numeric-less-thandec2args-5" result="pass"/><test-case name="op-numeric-less-thandec2args-6" result="pass"/><test-case name="op-numeric-less-thandec2args-7" result="pass"/><test-case name="op-numeric-less-thandec2args-8" result="pass"/><test-case name="op-numeric-less-thandec2args-9" result="pass"/><test-case name="op-numeric-less-thandec2args-10" result="pass"/><test-case name="op-numeric-less-thandbl2args-1" result="pass"/><test-case name="op-numeric-less-thandbl2args-2" result="pass"/><test-case name="op-numeric-less-thandbl2args-3" result="pass"/><test-case name="op-numeric-less-thandbl2args-4" result="pass"/><test-case name="op-numeric-less-thandbl2args-5" result="pass"/><test-case name="op-numeric-less-thandbl2args-6" result="pass"/><test-case name="op-numeric-less-thandbl2args-7" result="pass"/><test-case name="op-numeric-less-thandbl2args-8" result="pass"/><test-case name="op-numeric-less-thandbl2args-9" result="pass"/><test-case name="op-numeric-less-thandbl2args-10" result="pass"/><test-case name="op-numeric-less-thanflt2args-1" result="pass"/><test-case name="op-numeric-less-thanflt2args-2" result="pass"/><test-case name="op-numeric-less-thanflt2args-3" result="pass"/><test-case name="op-numeric-less-thanflt2args-4" result="pass"/><test-case name="op-numeric-less-thanflt2args-5" result="pass"/><test-case name="op-numeric-less-thanflt2args-6" result="pass"/><test-case name="op-numeric-less-thanflt2args-7" result="pass"/><test-case name="op-numeric-less-thanflt2args-8" result="pass"/><test-case name="op-numeric-less-thanflt2args-9" result="pass"/><test-case name="op-numeric-less-thanflt2args-10" result="pass"/><test-case name="op-numeric-less-thanlng2args-1" result="pass"/><test-case name="op-numeric-less-thanlng2args-2" result="pass"/><test-case name="op-numeric-less-thanlng2args-3" result="pass"/><test-case name="op-numeric-less-thanlng2args-4" result="pass"/><test-case name="op-numeric-less-thanlng2args-5" result="pass"/><test-case name="op-numeric-less-thanlng2args-6" result="pass"/><test-case name="op-numeric-less-thanlng2args-7" result="pass"/><test-case name="op-numeric-less-thanlng2args-8" result="pass"/><test-case name="op-numeric-less-thanlng2args-9" result="pass"/><test-case name="op-numeric-less-thanlng2args-10" result="pass"/><test-case name="op-numeric-less-thanusht2args-1" result="pass"/><test-case name="op-numeric-less-thanusht2args-2" result="pass"/><test-case name="op-numeric-less-thanusht2args-3" result="pass"/><test-case name="op-numeric-less-thanusht2args-4" result="pass"/><test-case name="op-numeric-less-thanusht2args-5" result="pass"/><test-case name="op-numeric-less-thanusht2args-6" result="pass"/><test-case name="op-numeric-less-thanusht2args-7" result="pass"/><test-case name="op-numeric-less-thanusht2args-8" result="pass"/><test-case name="op-numeric-less-thanusht2args-9" result="pass"/><test-case name="op-numeric-less-thanusht2args-10" result="pass"/><test-case name="op-numeric-less-thannint2args-1" result="pass"/><test-case name="op-numeric-less-thannint2args-2" result="pass"/><test-case name="op-numeric-less-thannint2args-3" result="pass"/><test-case name="op-numeric-less-thannint2args-4" result="pass"/><test-case name="op-numeric-less-thannint2args-5" result="pass"/><test-case name="op-numeric-less-thannint2args-6" result="pass"/><test-case name="op-numeric-less-thannint2args-7" result="pass"/><test-case name="op-numeric-less-thannint2args-8" result="pass"/><test-case name="op-numeric-less-thannint2args-9" result="pass"/><test-case name="op-numeric-less-thannint2args-10" result="pass"/><test-case name="op-numeric-less-thanpint2args-1" result="pass"/><test-case name="op-numeric-less-thanpint2args-2" result="pass"/><test-case name="op-numeric-less-thanpint2args-3" result="pass"/><test-case name="op-numeric-less-thanpint2args-4" result="pass"/><test-case name="op-numeric-less-thanpint2args-5" result="pass"/><test-case name="op-numeric-less-thanpint2args-6" result="pass"/><test-case name="op-numeric-less-thanpint2args-7" result="pass"/><test-case name="op-numeric-less-thanpint2args-8" result="pass"/><test-case name="op-numeric-less-thanpint2args-9" result="pass"/><test-case name="op-numeric-less-thanpint2args-10" result="pass"/><test-case name="op-numeric-less-thanulng2args-1" result="pass"/><test-case name="op-numeric-less-thanulng2args-2" result="pass"/><test-case name="op-numeric-less-thanulng2args-3" result="pass"/><test-case name="op-numeric-less-thanulng2args-4" result="pass"/><test-case name="op-numeric-less-thanulng2args-5" result="pass"/><test-case name="op-numeric-less-thanulng2args-6" result="pass"/><test-case name="op-numeric-less-thanulng2args-7" result="pass"/><test-case name="op-numeric-less-thanulng2args-8" result="pass"/><test-case name="op-numeric-less-thanulng2args-9" result="pass"/><test-case name="op-numeric-less-thanulng2args-10" result="pass"/><test-case name="op-numeric-less-thannpi2args-1" result="pass"/><test-case name="op-numeric-less-thannpi2args-2" result="pass"/><test-case name="op-numeric-less-thannpi2args-3" result="pass"/><test-case name="op-numeric-less-thannpi2args-4" result="pass"/><test-case name="op-numeric-less-thannpi2args-5" result="pass"/><test-case name="op-numeric-less-thannpi2args-6" result="pass"/><test-case name="op-numeric-less-thannpi2args-7" result="pass"/><test-case name="op-numeric-less-thannpi2args-8" result="pass"/><test-case name="op-numeric-less-thannpi2args-9" result="pass"/><test-case name="op-numeric-less-thannpi2args-10" result="pass"/><test-case name="op-numeric-less-thannni2args-1" result="pass"/><test-case name="op-numeric-less-thannni2args-2" result="pass"/><test-case name="op-numeric-less-thannni2args-3" result="pass"/><test-case name="op-numeric-less-thannni2args-4" result="pass"/><test-case name="op-numeric-less-thannni2args-5" result="pass"/><test-case name="op-numeric-less-thannni2args-6" result="pass"/><test-case name="op-numeric-less-thannni2args-7" result="pass"/><test-case name="op-numeric-less-thannni2args-8" result="pass"/><test-case name="op-numeric-less-thannni2args-9" result="pass"/><test-case name="op-numeric-less-thannni2args-10" result="pass"/><test-case name="op-numeric-less-thansht2args-1" result="pass"/><test-case name="op-numeric-less-thansht2args-2" result="pass"/><test-case name="op-numeric-less-thansht2args-3" result="pass"/><test-case name="op-numeric-less-thansht2args-4" result="pass"/><test-case name="op-numeric-less-thansht2args-5" result="pass"/><test-case name="op-numeric-less-thansht2args-6" result="pass"/><test-case name="op-numeric-less-thansht2args-7" result="pass"/><test-case name="op-numeric-less-thansht2args-8" result="pass"/><test-case name="op-numeric-less-thansht2args-9" result="pass"/><test-case name="op-numeric-less-thansht2args-10" result="pass"/><test-case name="K-NumericLT-1" result="pass"/><test-case name="K-NumericLT-2" result="pass"/><test-case name="K-NumericLT-3" result="pass"/><test-case name="K-NumericLT-4" result="pass"/><test-case name="K-NumericLT-5" result="pass"/><test-case name="K-NumericLT-6" result="pass"/><test-case name="K-NumericLT-7" result="pass"/><test-case name="K-NumericLT-8" result="pass"/><test-case name="K-NumericLT-9" result="pass"/><test-case name="K-NumericLT-10" result="pass"/><test-case name="K-NumericLT-11" result="pass"/><test-case name="K-NumericLT-12" result="pass"/><test-case name="K-NumericLT-13" result="pass"/><test-case name="K-NumericLT-14" result="pass"/><test-case name="K-NumericLT-15" result="pass"/><test-case name="K-NumericLT-16" result="pass"/><test-case name="K-NumericLT-17" result="pass"/><test-case name="K-NumericLT-18" result="pass"/><test-case name="K-NumericLT-19" result="pass"/><test-case name="K-NumericLT-20" result="pass"/><test-case name="K-NumericLT-21" result="pass"/><test-case name="K-NumericLT-22" result="pass"/><test-case name="op-numeric-greater-thanint2args-1" result="pass"/><test-case name="op-numeric-greater-thanint2args-2" result="pass"/><test-case name="op-numeric-greater-thanint2args-3" result="pass"/><test-case name="op-numeric-greater-thanint2args-4" result="pass"/><test-case name="op-numeric-greater-thanint2args-5" result="pass"/><test-case name="op-numeric-greater-thanintg2args-1" result="pass"/><test-case name="op-numeric-greater-thanintg2args-2" result="pass"/><test-case name="op-numeric-greater-thanintg2args-3" result="pass"/><test-case name="op-numeric-greater-thanintg2args-4" result="pass"/><test-case name="op-numeric-greater-thanintg2args-5" result="pass"/><test-case name="op-numeric-greater-thandec2args-1" result="pass"/><test-case name="op-numeric-greater-thandec2args-2" result="pass"/><test-case name="op-numeric-greater-thandec2args-3" result="pass"/><test-case name="op-numeric-greater-thandec2args-4" result="pass"/><test-case name="op-numeric-greater-thandec2args-5" result="pass"/><test-case name="op-numeric-greater-thandbl2args-1" result="pass"/><test-case name="op-numeric-greater-thandbl2args-2" result="pass"/><test-case name="op-numeric-greater-thandbl2args-3" result="pass"/><test-case name="op-numeric-greater-thandbl2args-4" result="pass"/><test-case name="op-numeric-greater-thandbl2args-5" result="pass"/><test-case name="op-numeric-greater-thanflt2args-1" result="pass"/><test-case name="op-numeric-greater-thanflt2args-2" result="pass"/><test-case name="op-numeric-greater-thanflt2args-3" result="pass"/><test-case name="op-numeric-greater-thanflt2args-4" result="pass"/><test-case name="op-numeric-greater-thanflt2args-5" result="pass"/><test-case name="op-numeric-greater-thanlng2args-1" result="pass"/><test-case name="op-numeric-greater-thanlng2args-2" result="pass"/><test-case name="op-numeric-greater-thanlng2args-3" result="pass"/><test-case name="op-numeric-greater-thanlng2args-4" result="pass"/><test-case name="op-numeric-greater-thanlng2args-5" result="pass"/><test-case name="op-numeric-greater-thanusht2args-1" result="pass"/><test-case name="op-numeric-greater-thanusht2args-2" result="pass"/><test-case name="op-numeric-greater-thanusht2args-3" result="pass"/><test-case name="op-numeric-greater-thanusht2args-4" result="pass"/><test-case name="op-numeric-greater-thanusht2args-5" result="pass"/><test-case name="op-numeric-greater-thannint2args-1" result="pass"/><test-case name="op-numeric-greater-thannint2args-2" result="pass"/><test-case name="op-numeric-greater-thannint2args-3" result="pass"/><test-case name="op-numeric-greater-thannint2args-4" result="pass"/><test-case name="op-numeric-greater-thannint2args-5" result="pass"/><test-case name="op-numeric-greater-thanpint2args-1" result="pass"/><test-case name="op-numeric-greater-thanpint2args-2" result="pass"/><test-case name="op-numeric-greater-thanpint2args-3" result="pass"/><test-case name="op-numeric-greater-thanpint2args-4" result="pass"/><test-case name="op-numeric-greater-thanpint2args-5" result="pass"/><test-case name="op-numeric-greater-thanulng2args-1" result="pass"/><test-case name="op-numeric-greater-thanulng2args-2" result="pass"/><test-case name="op-numeric-greater-thanulng2args-3" result="pass"/><test-case name="op-numeric-greater-thanulng2args-4" result="pass"/><test-case name="op-numeric-greater-thanulng2args-5" result="pass"/><test-case name="op-numeric-greater-thannpi2args-1" result="pass"/><test-case name="op-numeric-greater-thannpi2args-2" result="pass"/><test-case name="op-numeric-greater-thannpi2args-3" result="pass"/><test-case name="op-numeric-greater-thannpi2args-4" result="pass"/><test-case name="op-numeric-greater-thannpi2args-5" result="pass"/><test-case name="op-numeric-greater-thannni2args-1" result="pass"/><test-case name="op-numeric-greater-thannni2args-2" result="pass"/><test-case name="op-numeric-greater-thannni2args-3" result="pass"/><test-case name="op-numeric-greater-thannni2args-4" result="pass"/><test-case name="op-numeric-greater-thannni2args-5" result="pass"/><test-case name="op-numeric-greater-thansht2args-1" result="pass"/><test-case name="op-numeric-greater-thansht2args-2" result="pass"/><test-case name="op-numeric-greater-thansht2args-3" result="pass"/><test-case name="op-numeric-greater-thansht2args-4" result="pass"/><test-case name="op-numeric-greater-thansht2args-5" result="pass"/><test-case name="K-NumericGT-1" result="pass"/><test-case name="K-NumericGT-2" result="pass"/><test-case name="K-NumericGT-3" result="pass"/><test-case name="K-NumericGT-4" result="pass"/><test-case name="K-NumericGT-5" result="pass"/><test-case name="K-NumericGT-6" result="pass"/><test-case name="K-NumericGT-7" result="pass"/><test-case name="K-NumericGT-8" result="pass"/><test-case name="K-NumericGT-9" result="pass"/><test-case name="K-NumericGT-10" result="pass"/><test-case name="K-NumericGT-11" result="pass"/><test-case name="K-NumericGT-12" result="pass"/><test-case name="K-NumericGT-13" result="pass"/><test-case name="K-NumericGT-14" result="pass"/><test-case name="K-NumericGT-15" result="pass"/><test-case name="K-NumericGT-16" result="pass"/><test-case name="K-NumericGT-17" result="pass"/><test-case name="K-NumericGT-18" result="pass"/><test-case name="K-NumericGT-19" result="pass"/><test-case name="K-NumericGT-20" result="pass"/><test-case name="K-NumericGT-21" result="pass"/><test-case name="K-NumericGT-22" result="pass"/><test-case name="K-NumericGT-23" result="pass"/><test-case name="op-boolean-equal2args-1" result="pass"/><test-case name="op-boolean-equal2args-2" result="pass"/><test-case name="op-boolean-equal2args-3" result="pass"/><test-case name="op-boolean-equal2args-4" result="pass"/><test-case name="op-boolean-equal2args-5" result="pass"/><test-case name="op-boolean-equal-1" result="pass"/><test-case name="op-boolean-equal-2" result="pass"/><test-case name="op-boolean-equal-3" result="pass"/><test-case name="op-boolean-equal-4" result="pass"/><test-case name="op-boolean-equal-5" result="pass"/><test-case name="op-boolean-equal-6" result="pass"/><test-case name="op-boolean-equal-7" result="pass"/><test-case name="op-boolean-equal-8" result="pass"/><test-case name="op-boolean-equal-9" result="pass"/><test-case name="op-boolean-equal-10" result="pass"/><test-case name="op-boolean-equal-11" result="pass"/><test-case name="op-boolean-equal-12" result="pass"/><test-case name="op-boolean-equal-13" result="pass"/><test-case name="op-boolean-equal-14" result="pass"/><test-case name="op-boolean-equal-15" result="pass"/><test-case name="op-boolean-equal-16" result="pass"/><test-case name="op-boolean-equal-17" result="pass"/><test-case name="op-boolean-equal-more-args-001" result="pass"/><test-case name="op-boolean-equal-more-args-002" result="pass"/><test-case name="op-boolean-equal-more-args-003" result="pass"/><test-case name="op-boolean-equal-more-args-004" result="pass"/><test-case name="op-boolean-equal-more-args-005" result="pass"/><test-case name="op-boolean-equal-more-args-006" result="pass"/><test-case name="op-boolean-equal-more-args-007" result="pass"/><test-case name="op-boolean-equal-more-args-008" result="pass"/><test-case name="op-boolean-equal-more-args-009" result="pass"/><test-case name="op-boolean-equal-more-args-010" result="pass"/><test-case name="op-boolean-equal-more-args-011" result="pass"/><test-case name="op-boolean-equal-more-args-012" result="pass"/><test-case name="op-boolean-equal-more-args-013" result="pass"/><test-case name="op-boolean-equal-more-args-014" result="pass"/><test-case name="op-boolean-equal-more-args-015" result="pass"/><test-case name="op-boolean-equal-more-args-016" result="pass"/><test-case name="op-boolean-equal-more-args-017" result="pass"/><test-case name="op-boolean-equal-more-args-018" result="pass"/><test-case name="op-boolean-equal-more-args-019" result="pass"/><test-case name="K-BooleanEqual-1" result="pass"/><test-case name="K-BooleanEqual-2" result="pass"/><test-case name="K-BooleanEqual-3" result="pass"/><test-case name="K-BooleanEqual-4" result="pass"/><test-case name="K-BooleanEqual-5" result="pass"/><test-case name="K2-BooleanEqual-1" result="pass"/><test-case name="K2-BooleanEqual-2" result="pass"/><test-case name="K2-BooleanEqual-3" result="pass"/><test-case name="op-boolean-less-than2args-1" result="pass"/><test-case name="op-boolean-less-than2args-2" result="pass"/><test-case name="op-boolean-less-than2args-3" result="pass"/><test-case name="op-boolean-less-than2args-4" result="pass"/><test-case name="op-boolean-less-than2args-5" result="pass"/><test-case name="op-boolean-less-than2args-6" result="pass"/><test-case name="op-boolean-less-than2args-7" result="pass"/><test-case name="op-boolean-less-than2args-8" result="pass"/><test-case name="op-boolean-less-than2args-9" result="pass"/><test-case name="op-boolean-less-than2args-10" result="pass"/><test-case name="op-boolean-less-than-1" result="pass"/><test-case name="op-boolean-less-than-2" result="pass"/><test-case name="op-boolean-less-than-3" result="pass"/><test-case name="op-boolean-less-than-4" result="pass"/><test-case name="op-boolean-less-than-5" result="pass"/><test-case name="op-boolean-less-than-6" result="pass"/><test-case name="op-boolean-less-than-7" result="pass"/><test-case name="op-boolean-less-than-8" result="pass"/><test-case name="op-boolean-less-than-9" result="pass"/><test-case name="op-boolean-less-than-10" result="pass"/><test-case name="op-boolean-less-than-11" result="pass"/><test-case name="op-boolean-less-than-12" result="pass"/><test-case name="op-boolean-less-than-more-args-001" result="pass"/><test-case name="op-boolean-less-than-more-args-002" result="pass"/><test-case name="op-boolean-less-than-more-args-003" result="pass"/><test-case name="op-boolean-less-than-more-args-004" result="pass"/><test-case name="op-boolean-less-than-more-args-005" result="pass"/><test-case name="op-boolean-less-than-more-args-006" result="pass"/><test-case name="op-boolean-less-than-more-args-007" result="pass"/><test-case name="op-boolean-less-than-more-args-008" result="pass"/><test-case name="op-boolean-less-than-more-args-009" result="pass"/><test-case name="op-boolean-less-than-more-args-010" result="pass"/><test-case name="op-boolean-less-than-more-args-011" result="pass"/><test-case name="op-boolean-less-than-more-args-012" result="pass"/><test-case name="op-boolean-less-than-more-args-013" result="pass"/><test-case name="op-boolean-less-than-more-args-014" result="pass"/><test-case name="K-BooleanLT-1" result="pass"/><test-case name="K-BooleanLT-2" result="pass"/><test-case name="K-BooleanLT-3" result="pass"/><test-case name="op-boolean-greater-than2args-1" result="pass"/><test-case name="op-boolean-greater-than2args-2" result="pass"/><test-case name="op-boolean-greater-than2args-3" result="pass"/><test-case name="op-boolean-greater-than2args-4" result="pass"/><test-case name="op-boolean-greater-than2args-5" result="pass"/><test-case name="op-boolean-greater-than2args-6" result="pass"/><test-case name="op-boolean-greater-than2args-7" result="pass"/><test-case name="op-boolean-greater-than2args-8" result="pass"/><test-case name="op-boolean-greater-than2args-9" result="pass"/><test-case name="op-boolean-greater-than2args-10" result="pass"/><test-case name="op-boolean-greater-than-1" result="pass"/><test-case name="op-boolean-greater-than-2" result="pass"/><test-case name="op-boolean-greater-than-3" result="pass"/><test-case name="op-boolean-greater-than-4" result="pass"/><test-case name="op-boolean-greater-than-5" result="pass"/><test-case name="op-boolean-greater-than-6" result="pass"/><test-case name="op-boolean-greater-than-7" result="pass"/><test-case name="op-boolean-greater-than-8" result="pass"/><test-case name="op-boolean-greater-than-9" result="pass"/><test-case name="op-boolean-greater-than-10" result="pass"/><test-case name="op-boolean-greater-than-11" result="pass"/><test-case name="op-boolean-greater-than-12" result="pass"/><test-case name="op-boolean-greater-than-more-args-001" result="pass"/><test-case name="op-boolean-greater-than-more-args-002" result="pass"/><test-case name="op-boolean-greater-than-more-args-003" result="pass"/><test-case name="op-boolean-greater-than-more-args-004" result="pass"/><test-case name="op-boolean-greater-than-more-args-005" result="pass"/><test-case name="op-boolean-greater-than-more-args-006" result="pass"/><test-case name="op-boolean-greater-than-more-args-007" result="pass"/><test-case name="op-boolean-greater-than-more-args-008" result="pass"/><test-case name="op-boolean-greater-than-more-args-009" result="pass"/><test-case name="op-boolean-greater-than-more-args-010" result="pass"/><test-case name="op-boolean-greater-than-more-args-011" result="pass"/><test-case name="op-boolean-greater-than-more-args-012" result="pass"/><test-case name="op-boolean-greater-than-more-args-013" result="pass"/><test-case name="op-boolean-greater-than-more-args-014" result="pass"/><test-case name="K-BooleanGT-1" result="pass"/><test-case name="K-BooleanGT-2" result="pass"/><test-case name="K-BooleanGT-3" result="pass"/><test-case name="op-yearMonthDuration-less-than2args-1" result="pass"/><test-case name="op-yearMonthDuration-less-than2args-2" result="pass"/><test-case name="op-yearMonthDuration-less-than2args-3" result="pass"/><test-case name="op-yearMonthDuration-less-than2args-4" result="pass"/><test-case name="op-yearMonthDuration-less-than2args-5" result="pass"/><test-case name="op-yearMonthDuration-less-than2args-6" result="pass"/><test-case name="op-yearMonthDuration-less-than2argsNew-7" result="pass"/><test-case name="op-yearMonthDuration-less-than2args-8" result="pass"/><test-case name="op-yearMonthDuration-less-than2args-9" result="pass"/><test-case name="op-yearMonthDuration-less-than2args-10" result="pass"/><test-case name="op-yearMonthDuration-less-than-3" result="pass"/><test-case name="op-yearMonthDuration-less-than-4" result="pass"/><test-case name="op-yearMonthDuration-less-than-5" result="pass"/><test-case name="op-yearMonthDuration-less-than-6" result="pass"/><test-case name="op-yearMonthDuration-less-thanNew-7" result="pass"/><test-case name="op-yearMonthDuration-less-than-8" result="pass"/><test-case name="op-yearMonthDuration-less-than-9" result="pass"/><test-case name="op-yearMonthDuration-less-than-10" result="pass"/><test-case name="op-yearMonthDuration-less-than-11" result="pass"/><test-case name="op-yearMonthDuration-less-than-12" result="pass"/><test-case name="op-yearMonthDuration-less-than-13" result="pass"/><test-case name="op-yearMonthDuration-less-than-14" result="pass"/><test-case name="K-YearMonthDurationLT-1" result="pass"/><test-case name="K-YearMonthDurationLT-2" result="pass"/><test-case name="K-YearMonthDurationLT-3" result="pass"/><test-case name="K-YearMonthDurationLT-4" result="pass"/><test-case name="K-YearMonthDurationLT-5" result="pass"/><test-case name="K-YearMonthDurationLT-6" result="pass"/><test-case name="op-yearMonthDuration-greater-than2args-1" result="pass"/><test-case name="op-yearMonthDuration-greater-than2args-2" result="pass"/><test-case name="op-yearMonthDuration-greater-than2args-3" result="pass"/><test-case name="op-yearMonthDuration-greater-than2args-4" result="pass"/><test-case name="op-yearMonthDuration-greater-than2args-5" result="pass"/><test-case name="op-yearMonthDuration-greater-than2args-6" result="pass"/><test-case name="op-yearMonthDuration-greater-than2args-7" result="pass"/><test-case name="op-yearMonthDuration-greater-than2args-8" result="pass"/><test-case name="op-yearMonthDuration-greater-than2args-9" result="pass"/><test-case name="op-yearMonthDuration-greater-than2args-10" result="pass"/><test-case name="op-yearMonthDuration-greater-than-3" result="pass"/><test-case name="op-yearMonthDuration-greater-than-4" result="pass"/><test-case name="op-yearMonthDuration-greater-than-5" result="pass"/><test-case name="op-yearMonthDuration-greater-than-6" result="pass"/><test-case name="op-yearMonthDuration-greater-than-7" result="pass"/><test-case name="op-yearMonthDuration-greater-than-8" result="pass"/><test-case name="op-yearMonthDuration-greater-than-9" result="pass"/><test-case name="op-yearMonthDuration-greater-than-10" result="pass"/><test-case name="op-yearMonthDuration-greater-than-11" result="pass"/><test-case name="op-yearMonthDuration-greater-than-12" result="pass"/><test-case name="op-yearMonthDuration-greater-than-13" result="pass"/><test-case name="op-yearMonthDuration-greater-than-14" result="pass"/><test-case name="K-YearMonthDurationGT-1" result="pass"/><test-case name="K-YearMonthDurationGT-2" result="pass"/><test-case name="K-YearMonthDurationGT-3" result="pass"/><test-case name="K-YearMonthDurationGT-4" result="pass"/><test-case name="K-YearMonthDurationGT-5" result="pass"/><test-case name="K-YearMonthDurationGT-6" result="pass"/><test-case name="op-dayTimeDuration-less-than2args-1" result="pass"/><test-case name="op-dayTimeDuration-less-than2args-2" result="pass"/><test-case name="op-dayTimeDuration-less-than2args-3" result="pass"/><test-case name="op-dayTimeDuration-less-than2args-4" result="pass"/><test-case name="op-dayTimeDuration-less-than2args-5" result="pass"/><test-case name="op-dayTimeDuration-less-than2args-6" result="pass"/><test-case name="op-dayTimeDuration-less-than2args-7" result="pass"/><test-case name="op-dayTimeDuration-less-than2args-8" result="pass"/><test-case name="op-dayTimeDuration-less-than2args-9" result="pass"/><test-case name="op-dayTimeDuration-less-than2args-10" result="pass"/><test-case name="op-dayTimeDuration-less-than-3" result="pass"/><test-case name="op-dayTimeDuration-less-than-4" result="pass"/><test-case name="op-dayTimeDuration-less-than-5" result="pass"/><test-case name="op-dayTimeDuration-less-than-6" result="pass"/><test-case name="op-dayTimeDuration-less-than-7" result="pass"/><test-case name="op-dayTimeDuration-less-than-8" result="pass"/><test-case name="op-dayTimeDuration-less-than-9" result="pass"/><test-case name="op-dayTimeDuration-less-than-10" result="pass"/><test-case name="op-dayTimeDuration-less-than-11" result="pass"/><test-case name="op-dayTimeDuration-less-than-12" result="pass"/><test-case name="op-dayTimeDuration-less-than-13" result="pass"/><test-case name="op-dayTimeDuration-less-than-14" result="pass"/><test-case name="K-DayTimeDurationLT-1" result="pass"/><test-case name="K-DayTimeDurationLT-2" result="pass"/><test-case name="K-DayTimeDurationLT-3" result="pass"/><test-case name="K-DayTimeDurationLT-4" result="pass"/><test-case name="K-DayTimeDurationLT-5" result="pass"/><test-case name="K-DayTimeDurationLT-6" result="pass"/><test-case name="op-dayTimeDuration-greater-than2args-1" result="pass"/><test-case name="op-dayTimeDuration-greater-than2args-2" result="pass"/><test-case name="op-dayTimeDuration-greater-than2args-3" result="pass"/><test-case name="op-dayTimeDuration-greater-than2args-4" result="pass"/><test-case name="op-dayTimeDuration-greater-than2args-5" result="pass"/><test-case name="op-dayTimeDuration-greater-than2args-6" result="pass"/><test-case name="op-dayTimeDuration-greater-than2args-7" result="pass"/><test-case name="op-dayTimeDuration-greater-than2args-8" result="pass"/><test-case name="op-dayTimeDuration-greater-than2args-9" result="pass"/><test-case name="op-dayTimeDuration-greater-than2args-10" result="pass"/><test-case name="op-dayTimeDuration-greater-than-3" result="pass"/><test-case name="op-dayTimeDuration-greater-than-4" result="pass"/><test-case name="op-dayTimeDuration-greater-than-5" result="pass"/><test-case name="op-dayTimeDuration-greater-than-6" result="pass"/><test-case name="op-dayTimeDuration-greater-than-7" result="pass"/><test-case name="op-dayTimeDuration-greater-than-8" result="pass"/><test-case name="op-dayTimeDuration-greater-than-9" result="pass"/><test-case name="op-dayTimeDuration-greater-than-10" result="pass"/><test-case name="op-dayTimeDuration-greater-than-11" result="pass"/><test-case name="op-dayTimeDuration-greater-than-12" result="pass"/><test-case name="op-dayTimeDuration-greater-than-13" result="pass"/><test-case name="op-dayTimeDuration-greater-than-14" result="pass"/><test-case name="K-DayTimeDurationGT-1" result="pass"/><test-case name="K-DayTimeDurationGT-2" result="pass"/><test-case name="K-DayTimeDurationGT-3" result="pass"/><test-case name="K-DayTimeDurationGT-4" result="pass"/><test-case name="K-DayTimeDurationGT-5" result="pass"/><test-case name="K-DayTimeDurationGT-6" result="pass"/><test-case name="op-duration-equal-1" result="pass"/><test-case name="op-duration-equal-2" result="pass"/><test-case name="op-duration-equal-3" result="pass"/><test-case name="op-duration-equal-4" result="pass"/><test-case name="op-duration-equal-5" result="pass"/><test-case name="op-duration-equal-6" result="pass"/><test-case name="op-duration-equal-7" result="pass"/><test-case name="op-duration-equal-8" result="pass"/><test-case name="op-duration-equal-9" result="pass"/><test-case name="op-duration-equal-10" result="pass"/><test-case name="op-duration-equal-11" result="pass"/><test-case name="op-duration-equal-12" result="pass"/><test-case name="op-duration-equal-13" result="pass"/><test-case name="op-duration-equal-14" result="pass"/><test-case name="op-duration-equal-15" result="pass"/><test-case name="op-duration-equal-16" result="pass"/><test-case name="op-duration-equal-17" result="pass"/><test-case name="op-duration-equal-18" result="pass"/><test-case name="op-duration-equal-19" result="pass"/><test-case name="op-duration-equal-20" result="pass"/><test-case name="op-duration-equal-21" result="pass"/><test-case name="op-duration-equal-22" result="pass"/><test-case name="op-duration-equal-23" result="pass"/><test-case name="op-duration-equal-24" result="pass"/><test-case name="op-duration-equal-25" result="pass"/><test-case name="op-duration-equal-26" result="pass"/><test-case name="op-duration-equal-27" result="pass"/><test-case name="op-yearMonthDuration-equal2args-1" result="pass"/><test-case name="op-yearMonthDuration-equal2args-2" result="pass"/><test-case name="op-yearMonthDuration-equal2args-3" result="pass"/><test-case name="op-yearMonthDuration-equal2args-4" result="pass"/><test-case name="op-yearMonthDuration-equal2args-5" result="pass"/><test-case name="op-yearMonthDuration-equal2args-6" result="pass"/><test-case name="op-yearMonthDuration-equal2args-7" result="pass"/><test-case name="op-yearMonthDuration-equal2args-8" result="pass"/><test-case name="op-yearMonthDuration-equal2args-9" result="pass"/><test-case name="op-yearMonthDuration-equal2args-10" result="pass"/><test-case name="op-yearMonthDuration-equal2args-11" result="pass"/><test-case name="op-yearMonthDuration-equal2args-12" result="pass"/><test-case name="op-yearMonthDuration-equal2args-13" result="pass"/><test-case name="op-yearMonthDuration-equal2args-14" result="pass"/><test-case name="op-yearMonthDuration-equal2args-15" result="pass"/><test-case name="op-yearMonthDuration-equal2args-16" result="pass"/><test-case name="op-yearMonthDuration-equal2args-17" result="pass"/><test-case name="op-yearMonthDuration-equal2args-18" result="pass"/><test-case name="op-yearMonthDuration-equal2args-19" result="pass"/><test-case name="op-yearMonthDuration-equal2args-20" result="pass"/><test-case name="op-dayTimeDuration-equal2args-1" result="pass"/><test-case name="op-dayTimeDuration-equal2args-2" result="pass"/><test-case name="op-dayTimeDuration-equal2args-3" result="pass"/><test-case name="op-dayTimeDuration-equal2args-4" result="pass"/><test-case name="op-dayTimeDuration-equal2args-5" result="pass"/><test-case name="op-dayTimeDuration-equal2args-6" result="pass"/><test-case name="op-dayTimeDuration-equal2args-7" result="pass"/><test-case name="op-dayTimeDuration-equal2args-8" result="pass"/><test-case name="op-dayTimeDuration-equal2args-9" result="pass"/><test-case name="op-dayTimeDuration-equal2args-10" result="pass"/><test-case name="op-dayTimeDuration-equal2args-11" result="pass"/><test-case name="op-dayTimeDuration-equal2args-12" result="pass"/><test-case name="op-dayTimeDuration-equal2args-13" result="pass"/><test-case name="op-dayTimeDuration-equal2args-14" result="pass"/><test-case name="op-dayTimeDuration-equal2args-15" result="pass"/><test-case name="op-dayTimeDuration-equal2args-16" result="pass"/><test-case name="op-dayTimeDuration-equal2args-17" result="pass"/><test-case name="op-dayTimeDuration-equal2args-18" result="pass"/><test-case name="op-dayTimeDuration-equal2args-19" result="pass"/><test-case name="op-dayTimeDuration-equal2args-20" result="pass"/><test-case name="distinct-duration-equal-1" result="pass"/><test-case name="distinct-duration-equal-2" result="pass"/><test-case name="K-DurationEQ-1" result="pass"/><test-case name="K-DurationEQ-2" result="pass"/><test-case name="K-DurationEQ-3" result="pass"/><test-case name="K-DurationEQ-4" result="pass"/><test-case name="K-DurationEQ-5" result="pass"/><test-case name="K-DurationEQ-6" result="pass"/><test-case name="K-DurationEQ-7" result="pass"/><test-case name="K-DurationEQ-8" result="pass"/><test-case name="K-DurationEQ-9" result="pass"/><test-case name="K-DurationEQ-10" result="pass"/><test-case name="K-DurationEQ-11" result="pass"/><test-case name="K-DurationEQ-12" result="pass"/><test-case name="K-DurationEQ-13" result="pass"/><test-case name="K-DurationEQ-14" result="pass"/><test-case name="K-DurationEQ-15" result="pass"/><test-case name="K-DurationEQ-16" result="pass"/><test-case name="K-DurationEQ-17" result="pass"/><test-case name="K-DurationEQ-18" result="pass"/><test-case name="K-DurationEQ-19" result="pass"/><test-case name="K-DurationEQ-20" result="pass"/><test-case name="K-DurationEQ-21" result="pass"/><test-case name="K-DurationEQ-22" result="pass"/><test-case name="K-DurationEQ-23" result="pass"/><test-case name="K-DurationEQ-24" result="pass"/><test-case name="K-DurationEQ-25" result="pass"/><test-case name="K-DurationEQ-26" result="pass"/><test-case name="K-DurationEQ-27" result="pass"/><test-case name="K-DurationEQ-28" result="pass"/><test-case name="K-DurationEQ-29" result="pass"/><test-case name="K-DurationEQ-30" result="pass"/><test-case name="K-DurationEQ-31" result="pass"/><test-case name="K-DurationEQ-32" result="pass"/><test-case name="K-DurationEQ-33" result="pass"/><test-case name="K-DurationEQ-34" result="pass"/><test-case name="K-DurationEQ-35" result="pass"/><test-case name="K-DurationEQ-36" result="pass"/><test-case name="K-DurationEQ-37" result="pass"/><test-case name="K-DurationEQ-38" result="pass"/><test-case name="K-DurationEQ-39" result="pass"/><test-case name="K-DurationEQ-40" result="pass"/><test-case name="K-DurationEQ-41" result="pass"/><test-case name="K-DurationEQ-42" result="pass"/><test-case name="K-DurationEQ-43" result="pass"/><test-case name="K-DurationEQ-44" result="pass"/><test-case name="K-DurationEQ-45" result="pass"/><test-case name="K-DurationEQ-46" result="pass"/><test-case name="K-DurationEQ-47" result="pass"/><test-case name="K-DurationEQ-48" result="pass"/><test-case name="K-DurationEQ-49" result="pass"/><test-case name="K-DurationEQ-50" result="pass"/><test-case name="K-DurationEQ-51" result="pass"/><test-case name="K-DurationEQ-52" result="pass"/><test-case name="K-DurationEQ-53" result="pass"/><test-case name="K-DurationEQ-54" result="pass"/><test-case name="K-DurationEQ-55" result="pass"/><test-case name="K-DurationEQ-56" result="pass"/><test-case name="K-DurationEQ-57" result="pass"/><test-case name="K-DurationEQ-58" result="pass"/><test-case name="K-DurationEQ-59" result="pass"/><test-case name="K-DurationEQ-60" result="pass"/><test-case name="op-dateTime-equal2args-1" result="pass"/><test-case name="op-dateTime-equal2args-2" result="pass"/><test-case name="op-dateTime-equal2args-3" result="pass"/><test-case name="op-dateTime-equal2args-4" result="pass"/><test-case name="op-dateTime-equal2args-5" result="pass"/><test-case name="op-dateTime-equal2args-6" result="pass"/><test-case name="op-dateTime-equal2args-7" result="pass"/><test-case name="op-dateTime-equal2args-8" result="pass"/><test-case name="op-dateTime-equal2args-9" result="pass"/><test-case name="op-dateTime-equal2args-10" result="pass"/><test-case name="op-dateTime-equal2args-11" result="pass"/><test-case name="op-dateTime-equal2args-12" result="pass"/><test-case name="op-dateTime-equal2args-13" result="pass"/><test-case name="op-dateTime-equal2args-14" result="pass"/><test-case name="op-dateTime-equal2args-15" result="pass"/><test-case name="op-dateTime-equal2args-16" result="pass"/><test-case name="op-dateTime-equal2args-17" result="pass"/><test-case name="op-dateTime-equal2args-18" result="pass"/><test-case name="op-dateTime-equal2args-19" result="pass"/><test-case name="op-dateTime-equal2args-20" result="pass"/><test-case name="K-DateTimeEQ-1" result="pass"/><test-case name="K-DateTimeEQ-2" result="pass"/><test-case name="K-DateTimeEQ-3" result="pass"/><test-case name="K-DateTimeEQ-4" result="pass"/><test-case name="K-DateTimeEQ-5" result="pass"/><test-case name="K-DateTimeEQ-6" result="pass"/><test-case name="K-DateTimeEQ-7" result="pass"/><test-case name="K-DateTimeEQ-8" result="pass"/><test-case name="K-DateTimeEQ-9" result="pass"/><test-case name="K-DateTimeEQ-10" result="pass"/><test-case name="K-DateTimeEQ-11" result="pass"/><test-case name="K-DateTimeEQ-12" result="pass"/><test-case name="K-DateTimeEQ-13" result="pass"/><test-case name="K-DateTimeEQ-14" result="pass"/><test-case name="K-DateTimeEQ-15" result="pass"/><test-case name="K-DateTimeEQ-16" result="pass"/><test-case name="K-DateTimeEQ-17" result="pass"/><test-case name="K-DateTimeEQ-18" result="pass"/><test-case name="K-DateTimeEQ-19" result="pass"/><test-case name="K-DateTimeEQ-20" result="pass"/><test-case name="K-DateTimeEQ-21" result="pass"/><test-case name="K-DateTimeEQ-22" result="pass"/><test-case name="K-DateTimeEQ-23" result="pass"/><test-case name="K-DateTimeEQ-24" result="pass"/><test-case name="K-DateTimeEQ-25" result="pass"/><test-case name="K-DateTimeEQ-26" result="pass"/><test-case name="K-DateTimeEQ-27" result="pass"/><test-case name="K-DateTimeEQ-28" result="pass"/><test-case name="K-DateTimeEQ-29" result="pass"/><test-case name="K-DateTimeEQ-30" result="pass"/><test-case name="K-DateTimeEQ-31" result="pass"/><test-case name="K-DateTimeEQ-32" result="pass"/><test-case name="K2-DateTimeEQ-1" result="pass"/><test-case name="op-dateTime-less-than2args-1" result="pass"/><test-case name="op-dateTime-less-than2args-2" result="pass"/><test-case name="op-dateTime-less-than2args-3" result="pass"/><test-case name="op-dateTime-less-than2args-4" result="pass"/><test-case name="op-dateTime-less-than2args-5" result="pass"/><test-case name="op-dateTime-less-than2args-6" result="pass"/><test-case name="op-dateTime-less-than2args-7" result="pass"/><test-case name="op-dateTime-less-than2args-8" result="pass"/><test-case name="op-dateTime-less-than2args-9" result="pass"/><test-case name="op-dateTime-less-than2args-10" result="pass"/><test-case name="op-dateTime-less-than-3" result="pass"/><test-case name="op-dateTime-less-than-4" result="pass"/><test-case name="op-dateTime-less-than-5" result="pass"/><test-case name="op-dateTime-less-than-6" result="pass"/><test-case name="op-dateTime-less-than-7" result="pass"/><test-case name="op-dateTime-less-than-8" result="pass"/><test-case name="op-dateTime-less-than-9" result="pass"/><test-case name="op-dateTime-less-than-10" result="pass"/><test-case name="op-dateTime-less-than-11" result="pass"/><test-case name="op-dateTime-less-than-12" result="pass"/><test-case name="op-dateTime-less-than-13" result="pass"/><test-case name="op-dateTime-less-than-14" result="pass"/><test-case name="K-DateTimeLT-1" result="pass"/><test-case name="K-DateTimeLT-2" result="pass"/><test-case name="K-DateTimeLT-3" result="pass"/><test-case name="K-DateTimeLT-4" result="pass"/><test-case name="K-DateTimeLT-5" result="pass"/><test-case name="K-DateTimeLT-6" result="pass"/><test-case name="op-dateTime-greater-than2args-1" result="pass"/><test-case name="op-dateTime-greater-than2args-2" result="pass"/><test-case name="op-dateTime-greater-than2args-3" result="pass"/><test-case name="op-dateTime-greater-than2args-4" result="pass"/><test-case name="op-dateTime-greater-than2args-5" result="pass"/><test-case name="op-dateTime-greater-than2args-6" result="pass"/><test-case name="op-dateTime-greater-than2args-7" result="pass"/><test-case name="op-dateTime-greater-than2args-8" result="pass"/><test-case name="op-dateTime-greater-than2args-9" result="pass"/><test-case name="op-dateTime-greater-than2args-10" result="pass"/><test-case name="op-dateTime-greater-than-3" result="pass"/><test-case name="op-dateTime-greater-than-4" result="pass"/><test-case name="op-dateTime-greater-than-5" result="pass"/><test-case name="op-dateTime-greater-than-6" result="pass"/><test-case name="op-dateTime-greater-than-7" result="pass"/><test-case name="op-dateTime-greater-than-8" result="pass"/><test-case name="op-dateTime-greater-than-9" result="pass"/><test-case name="op-dateTime-greater-than-10" result="pass"/><test-case name="op-dateTime-greater-than-11" result="pass"/><test-case name="op-dateTime-greater-than-12" result="pass"/><test-case name="op-dateTime-greater-than-13" result="pass"/><test-case name="op-dateTime-greater-than-14" result="pass"/><test-case name="K-DateTimeGT-1" result="pass"/><test-case name="K-DateTimeGT-2" result="pass"/><test-case name="K-DateTimeGT-3" result="pass"/><test-case name="K-DateTimeGT-4" result="pass"/><test-case name="K-DateTimeGT-5" result="pass"/><test-case name="K-DateTimeGT-6" result="pass"/><test-case name="op-date-equal2args-1" result="pass"/><test-case name="op-date-equal2args-2" result="pass"/><test-case name="op-date-equal2args-3" result="pass"/><test-case name="op-date-equal2args-4" result="pass"/><test-case name="op-date-equal2args-5" result="pass"/><test-case name="op-date-equal2args-6" result="pass"/><test-case name="op-date-equal2args-7" result="pass"/><test-case name="op-date-equal2args-8" result="pass"/><test-case name="op-date-equal2args-9" result="pass"/><test-case name="op-date-equal2args-10" result="pass"/><test-case name="op-date-equal2args-11" result="pass"/><test-case name="op-date-equal2args-12" result="pass"/><test-case name="op-date-equal2args-13" result="pass"/><test-case name="op-date-equal2args-14" result="pass"/><test-case name="op-date-equal2args-15" result="pass"/><test-case name="op-date-equal2args-16" result="pass"/><test-case name="op-date-equal2args-17" result="pass"/><test-case name="op-date-equal2args-18" result="pass"/><test-case name="op-date-equal2args-19" result="pass"/><test-case name="op-date-equal2args-20" result="pass"/><test-case name="K-DateEQ-1" result="pass"/><test-case name="K-DateEQ-2" result="pass"/><test-case name="K-DateEQ-3" result="pass"/><test-case name="K-DateEQ-4" result="pass"/><test-case name="K-DateEQ-5" result="pass"/><test-case name="K-DateEQ-6" result="pass"/><test-case name="K-DateEQ-7" result="pass"/><test-case name="K-DateEQ-8" result="pass"/><test-case name="K2-DateEQ-1" result="pass"/><test-case name="op-date-less-than2args-1" result="pass"/><test-case name="op-date-less-than2args-2" result="pass"/><test-case name="op-date-less-than2args-3" result="pass"/><test-case name="op-date-less-than2args-4" result="pass"/><test-case name="op-date-less-than2args-5" result="pass"/><test-case name="op-date-less-than2args-6" result="pass"/><test-case name="op-date-less-than2args-7" result="pass"/><test-case name="op-date-less-than2args-8" result="pass"/><test-case name="op-date-less-than2args-9" result="pass"/><test-case name="op-date-less-than2args-10" result="pass"/><test-case name="op-date-less-than-1" result="pass"/><test-case name="op-date-less-than-2" result="pass"/><test-case name="op-date-less-than-3" result="pass"/><test-case name="op-date-less-than-4" result="pass"/><test-case name="op-date-less-than-5" result="pass"/><test-case name="op-date-less-than-6" result="pass"/><test-case name="op-date-less-than-7" result="pass"/><test-case name="op-date-less-than-8" result="pass"/><test-case name="op-date-less-than-9" result="pass"/><test-case name="op-date-less-than-10" result="pass"/><test-case name="op-date-less-than-11" result="pass"/><test-case name="op-date-less-than-12" result="pass"/><test-case name="op-date-less-than-13" result="pass"/><test-case name="op-date-less-than-14" result="pass"/><test-case name="K-DateLT-1" result="pass"/><test-case name="K-DateLT-2" result="pass"/><test-case name="K-DateLT-3" result="pass"/><test-case name="K-DateLT-4" result="pass"/><test-case name="K-DateLT-5" result="pass"/><test-case name="K-DateLT-6" result="pass"/><test-case name="op-date-greater-than2args-1" result="pass"/><test-case name="op-date-greater-than2args-2" result="pass"/><test-case name="op-date-greater-than2args-3" result="pass"/><test-case name="op-date-greater-than2args-4" result="pass"/><test-case name="op-date-greater-than2args-5" result="pass"/><test-case name="op-date-greater-than2args-6" result="pass"/><test-case name="op-date-greater-than2args-7" result="pass"/><test-case name="op-date-greater-than2args-8" result="pass"/><test-case name="op-date-greater-than2args-9" result="pass"/><test-case name="op-date-greater-than2args-10" result="pass"/><test-case name="op-date-greater-than-1" result="pass"/><test-case name="op-date-greater-than-2" result="pass"/><test-case name="op-date-greater-than-3" result="pass"/><test-case name="op-date-greater-than-4" result="pass"/><test-case name="op-date-greater-than-5" result="pass"/><test-case name="op-date-greater-than-6" result="pass"/><test-case name="op-date-greater-than-7" result="pass"/><test-case name="op-date-greater-than-8" result="pass"/><test-case name="op-date-greater-than-9" result="pass"/><test-case name="op-date-greater-than-10" result="pass"/><test-case name="op-date-greater-than-11" result="pass"/><test-case name="op-date-greater-than-12" result="pass"/><test-case name="op-date-greater-than-13" result="pass"/><test-case name="op-date-greater-than-14" result="pass"/><test-case name="K-DateGT-1" result="pass"/><test-case name="K-DateGT-2" result="pass"/><test-case name="K-DateGT-3" result="pass"/><test-case name="K-DateGT-4" result="pass"/><test-case name="K-DateGT-5" result="pass"/><test-case name="K-DateGT-6" result="pass"/><test-case name="op-time-equal2args-1" result="pass"/><test-case name="op-time-equal2args-2" result="pass"/><test-case name="op-time-equal2args-3" result="pass"/><test-case name="op-time-equal2args-4" result="pass"/><test-case name="op-time-equal2args-5" result="pass"/><test-case name="op-time-equal2args-6" result="pass"/><test-case name="op-time-equal2args-7" result="pass"/><test-case name="op-time-equal2args-8" result="pass"/><test-case name="op-time-equal2args-9" result="pass"/><test-case name="op-time-equal2args-10" result="pass"/><test-case name="op-time-equal2args-11" result="pass"/><test-case name="op-time-equal2args-12" result="pass"/><test-case name="op-time-equal2args-13" result="pass"/><test-case name="op-time-equal2args-14" result="pass"/><test-case name="op-time-equal2args-15" result="pass"/><test-case name="op-time-equal2args-16" result="pass"/><test-case name="op-time-equal2args-17" result="pass"/><test-case name="op-time-equal2args-18" result="pass"/><test-case name="op-time-equal2args-19" result="pass"/><test-case name="op-time-equal2args-20" result="pass"/><test-case name="K-TimeEQ-1" result="pass"/><test-case name="K-TimeEQ-2" result="pass"/><test-case name="K-TimeEQ-3" result="pass"/><test-case name="K-TimeEQ-4" result="pass"/><test-case name="K-TimeEQ-5" result="pass"/><test-case name="K-TimeEQ-6" result="pass"/><test-case name="K-TimeEQ-7" result="pass"/><test-case name="K-TimeEQ-8" result="pass"/><test-case name="K-TimeEQ-9" result="pass"/><test-case name="K-TimeEQ-10" result="pass"/><test-case name="K-TimeEQ-11" result="pass"/><test-case name="K-TimeEQ-12" result="pass"/><test-case name="K-TimeEQ-13" result="pass"/><test-case name="K-TimeEQ-14" result="pass"/><test-case name="K-TimeEQ-15" result="pass"/><test-case name="K-TimeEQ-16" result="pass"/><test-case name="K-TimeEQ-17" result="pass"/><test-case name="K-TimeEQ-18" result="pass"/><test-case name="K-TimeEQ-19" result="pass"/><test-case name="K-TimeEQ-20" result="pass"/><test-case name="K2-TimeEQ-1" result="pass"/><test-case name="op-time-less-than2args-1" result="pass"/><test-case name="op-time-less-than2args-2" result="pass"/><test-case name="op-time-less-than2args-3" result="pass"/><test-case name="op-time-less-than2args-4" result="pass"/><test-case name="op-time-less-than2args-5" result="pass"/><test-case name="op-time-less-than2args-6" result="pass"/><test-case name="op-time-less-than2args-7" result="pass"/><test-case name="op-time-less-than2args-8" result="pass"/><test-case name="op-time-less-than2args-9" result="pass"/><test-case name="op-time-less-than2args-10" result="pass"/><test-case name="op-time-less-than-1" result="pass"/><test-case name="op-time-less-than-2" result="pass"/><test-case name="op-time-less-than-3" result="pass"/><test-case name="op-time-less-than-4" result="pass"/><test-case name="op-time-less-than-5" result="pass"/><test-case name="op-time-less-than-6" result="pass"/><test-case name="op-time-less-than-7" result="pass"/><test-case name="op-time-less-than-8" result="pass"/><test-case name="op-time-less-than-9" result="pass"/><test-case name="op-time-less-than-10" result="pass"/><test-case name="op-time-less-than-11" result="pass"/><test-case name="op-time-less-than-12" result="pass"/><test-case name="op-time-less-than-13" result="pass"/><test-case name="op-time-less-than-14" result="pass"/><test-case name="K-TimeLT-1" result="pass"/><test-case name="K-TimeLT-2" result="pass"/><test-case name="K-TimeLT-3" result="pass"/><test-case name="K-TimeLT-4" result="pass"/><test-case name="K-TimeLT-5" result="pass"/><test-case name="K-TimeLT-6" result="pass"/><test-case name="op-time-greater-than2args-1" result="pass"/><test-case name="op-time-greater-than2args-2" result="pass"/><test-case name="op-time-greater-than2args-3" result="pass"/><test-case name="op-time-greater-than2args-4" result="pass"/><test-case name="op-time-greater-than2args-5" result="pass"/><test-case name="op-time-greater-than2args-6" result="pass"/><test-case name="op-time-greater-than2args-7" result="pass"/><test-case name="op-time-greater-than2args-8" result="pass"/><test-case name="op-time-greater-than2args-9" result="pass"/><test-case name="op-time-greater-than2args-10" result="pass"/><test-case name="op-time-greater-than-1" result="pass"/><test-case name="op-time-greater-than-2" result="pass"/><test-case name="op-time-greater-than-3" result="pass"/><test-case name="op-time-greater-than-4" result="pass"/><test-case name="op-time-greater-than-5" result="pass"/><test-case name="op-time-greater-than-6" result="pass"/><test-case name="op-time-greater-than-7" result="pass"/><test-case name="op-time-greater-than-8" result="pass"/><test-case name="op-time-greater-than-9" result="pass"/><test-case name="op-time-greater-than-10" result="pass"/><test-case name="op-time-greater-than-11" result="pass"/><test-case name="op-time-greater-than-12" result="pass"/><test-case name="op-time-greater-than-13" result="pass"/><test-case name="op-time-greater-than-14" result="pass"/><test-case name="K-TimeGT-1" result="pass"/><test-case name="K-TimeGT-2" result="pass"/><test-case name="K-TimeGT-3" result="pass"/><test-case name="K-TimeGT-4" result="pass"/><test-case name="K-TimeGT-5" result="pass"/><test-case name="K-TimeGT-6" result="pass"/><test-case name="op-gYearMonth-equal2args-1" result="pass"/><test-case name="op-gYearMonth-equal2args-2" result="pass"/><test-case name="op-gYearMonth-equal2args-3" result="pass"/><test-case name="op-gYearMonth-equal2args-4" result="pass"/><test-case name="op-gYearMonth-equal2args-5" result="pass"/><test-case name="op-gYearMonth-equal2args-6" result="pass"/><test-case name="op-gYearMonth-equal2args-7" result="pass"/><test-case name="op-gYearMonth-equal2args-8" result="pass"/><test-case name="op-gYearMonth-equal2args-9" result="pass"/><test-case name="op-gYearMonth-equal2args-10" result="pass"/><test-case name="op-gYearMonth-equalNew-1" result="pass"/><test-case name="op-gYearMonth-equalNew-2" result="pass"/><test-case name="op-gYearMonth-equalNew-3" result="pass"/><test-case name="op-gYearMonth-equalNew-4" result="pass"/><test-case name="op-gYearMonth-equalNew-5" result="pass"/><test-case name="op-gYearMonth-equalNew-6" result="pass"/><test-case name="op-gYearMonth-equalNew-7" result="pass"/><test-case name="op-gYearMonth-equalNew-8" result="pass"/><test-case name="op-gYearMonth-equalNew-9" result="pass"/><test-case name="op-gYearMonth-equalNew-10" result="pass"/><test-case name="op-gYearMonth-equalNew-11" result="pass"/><test-case name="op-gYearMonth-equalNew-12" result="pass"/><test-case name="op-gYearMonth-equalNew-13" result="pass"/><test-case name="op-gYearMonth-equalNew-14" result="pass"/><test-case name="K-gYearMonthEQ-1" result="pass"/><test-case name="K-gYearMonthEQ-2" result="pass"/><test-case name="K-gYearMonthEQ-3" result="pass"/><test-case name="K-gYearMonthEQ-4" result="pass"/><test-case name="K-gYearMonthEQ-5" result="pass"/><test-case name="K-gYearMonthEQ-6" result="pass"/><test-case name="K-gYearMonthEQ-7" result="pass"/><test-case name="K-gYearMonthEQ-8" result="pass"/><test-case name="op-gYear-equal2args-1" result="pass"/><test-case name="op-gYear-equal2args-2" result="pass"/><test-case name="op-gYear-equal2args-3" result="pass"/><test-case name="op-gYear-equal2args-4" result="pass"/><test-case name="op-gYear-equal2args-5" result="pass"/><test-case name="op-gYear-equal2args-6" result="pass"/><test-case name="op-gYear-equal2args-7" result="pass"/><test-case name="op-gYear-equal2args-8" result="pass"/><test-case name="op-gYear-equal2args-9" result="pass"/><test-case name="op-gYear-equal2args-10" result="pass"/><test-case name="op-gYear-equal-1" result="pass"/><test-case name="op-gYear-equal-2" result="pass"/><test-case name="op-gYear-equalNew-3" result="pass"/><test-case name="op-gYear-equalNew-4" result="pass"/><test-case name="op-gYear-equal-5" result="pass"/><test-case name="op-gYear-equalNew-6" result="pass"/><test-case name="op-gYear-equalNew-7" result="pass"/><test-case name="op-gYear-equal-8" result="pass"/><test-case name="op-gYear-equalNew-9" result="pass"/><test-case name="op-gYear-equal-10" result="pass"/><test-case name="op-gYear-equal-11" result="pass"/><test-case name="op-gYear-equalNew-12" result="pass"/><test-case name="op-gYear-equal-13" result="pass"/><test-case name="op-gYear-equal-14" result="pass"/><test-case name="K-gYearEQ-1" result="pass"/><test-case name="K-gYearEQ-2" result="pass"/><test-case name="K-gYearEQ-3" result="pass"/><test-case name="K-gYearEQ-4" result="pass"/><test-case name="K-gYearEQ-5" result="pass"/><test-case name="K-gYearEQ-6" result="pass"/><test-case name="K-gYearEQ-7" result="pass"/><test-case name="K-gYearEQ-8" result="pass"/><test-case name="op-gMonthDay-equal2args-1" result="pass"/><test-case name="op-gMonthDay-equal2args-2" result="pass"/><test-case name="op-gMonthDay-equal2args-3" result="pass"/><test-case name="op-gMonthDay-equal2args-4" result="pass"/><test-case name="op-gMonthDay-equal2args-5" result="pass"/><test-case name="op-gMonthDay-equal2args-6" result="pass"/><test-case name="op-gMonthDay-equal2args-7" result="pass"/><test-case name="op-gMonthDay-equal2args-8" result="pass"/><test-case name="op-gMonthDay-equal2args-9" result="pass"/><test-case name="op-gMonthDay-equal2args-10" result="pass"/><test-case name="op-gMonthDay-equal-2" result="pass"/><test-case name="op-gMonthDay-equal-3" result="pass"/><test-case name="op-gMonthDay-equal-4" result="pass"/><test-case name="op-gMonthDay-equal-5" result="pass"/><test-case name="op-gMonthDay-equal-6" result="pass"/><test-case name="op-gMonthDay-equal-7" result="pass"/><test-case name="op-gMonthDay-equal-8" result="pass"/><test-case name="op-gMonthDay-equal-9" result="pass"/><test-case name="op-gMonthDay-equal-10" result="pass"/><test-case name="op-gMonthDay-equal-11" result="pass"/><test-case name="op-gMonthDay-equal-12" result="pass"/><test-case name="op-gMonthDay-equal-13" result="pass"/><test-case name="op-gMonthDay-equal-14" result="pass"/><test-case name="K-gMonthDayEQ-1" result="pass"/><test-case name="K-gMonthDayEQ-2" result="pass"/><test-case name="K-gMonthDayEQ-3" result="pass"/><test-case name="K-gMonthDayEQ-4" result="pass"/><test-case name="K-gMonthDayEQ-5" result="pass"/><test-case name="K-gMonthDayEQ-6" result="pass"/><test-case name="K-gMonthDayEQ-7" result="pass"/><test-case name="K-gMonthDayEQ-8" result="pass"/><test-case name="op-gMonth-equal2args-1" result="pass"/><test-case name="op-gMonth-equal2args-2" result="pass"/><test-case name="op-gMonth-equal2args-3" result="pass"/><test-case name="op-gMonth-equal2args-4" result="pass"/><test-case name="op-gMonth-equal2args-5" result="pass"/><test-case name="op-gMonth-equal2args-6" result="pass"/><test-case name="op-gMonth-equal2args-7" result="pass"/><test-case name="op-gMonth-equal2args-8" result="pass"/><test-case name="op-gMonth-equal2args-9" result="pass"/><test-case name="op-gMonth-equal2args-10" result="pass"/><test-case name="op-gMonth-equal-2" result="pass"/><test-case name="op-gMonth-equal-3" result="pass"/><test-case name="op-gMonth-equal-4" result="pass"/><test-case name="op-gMonth-equal-5" result="pass"/><test-case name="op-gMonth-equal-6" result="pass"/><test-case name="op-gMonth-equal-7" result="pass"/><test-case name="op-gMonth-equal-8" result="pass"/><test-case name="op-gMonth-equal-9" result="pass"/><test-case name="op-gMonth-equal-10" result="pass"/><test-case name="op-gMonth-equal-11" result="pass"/><test-case name="op-gMonth-equal-12" result="pass"/><test-case name="op-gMonth-equal-13" result="pass"/><test-case name="op-gMonth-equal-14" result="pass"/><test-case name="K-gMonthEQ-1" result="pass"/><test-case name="K-gMonthEQ-2" result="pass"/><test-case name="K-gMonthEQ-3" result="pass"/><test-case name="K-gMonthEQ-4" result="pass"/><test-case name="K-gMonthEQ-5" result="pass"/><test-case name="K-gMonthEQ-6" result="pass"/><test-case name="K-gMonthEQ-7" result="pass"/><test-case name="K-gMonthEQ-8" result="pass"/><test-case name="op-gDay-equal2args-1" result="pass"/><test-case name="op-gDay-equal2args-2" result="pass"/><test-case name="op-gDay-equal2args-3" result="pass"/><test-case name="op-gDay-equal2args-4" result="pass"/><test-case name="op-gDay-equal2args-5" result="pass"/><test-case name="op-gDay-equal2args-6" result="pass"/><test-case name="op-gDay-equal2args-7" result="pass"/><test-case name="op-gDay-equal2args-8" result="pass"/><test-case name="op-gDay-equal2args-9" result="pass"/><test-case name="op-gDay-equal2args-10" result="pass"/><test-case name="op-gDay-equal-2" result="pass"/><test-case name="op-gDay-equal-3" result="pass"/><test-case name="op-gDay-equal-4" result="pass"/><test-case name="op-gDay-equal-5" result="pass"/><test-case name="op-gDay-equal-6" result="pass"/><test-case name="op-gDay-equal-7" result="pass"/><test-case name="op-gDay-equal-8" result="pass"/><test-case name="op-gDay-equal-9" result="pass"/><test-case name="op-gDay-equal-10" result="pass"/><test-case name="op-gDay-equal-11" result="pass"/><test-case name="op-gDay-equal-12" result="pass"/><test-case name="op-gDay-equal-13" result="pass"/><test-case name="op-gDay-equal-14" result="pass"/><test-case name="K-gDayEQ-1" result="pass"/><test-case name="K-gDayEQ-2" result="pass"/><test-case name="K-gDayEQ-3" result="pass"/><test-case name="K-gDayEQ-4" result="pass"/><test-case name="K-gDayEQ-5" result="pass"/><test-case name="K-gDayEQ-6" result="pass"/><test-case name="K-gDayEQ-7" result="pass"/><test-case name="K-gDayEQ-8" result="pass"/><test-case name="K-YearMonthDurationEQ-1" result="pass"/><test-case name="K-YearMonthDurationEQ-2" result="pass"/><test-case name="K-YearMonthDurationEQ-3" result="pass"/><test-case name="K-YearMonthDurationEQ-4" result="pass"/><test-case name="K-YearMonthDurationEQ-5" result="pass"/><test-case name="K-YearMonthDurationEQ-6" result="pass"/><test-case name="K-YearMonthDurationEQ-7" result="pass"/><test-case name="K-DayTimeDurationEQ-1" result="pass"/><test-case name="K-DayTimeDurationEQ-2" result="pass"/><test-case name="K-DayTimeDurationEQ-3" result="pass"/><test-case name="K-DayTimeDurationEQ-4" result="pass"/><test-case name="K-DayTimeDurationEQ-5" result="pass"/><test-case name="K-DayTimeDurationEQ-6" result="pass"/><test-case name="K-DayTimeDurationEQ-7" result="pass"/><test-case name="K-DayTimeDurationEQ-8" result="pass"/><test-case name="op-qname-equal-1" result="pass"/><test-case name="op-qname-equal-2" result="pass"/><test-case name="op-qname-equal-3" result="pass"/><test-case name="op-qname-equal-4" result="pass"/><test-case name="op-qname-equal-5" result="pass"/><test-case name="op-qname-equal-6" result="pass"/><test-case name="op-qname-equal-7" result="pass"/><test-case name="op-qname-equal-8" result="pass"/><test-case name="op-qname-equal-9" result="pass"/><test-case name="op-qname-equal-10" result="pass"/><test-case name="op-qname-equal-11" result="pass"/><test-case name="op-qname-equal-12" result="pass"/><test-case name="op-qname-equal-13" result="pass"/><test-case name="op-qname-equal-14" result="pass"/><test-case name="op-qname-equal-15" result="pass"/><test-case name="op-qname-equal-16" result="pass"/><test-case name="op-qname-equal-17" result="pass"/><test-case name="op-qname-equal-18" result="pass"/><test-case name="op-qname-equal-19" result="pass"/><test-case name="op-qname-equal-20" result="pass"/><test-case name="op-qname-equal-21" result="pass"/><test-case name="op-qname-equal-22" result="pass"/><test-case name="op-qname-equal-23" result="pass"/><test-case name="op-qname-equal-24" result="pass"/><test-case name="value-comparison-1" result="pass"/><test-case name="value-comparison-2" result="pass"/><test-case name="K-QNameEQ-1" result="pass"/><test-case name="K-QNameEQ-2" result="pass"/><test-case name="K-QNameEQ-3" result="pass"/><test-case name="K-QNameEQ-4" result="pass"/><test-case name="K-QNameEQ-5" result="pass"/><test-case name="K-QNameEQ-6" result="pass"/><test-case name="K-QNameEQ-7" result="pass"/><test-case name="K-QNameEQ-8" result="pass"/><test-case name="K-QNameEQ-9" result="pass"/><test-case name="K-QNameEQ-10" result="pass"/><test-case name="fn-prefix-from-qname-1" result="pass"/><test-case name="fn-prefix-from-qname-2" result="pass"/><test-case name="fn-prefix-from-qname-3" result="pass"/><test-case name="fn-prefix-from-qname-4" result="pass"/><test-case name="fn-prefix-from-qname-5" result="pass"/><test-case name="fn-prefix-from-qname-6" result="pass"/><test-case name="fn-prefix-from-qname-7" result="pass"/><test-case name="fn-prefix-from-qname-8" result="pass"/><test-case name="fn-prefix-from-qname-9" result="pass"/><test-case name="fn-prefix-from-qname-10" result="pass"/><test-case name="fn-prefix-from-qname-11" result="pass"/><test-case name="fn-prefix-from-qname-12" result="pass"/><test-case name="fn-prefix-from-qname-13" result="pass"/><test-case name="fn-prefix-from-qname-14" result="pass"/><test-case name="fn-prefix-from-qname-15" result="pass"/><test-case name="fn-prefix-from-qname-16" result="pass"/><test-case name="fn-prefix-from-qname-17" result="pass"/><test-case name="fn-prefix-from-qname-18" result="pass"/><test-case name="fn-prefix-from-qname-19" result="pass"/><test-case name="fn-prefix-from-qname-20" result="pass"/><test-case name="K-PrefixFromQName-1" result="pass"/><test-case name="K-PrefixFromQName-2" result="pass"/><test-case name="K-PrefixFromQName-3" result="pass"/><test-case name="K-PrefixFromQName-4" result="pass"/><test-case name="op-hexBinary-equal2args-1" result="pass"/><test-case name="op-hexBinary-equal2args-2" result="pass"/><test-case name="op-hexBinary-equal2args-3" result="pass"/><test-case name="op-hexBinary-equal2args-4" result="pass"/><test-case name="op-hexBinary-equal2args-5" result="pass"/><test-case name="op-hexBinary-equal2args-6" result="pass"/><test-case name="op-hexBinary-equal2args-7" result="pass"/><test-case name="op-hexBinary-equal2args-8" result="pass"/><test-case name="op-hexBinary-equal2args-9" result="pass"/><test-case name="op-hexBinary-equal2args-10" result="pass"/><test-case name="hexBinary-1" result="pass"/><test-case name="hexBinary-2" result="pass"/><test-case name="hexBinary-3" result="pass"/><test-case name="hexBinary-4" result="pass"/><test-case name="hexBinary-5" result="pass"/><test-case name="hexBinary-6" result="pass"/><test-case name="hexBinary-7" result="pass"/><test-case name="hexBinary-8" result="pass"/><test-case name="hexBinary-9" result="pass"/><test-case name="hexBinary-10" result="pass"/><test-case name="hexBinary-11" result="pass"/><test-case name="hexBinary-12" result="pass"/><test-case name="hexBinary-13" result="pass"/><test-case name="hexBinary-14" result="pass"/><test-case name="K-HexBinaryEQ-1" result="pass"/><test-case name="K-HexBinaryEQ-2" result="pass"/><test-case name="K-HexBinaryEQ-3" result="pass"/><test-case name="K-HexBinaryEQ-4" result="pass"/><test-case name="K-HexBinaryEQ-5" result="pass"/><test-case name="op-base64Binary-equal2args-1" result="pass"/><test-case name="op-base64Binary-equal2args-2" result="pass"/><test-case name="op-base64Binary-equal2args-3" result="pass"/><test-case name="op-base64Binary-equal2args-4" result="pass"/><test-case name="op-base64Binary-equal2args-5" result="pass"/><test-case name="op-base64Binary-equal2args-6" result="pass"/><test-case name="op-base64Binary-equal2args-7" result="pass"/><test-case name="op-base64Binary-equal2args-8" result="pass"/><test-case name="op-base64Binary-equal2args-9" result="pass"/><test-case name="op-base64Binary-equal2args-10" result="pass"/><test-case name="base64BinaryEqual-1" result="pass"/><test-case name="base64BinaryEqual-2" result="pass"/><test-case name="base64BinaryEqual-3" result="pass"/><test-case name="base64BinaryEqual-4" result="pass"/><test-case name="base64binaryequal-5" result="pass"/><test-case name="base64BinaryEqual-6" result="pass"/><test-case name="base64BinaryEqual-7" result="pass"/><test-case name="base64BinaryEqual-8" result="pass"/><test-case name="base64BinaryEqual-9" result="pass"/><test-case name="base64BinaryEqual-10" result="pass"/><test-case name="base64BinaryEqual-11" result="pass"/><test-case name="base64BinaryEqual-12" result="pass"/><test-case name="base64BinaryEqual-13" result="pass"/><test-case name="base64BinaryEqual-14" result="pass"/><test-case name="K-Base64BinaryEQ-1" result="pass"/><test-case name="K-Base64BinaryEQ-2" result="pass"/><test-case name="K-Base64BinaryEQ-3" result="pass"/><test-case name="K-ValCompTypeChecking-1" result="pass"/><test-case name="K-ValCompTypeChecking-2" result="pass"/><test-case name="K-ValCompTypeChecking-3" result="pass"/><test-case name="K-ValCompTypeChecking-4" result="pass"/><test-case name="K-ValCompTypeChecking-5" result="pass"/><test-case name="K-ValCompTypeChecking-6" result="pass"/><test-case name="K-ValCompTypeChecking-7" result="pass"/><test-case name="K-ValCompTypeChecking-8" result="pass"/><test-case name="K-ValCompTypeChecking-9" result="pass"/><test-case name="K-ValCompTypeChecking-10" result="pass"/><test-case name="K-ValCompTypeChecking-11" result="pass"/><test-case name="K-ValCompTypeChecking-12" result="pass"/><test-case name="K-ValCompTypeChecking-13" result="pass"/><test-case name="K-ValCompTypeChecking-14" result="pass"/><test-case name="K-ValCompTypeChecking-15" result="pass"/><test-case name="K-ValCompTypeChecking-16" result="pass"/><test-case name="K-ValCompTypeChecking-17" result="pass"/><test-case name="K-ValCompTypeChecking-18" result="pass"/><test-case name="K-ValCompTypeChecking-19" result="pass"/><test-case name="K-ValCompTypeChecking-20" result="pass"/><test-case name="K-ValCompTypeChecking-21" result="pass"/><test-case name="K-ValCompTypeChecking-22" result="pass"/><test-case name="K-ValCompTypeChecking-23" result="pass"/><test-case name="K-ValCompTypeChecking-24" result="pass"/><test-case name="K-ValCompTypeChecking-25" result="pass"/><test-case name="K-ValCompTypeChecking-26" result="pass"/><test-case name="K-ValCompTypeChecking-27" result="pass"/><test-case name="K-ValCompTypeChecking-28" result="pass"/><test-case name="K-ValCompTypeChecking-29" result="pass"/><test-case name="K-ValCompTypeChecking-30" result="pass"/><test-case name="K-ValCompTypeChecking-31" result="pass"/><test-case name="K-ValCompTypeChecking-32" result="pass"/><test-case name="K-ValCompTypeChecking-33" result="pass"/><test-case name="K-ValCompTypeChecking-34" result="pass"/><test-case name="K-ValCompTypeChecking-35" result="pass"/><test-case name="K-ValCompTypeChecking-36" result="pass"/><test-case name="K-ValCompTypeChecking-37" result="pass"/><test-case name="K-ValCompTypeChecking-38" result="pass"/><test-case name="K-ValCompTypeChecking-39" result="pass"/><test-case name="K-ValCompTypeChecking-40" result="pass"/><test-case name="K-ValCompTypeChecking-41" result="pass"/><test-case name="K-ValCompTypeChecking-42" result="pass"/><test-case name="K-StringEqual-1" result="pass"/><test-case name="K-StringEqual-2" result="pass"/><test-case name="K-StringEqual-3" result="pass"/><test-case name="K-StringEqual-4" result="pass"/><test-case name="K-StringEqual-5" result="pass"/><test-case name="K2-StringEqual-1" result="pass"/><test-case name="K2-StringEqual-2" result="pass"/><test-case name="K2-StringEqual-3" result="pass"/><test-case name="K2-StringEqual-4" result="pass"/><test-case name="K2-StringEqual-5" result="pass"/><test-case name="K2-StringEqual-6" result="pass"/><test-case name="K-StringGT-1" result="pass"/><test-case name="K-StringGT-2" result="pass"/><test-case name="K-StringGT-3" result="pass"/><test-case name="K-StringGT-4" result="pass"/><test-case name="K-StringGT-5" result="pass"/><test-case name="K-StringLT-1" result="pass"/><test-case name="K-StringLT-2" result="pass"/><test-case name="K-StringLT-3" result="pass"/><test-case name="K-StringLT-4" result="pass"/><test-case name="K-StringLT-5" result="pass"/><test-case name="K2-StringLT-1" result="fail"/><test-case name="K-AnyURIEqual-1" result="pass"/><test-case name="K-AnyURIEqual-2" result="pass"/><test-case name="K-AnyURIEqual-3" result="pass"/><test-case name="K-AnyURIEqual-4" result="pass"/><test-case name="K-AnyURIEqual-5" result="pass"/><test-case name="K-AnyURIEqual-6" result="pass"/><test-case name="K-AnyURIEqual-7" result="pass"/><test-case name="K-AnyURIEqual-8" result="pass"/><test-case name="K-AnyURIEqual-9" result="pass"/><test-case name="K-AnyURIEqual-10" result="pass"/><test-case name="K2-AnyURIEqual-1" result="pass"/><test-case name="K2-AnyURIEqual-2" result="pass"/><test-case name="K2-AnyURIEqual-3" result="pass"/><test-case name="K2-AnyURIEqual-4" result="pass"/><test-case name="K2-AnyURIEqual-5" result="pass"/><test-case name="K2-AnyURIEqual-6" result="pass"/><test-case name="K2-AnyURIEqual-7" result="pass"/><test-case name="K2-AnyURIEqual-8" result="pass"/><test-case name="K2-AnyURIEqual-9" result="pass"/><test-case name="K2-AnyURIEqual-10" result="pass"/><test-case name="K2-AnyURIEqual-11" result="pass"/><test-case name="K2-AnyURIEqual-12" result="pass"/><test-case name="K2-AnyURILtGt-1" result="pass"/><test-case name="K2-AnyURILtGt-2" result="pass"/><test-case name="K2-AnyURILtGt-3" result="pass"/><test-case name="K2-AnyURILtGt-4" result="pass"/><test-case name="K2-AnyURILtGt-5" result="pass"/><test-case name="K2-AnyURILtGt-6" result="pass"/><test-case name="K2-AnyURILtGt-7" result="pass"/><test-case name="K2-AnyURILtGt-8" result="pass"/><test-case name="K2-AnyURILeGe-1" result="pass"/><test-case name="K2-AnyURILeGe-2" result="pass"/><test-case name="K2-AnyURILeGe-3" result="pass"/><test-case name="K2-AnyURILeGe-4" result="pass"/><test-case name="K2-AnyURILeGe-5" result="pass"/><test-case name="K2-AnyURILeGe-6" result="pass"/><test-case name="K2-AnyURILeGe-7" result="pass"/><test-case name="K2-AnyURILeGe-8" result="pass"/><test-case name="K2-AnyURILeGe-9" result="pass"/><test-case name="K2-AnyURILeGe-10" result="pass"/><test-case name="generalexpression1" result="pass"/><test-case name="generalexpression2" result="pass"/><test-case name="generalexpression3" result="pass"/><test-case name="generalexpression4" result="pass"/><test-case name="generalexpression5" result="pass"/><test-case name="generalexpression6" result="pass"/><test-case name="generalexpression7" result="pass"/><test-case name="generalexpression8" result="pass"/><test-case name="generalexpression9" result="pass"/><test-case name="generalexpression10" result="pass"/><test-case name="generalexpression11" result="pass"/><test-case name="generalexpression12" result="pass"/><test-case name="generalexpression13" result="pass"/><test-case name="generalexpression14" result="pass"/><test-case name="generalexpression15" result="pass"/><test-case name="generalexpression16" result="pass"/><test-case name="generalexpression17" result="pass"/><test-case name="generalexpression18" result="pass"/><test-case name="generalexpression19" result="pass"/><test-case name="generalexpression20" result="pass"/><test-case name="generalexpression21" result="pass"/><test-case name="generalexpression22" result="pass"/><test-case name="generalexpression23" result="pass"/><test-case name="generalexpression24" result="pass"/><test-case name="generalexpression25" result="pass"/><test-case name="generalexpression26" result="pass"/><test-case name="generalexpression27" result="pass"/><test-case name="generalexpression28" result="pass"/><test-case name="generalexpression29" result="pass"/><test-case name="generalexpression30" result="pass"/><test-case name="generalexpression31" result="pass"/><test-case name="generalexpression32" result="pass"/><test-case name="generalexpression33" result="pass"/><test-case name="generalexpression34" result="pass"/><test-case name="generalexpression35" result="pass"/><test-case name="generalexpression36" result="pass"/><test-case name="generalexpression37" result="pass"/><test-case name="generalexpression38" result="pass"/><test-case name="generalexpression39" result="pass"/><test-case name="generalexpression40" result="pass"/><test-case name="generalexpression41" result="pass"/><test-case name="generalexpression42" result="pass"/><test-case name="generalexpression43" result="pass"/><test-case name="generalexpression44" result="pass"/><test-case name="generalexpression45" result="pass"/><test-case name="generalexpression46" result="pass"/><test-case name="generalexpression47" result="pass"/><test-case name="generalexpression48" result="pass"/><test-case name="generalexpression49" result="pass"/><test-case name="generalexpression50" result="pass"/><test-case name="generalexpression51" result="pass"/><test-case name="generalexpression52" result="pass"/><test-case name="generalexpression53" result="pass"/><test-case name="generalexpression54" result="pass"/><test-case name="generalexpression55" result="pass"/><test-case name="generalexpression56" result="pass"/><test-case name="generalexpression57" result="pass"/><test-case name="generalexpression58" result="pass"/><test-case name="generalexpression59" result="pass"/><test-case name="generalexpression60" result="pass"/><test-case name="generalexpression61" result="pass"/><test-case name="generalexpression62" result="pass"/><test-case name="generalexpression63" result="pass"/><test-case name="generalexpression64" result="pass"/><test-case name="generalexpression65" result="pass"/><test-case name="generalexpression66" result="pass"/><test-case name="generalexpression67" result="pass"/><test-case name="generalexpression68" result="pass"/><test-case name="generalexpression69" result="pass"/><test-case name="generalexpression70" result="pass"/><test-case name="generalexpression71" result="pass"/><test-case name="generalexpression72" result="pass"/><test-case name="generalexpression73" result="pass"/><test-case name="generalexpression74" result="pass"/><test-case name="generalexpression75" result="pass"/><test-case name="generalexpression76" result="pass"/><test-case name="generalexpression77" result="pass"/><test-case name="generalexpression78" result="pass"/><test-case name="generalexpression79" result="pass"/><test-case name="generalexpression80" result="pass"/><test-case name="generalexpression81" result="pass"/><test-case name="generalexpression82" result="pass"/><test-case name="generalexpression83" result="pass"/><test-case name="generalexpression84" result="pass"/><test-case name="generalexpression85" result="pass"/><test-case name="generalexpression86" result="pass"/><test-case name="generalexpression87" result="pass"/><test-case name="generalexpression88" result="pass"/><test-case name="generalexpression89" result="pass"/><test-case name="generalexpression90" result="pass"/><test-case name="generalexpression91" result="pass"/><test-case name="generalexpression92" result="pass"/><test-case name="generalexpression93" result="pass"/><test-case name="generalexpression94" result="pass"/><test-case name="generalexpression95" result="pass"/><test-case name="generalexpression96" result="pass"/><test-case name="generalexpression97" result="pass"/><test-case name="generalexpression98" result="pass"/><test-case name="generalexpression99" result="pass"/><test-case name="K-GenCompEq-1" result="pass"/><test-case name="K-GenCompEq-2" result="pass"/><test-case name="K-GenCompEq-3" result="pass"/><test-case name="K-GenCompEq-4" result="pass"/><test-case name="K-GenCompEq-5" result="pass"/><test-case name="K-GenCompEq-6" result="pass"/><test-case name="K-GenCompEq-7" result="pass"/><test-case name="K-GenCompEq-8" result="pass"/><test-case name="K-GenCompEq-9" result="pass"/><test-case name="K-GenCompEq-10" result="pass"/><test-case name="K-GenCompEq-11" result="pass"/><test-case name="K-GenCompEq-12" result="pass"/><test-case name="K-GenCompEq-13" result="pass"/><test-case name="K-GenCompEq-14" result="pass"/><test-case name="K-GenCompEq-15" result="pass"/><test-case name="K-GenCompEq-16" result="pass"/><test-case name="K-GenCompEq-17" result="pass"/><test-case name="K-GenCompEq-18" result="pass"/><test-case name="K-GenCompEq-19" result="pass"/><test-case name="K-GenCompEq-20" result="pass"/><test-case name="K-GenCompEq-21" result="pass"/><test-case name="K-GenCompEq-22" result="pass"/><test-case name="K-GenCompEq-23" result="pass"/><test-case name="K-GenCompEq-24" result="pass"/><test-case name="K-GenCompEq-25" result="pass"/><test-case name="K-GenCompEq-26" result="pass"/><test-case name="K-GenCompEq-27" result="pass"/><test-case name="K-GenCompEq-28" result="pass"/><test-case name="K-GenCompEq-29" result="pass"/><test-case name="K-GenCompEq-30" result="pass"/><test-case name="K-GenCompEq-31" result="pass"/><test-case name="K-GenCompEq-32" result="pass"/><test-case name="K-GenCompEq-33" result="pass"/><test-case name="K-GenCompEq-34" result="pass"/><test-case name="K-GenCompEq-35" result="pass"/><test-case name="K-GenCompEq-36" result="pass"/><test-case name="K-GenCompEq-37" result="pass"/><test-case name="K-GenCompEq-38" result="pass"/><test-case name="K-GenCompEq-39" result="pass"/><test-case name="K-GenCompEq-40" result="pass"/><test-case name="K-GenCompEq-41" result="pass"/><test-case name="K-GenCompEq-42" result="pass"/><test-case name="K-GenCompEq-43" result="pass"/><test-case name="K-GenCompEq-44" result="pass"/><test-case name="K-GenCompEq-45" result="pass"/><test-case name="K-GenCompEq-46" result="pass"/><test-case name="K-GenCompEq-47" result="pass"/><test-case name="K-GenCompEq-48" result="pass"/><test-case name="K-GenCompEq-49" result="pass"/><test-case name="K-GenCompEq-50" result="pass"/><test-case name="K-GenCompEq-51" result="pass"/><test-case name="K-GenCompEq-52" result="pass"/><test-case name="K-GenCompEq-53" result="pass"/><test-case name="K-GenCompEq-54" result="pass"/><test-case name="K-GenCompEq-55" result="pass"/><test-case name="K-GenCompEq-56" result="pass"/><test-case name="K-GenCompEq-57" result="pass"/><test-case name="K-GenCompEq-58" result="pass"/><test-case name="K-GenCompEq-59" result="pass"/><test-case name="K2-GenCompEq-1" result="pass"/><test-case name="K2-GenCompEq-2" result="pass"/><test-case name="K2-GenCompEq-3" result="pass"/><test-case name="K2-GenCompEq-4" result="pass"/><test-case name="K2-GenCompEq-5" result="pass"/><test-case name="K2-GenCompEq-6" result="pass"/><test-case name="K2-GenCompEq-7" result="pass"/><test-case name="K2-GenCompEq-8" result="pass"/><test-case name="generalexpression100" result="pass"/><test-case name="generalexpression101" result="pass"/><test-case name="generalexpression102" result="pass"/><test-case name="generalexpression103" result="pass"/><test-case name="generalexpression104" result="pass"/><test-case name="generalexpression105" result="pass"/><test-case name="generalexpression106" result="pass"/><test-case name="generalexpression107" result="pass"/><test-case name="generalexpression108" result="pass"/><test-case name="generalexpression109" result="pass"/><test-case name="generalexpression110" result="pass"/><test-case name="generalexpression111" result="pass"/><test-case name="generalexpression112" result="pass"/><test-case name="generalexpression113" result="pass"/><test-case name="generalexpression114" result="pass"/><test-case name="generalexpression115" result="pass"/><test-case name="generalexpression116" result="pass"/><test-case name="generalexpression117" result="pass"/><test-case name="generalexpression118" result="pass"/><test-case name="generalexpression119" result="pass"/><test-case name="generalexpression120" result="pass"/><test-case name="generalexpression121" result="pass"/><test-case name="generalexpression122" result="pass"/><test-case name="generalexpression123" result="pass"/><test-case name="generalexpression124" result="pass"/><test-case name="generalexpression125" result="pass"/><test-case name="generalexpression126" result="pass"/><test-case name="generalexpression127" result="pass"/><test-case name="generalexpression128" result="pass"/><test-case name="generalexpression129" result="pass"/><test-case name="generalexpression130" result="pass"/><test-case name="generalexpression131" result="pass"/><test-case name="generalexpression132" result="pass"/><test-case name="generalexpression133" result="pass"/><test-case name="generalexpression134" result="pass"/><test-case name="generalexpression135" result="pass"/><test-case name="generalexpression136" result="pass"/><test-case name="generalexpression137" result="pass"/><test-case name="generalexpression138" result="pass"/><test-case name="generalexpression139" result="pass"/><test-case name="generalexpression140" result="pass"/><test-case name="generalexpression141" result="pass"/><test-case name="generalexpression142" result="pass"/><test-case name="generalexpression143" result="pass"/><test-case name="generalexpression144" result="pass"/><test-case name="generalexpression145" result="pass"/><test-case name="generalexpression146" result="pass"/><test-case name="generalexpression147" result="pass"/><test-case name="generalexpression148" result="pass"/><test-case name="generalexpression149" result="pass"/><test-case name="generalexpression150" result="pass"/><test-case name="generalexpression151" result="pass"/><test-case name="generalexpression152" result="pass"/><test-case name="generalexpression153" result="pass"/><test-case name="generalexpression154" result="pass"/><test-case name="generalexpression155" result="pass"/><test-case name="generalexpression156" result="pass"/><test-case name="generalexpression157" result="pass"/><test-case name="generalexpression158" result="pass"/><test-case name="generalexpression159" result="pass"/><test-case name="generalexpression160" result="pass"/><test-case name="generalexpression161" result="pass"/><test-case name="generalexpression162" result="pass"/><test-case name="generalexpression163" result="pass"/><test-case name="generalexpression164" result="pass"/><test-case name="generalexpression165" result="pass"/><test-case name="generalexpression166" result="pass"/><test-case name="generalexpression167" result="pass"/><test-case name="generalexpression168" result="pass"/><test-case name="generalexpression169" result="pass"/><test-case name="generalexpression170" result="pass"/><test-case name="generalexpression171" result="pass"/><test-case name="generalexpression172" result="pass"/><test-case name="generalexpression173" result="pass"/><test-case name="generalexpression174" result="pass"/><test-case name="generalexpression175" result="pass"/><test-case name="generalexpression176" result="pass"/><test-case name="generalexpression177" result="pass"/><test-case name="generalexpression178" result="pass"/><test-case name="generalexpression179" result="pass"/><test-case name="generalexpression180" result="pass"/><test-case name="generalexpression181" result="pass"/><test-case name="generalexpression182" result="pass"/><test-case name="generalexpression183" result="pass"/><test-case name="generalexpression184" result="pass"/><test-case name="generalexpression185" result="pass"/><test-case name="generalexpression186" result="pass"/><test-case name="generalexpression187" result="pass"/><test-case name="generalexpression188" result="pass"/><test-case name="generalexpression189" result="pass"/><test-case name="generalexpression190" result="pass"/><test-case name="generalexpression191" result="pass"/><test-case name="generalexpression192" result="pass"/><test-case name="generalexpression193" result="pass"/><test-case name="generalexpression194" result="pass"/><test-case name="generalexpression195" result="pass"/><test-case name="generalexpression196" result="pass"/><test-case name="generalexpression197" result="pass"/><test-case name="generalexpression198" result="pass"/><test-case name="K-GenCompNE-1" result="pass"/><test-case name="K-GenCompNE-2" result="pass"/><test-case name="K-GenCompNE-3" result="pass"/><test-case name="K-GenCompNE-4" result="pass"/><test-case name="K-GenCompNE-5" result="pass"/><test-case name="K-GenCompNE-6" result="pass"/><test-case name="K-GenCompNE-7" result="pass"/><test-case name="K-GenCompNE-8" result="pass"/><test-case name="K-GenCompNE-9" result="pass"/><test-case name="K-GenCompNE-10" result="pass"/><test-case name="K-GenCompNE-11" result="pass"/><test-case name="K-GenCompNE-12" result="pass"/><test-case name="K-GenCompNE-13" result="pass"/><test-case name="K-GenCompNE-14" result="pass"/><test-case name="K-GenCompNE-15" result="pass"/><test-case name="K-GenCompNE-16" result="pass"/><test-case name="K-GenCompNE-17" result="pass"/><test-case name="K-GenCompNE-18" result="pass"/><test-case name="K-GenCompNE-19" result="pass"/><test-case name="K-GenCompNE-20" result="pass"/><test-case name="K-GenCompNE-21" result="pass"/><test-case name="K-GenCompNE-22" result="pass"/><test-case name="K-GenCompNE-23" result="pass"/><test-case name="K-GenCompNE-24" result="pass"/><test-case name="K-GenCompNE-25" result="pass"/><test-case name="K-GenCompNE-26" result="pass"/><test-case name="K-GenCompNE-27" result="pass"/><test-case name="K-GenCompNE-28" result="pass"/><test-case name="K-GenCompNE-29" result="pass"/><test-case name="K-GenCompNE-30" result="pass"/><test-case name="K-GenCompNE-31" result="pass"/><test-case name="K-GenCompNE-32" result="pass"/><test-case name="K-GenCompNE-33" result="pass"/><test-case name="K-GenCompNE-34" result="pass"/><test-case name="K-GenCompNE-35" result="pass"/><test-case name="K-GenCompNE-36" result="pass"/><test-case name="K-GenCompNE-37" result="pass"/><test-case name="K-GenCompNE-38" result="pass"/><test-case name="K-GenCompNE-39" result="pass"/><test-case name="K-GenCompNE-40" result="pass"/><test-case name="K-GenCompNE-41" result="pass"/><test-case name="generalexpression199" result="pass"/><test-case name="generalexpression200" result="pass"/><test-case name="generalexpression201" result="pass"/><test-case name="generalexpression202" result="pass"/><test-case name="generalexpression203" result="pass"/><test-case name="generalexpression204" result="pass"/><test-case name="generalexpression205" result="pass"/><test-case name="generalexpression206" result="pass"/><test-case name="generalexpression207" result="pass"/><test-case name="generalexpression208" result="pass"/><test-case name="generalexpression209" result="pass"/><test-case name="generalexpression210" result="pass"/><test-case name="generalexpression211" result="pass"/><test-case name="generalexpression212" result="pass"/><test-case name="generalexpression213" result="pass"/><test-case name="generalexpression214" result="pass"/><test-case name="generalexpression215" result="pass"/><test-case name="generalexpression216" result="pass"/><test-case name="generalexpression217" result="pass"/><test-case name="generalexpression218" result="pass"/><test-case name="generalexpression219" result="pass"/><test-case name="generalexpression220" result="pass"/><test-case name="generalexpression221" result="pass"/><test-case name="generalexpression222" result="pass"/><test-case name="generalexpression223" result="pass"/><test-case name="generalexpression224" result="pass"/><test-case name="generalexpression225" result="pass"/><test-case name="generalexpression226" result="pass"/><test-case name="generalexpression227" result="pass"/><test-case name="generalexpression228" result="pass"/><test-case name="generalexpression229" result="pass"/><test-case name="generalexpression230" result="pass"/><test-case name="generalexpression231" result="pass"/><test-case name="generalexpression232" result="pass"/><test-case name="generalexpression233" result="pass"/><test-case name="generalexpression234" result="pass"/><test-case name="generalexpression235" result="pass"/><test-case name="generalexpression236" result="pass"/><test-case name="generalexpression237" result="pass"/><test-case name="generalexpression238" result="pass"/><test-case name="generalexpression239" result="pass"/><test-case name="generalexpression240" result="pass"/><test-case name="generalexpression241" result="pass"/><test-case name="generalexpression242" result="pass"/><test-case name="generalexpression243" result="pass"/><test-case name="generalexpression244" result="pass"/><test-case name="generalexpression245" result="pass"/><test-case name="generalexpression246" result="pass"/><test-case name="generalexpression247" result="pass"/><test-case name="generalexpression248" result="pass"/><test-case name="generalexpression249" result="pass"/><test-case name="generalexpression250" result="pass"/><test-case name="generalexpression251" result="pass"/><test-case name="generalexpression252" result="pass"/><test-case name="generalexpression253" result="pass"/><test-case name="generalexpression254" result="pass"/><test-case name="generalexpression255" result="pass"/><test-case name="generalexpression256" result="pass"/><test-case name="generalexpression257" result="pass"/><test-case name="generalexpression258" result="pass"/><test-case name="generalexpression259" result="pass"/><test-case name="generalexpression260" result="pass"/><test-case name="generalexpression261" result="pass"/><test-case name="generalexpression262" result="pass"/><test-case name="generalexpression263" result="pass"/><test-case name="generalexpression264" result="pass"/><test-case name="generalexpression265" result="pass"/><test-case name="generalexpression266" result="pass"/><test-case name="generalexpression267" result="pass"/><test-case name="generalexpression268" result="pass"/><test-case name="generalexpression269" result="pass"/><test-case name="generalexpression270" result="pass"/><test-case name="generalexpression271" result="pass"/><test-case name="generalexpression272" result="pass"/><test-case name="generalexpression273" result="pass"/><test-case name="generalexpression274" result="pass"/><test-case name="generalexpression275" result="pass"/><test-case name="generalexpression276" result="pass"/><test-case name="generalexpression277" result="pass"/><test-case name="generalexpression278" result="pass"/><test-case name="generalexpression279" result="pass"/><test-case name="generalexpression280" result="pass"/><test-case name="generalexpression281" result="pass"/><test-case name="generalexpression282" result="pass"/><test-case name="generalexpression283" result="pass"/><test-case name="generalexpression284" result="pass"/><test-case name="generalexpression285" result="pass"/><test-case name="generalexpression286" result="pass"/><test-case name="generalexpression287" result="pass"/><test-case name="generalexpression288" result="pass"/><test-case name="generalexpression289" result="pass"/><test-case name="generalexpression290" result="pass"/><test-case name="generalexpression291" result="pass"/><test-case name="generalexpression292" result="pass"/><test-case name="generalexpression293" result="pass"/><test-case name="generalexpression294" result="pass"/><test-case name="generalexpression295" result="pass"/><test-case name="generalexpression296" result="pass"/><test-case name="generalexpression297" result="pass"/><test-case name="lessthanonanyuri-1" result="pass"/><test-case name="K-GenCompLT-1" result="pass"/><test-case name="K-GenCompLT-2" result="pass"/><test-case name="K-GenCompLT-3" result="pass"/><test-case name="K-GenCompLT-4" result="pass"/><test-case name="K-GenCompLT-5" result="pass"/><test-case name="K-GenCompLT-6" result="pass"/><test-case name="K-GenCompLT-7" result="pass"/><test-case name="K-GenCompLT-8" result="pass"/><test-case name="K-GenCompLT-9" result="pass"/><test-case name="K-GenCompLT-10" result="pass"/><test-case name="K-GenCompLT-11" result="pass"/><test-case name="K-GenCompLT-12" result="pass"/><test-case name="K-GenCompLT-13" result="pass"/><test-case name="K-GenCompLT-14" result="pass"/><test-case name="K-GenCompLT-15" result="pass"/><test-case name="K-GenCompLT-16" result="pass"/><test-case name="K-GenCompLT-17" result="pass"/><test-case name="K-GenCompLT-18" result="pass"/><test-case name="K-GenCompLT-19" result="pass"/><test-case name="K2-GenCompLT-1" result="pass"/><test-case name="K2-GenCompLT-2" result="pass"/><test-case name="K2-GenCompLT-3" result="pass"/><test-case name="K2-GenCompLT-4" result="pass"/><test-case name="K2-GenCompLT-5" result="pass"/><test-case name="K2-GenCompLT-6" result="pass"/><test-case name="K2-GenCompLT-7" result="pass"/><test-case name="K2-GenCompLT-8" result="pass"/><test-case name="generalexpression298" result="pass"/><test-case name="generalexpression299" result="pass"/><test-case name="generalexpression300" result="pass"/><test-case name="generalexpression301" result="pass"/><test-case name="generalexpression302" result="pass"/><test-case name="generalexpression303" result="pass"/><test-case name="generalexpression304" result="pass"/><test-case name="generalexpression305" result="pass"/><test-case name="generalexpression306" result="pass"/><test-case name="generalexpression307" result="pass"/><test-case name="generalexpression308" result="pass"/><test-case name="generalexpression309" result="pass"/><test-case name="generalexpression310" result="pass"/><test-case name="generalexpression311" result="pass"/><test-case name="generalexpression312" result="pass"/><test-case name="generalexpression313" result="pass"/><test-case name="generalexpression314" result="pass"/><test-case name="generalexpression315" result="pass"/><test-case name="generalexpression316" result="pass"/><test-case name="generalexpression317" result="pass"/><test-case name="generalexpression318" result="pass"/><test-case name="generalexpression319" result="pass"/><test-case name="generalexpression320" result="pass"/><test-case name="generalexpression321" result="pass"/><test-case name="generalexpression322" result="pass"/><test-case name="generalexpression323" result="pass"/><test-case name="generalexpression324" result="pass"/><test-case name="generalexpression325" result="pass"/><test-case name="generalexpression326" result="pass"/><test-case name="generalexpression327" result="pass"/><test-case name="generalexpression328" result="pass"/><test-case name="generalexpression329" result="pass"/><test-case name="generalexpression330" result="pass"/><test-case name="generalexpression331" result="pass"/><test-case name="generalexpression332" result="pass"/><test-case name="generalexpression333" result="pass"/><test-case name="generalexpression334" result="pass"/><test-case name="generalexpression335" result="pass"/><test-case name="generalexpression336" result="pass"/><test-case name="generalexpression337" result="pass"/><test-case name="generalexpression338" result="pass"/><test-case name="generalexpression339" result="pass"/><test-case name="generalexpression340" result="pass"/><test-case name="generalexpression341" result="pass"/><test-case name="generalexpression342" result="pass"/><test-case name="generalexpression343" result="pass"/><test-case name="generalexpression344" result="pass"/><test-case name="generalexpression345" result="pass"/><test-case name="generalexpression346" result="pass"/><test-case name="generalexpression347" result="pass"/><test-case name="generalexpression348" result="pass"/><test-case name="generalexpression349" result="pass"/><test-case name="generalexpression350" result="pass"/><test-case name="generalexpression351" result="pass"/><test-case name="generalexpression352" result="pass"/><test-case name="generalexpression353" result="pass"/><test-case name="generalexpression354" result="pass"/><test-case name="generalexpression355" result="pass"/><test-case name="generalexpression356" result="pass"/><test-case name="generalexpression357" result="pass"/><test-case name="generalexpression358" result="pass"/><test-case name="generalexpression359" result="pass"/><test-case name="generalexpression360" result="pass"/><test-case name="generalexpression361" result="pass"/><test-case name="generalexpression362" result="pass"/><test-case name="generalexpression363" result="pass"/><test-case name="generalexpression364" result="pass"/><test-case name="generalexpression365" result="pass"/><test-case name="generalexpression366" result="pass"/><test-case name="generalexpression367" result="pass"/><test-case name="generalexpression368" result="pass"/><test-case name="generalexpression369" result="pass"/><test-case name="generalexpression370" result="pass"/><test-case name="generalexpression371" result="pass"/><test-case name="generalexpression372" result="pass"/><test-case name="generalexpression373" result="pass"/><test-case name="generalexpression374" result="pass"/><test-case name="generalexpression375" result="pass"/><test-case name="generalexpression376" result="pass"/><test-case name="generalexpression377" result="pass"/><test-case name="generalexpression378" result="pass"/><test-case name="generalexpression379" result="pass"/><test-case name="generalexpression380" result="pass"/><test-case name="generalexpression381" result="pass"/><test-case name="generalexpression382" result="pass"/><test-case name="generalexpression383" result="pass"/><test-case name="generalexpression384" result="pass"/><test-case name="generalexpression385" result="pass"/><test-case name="generalexpression386" result="pass"/><test-case name="generalexpression387" result="pass"/><test-case name="generalexpression388" result="pass"/><test-case name="generalexpression389" result="pass"/><test-case name="generalexpression390" result="pass"/><test-case name="generalexpression391" result="pass"/><test-case name="generalexpression392" result="pass"/><test-case name="generalexpression393" result="pass"/><test-case name="generalexpression394" result="pass"/><test-case name="generalexpression395" result="pass"/><test-case name="generalexpression396" result="pass"/><test-case name="lessthaneqonanyuri-1" result="pass"/><test-case name="K-GenCompLTEQ-1" result="pass"/><test-case name="K-GenCompLTEQ-2" result="pass"/><test-case name="K-GenCompLTEQ-3" result="pass"/><test-case name="K-GenCompLTEQ-4" result="pass"/><test-case name="K-GenCompLTEQ-5" result="pass"/><test-case name="K-GenCompLTEQ-6" result="pass"/><test-case name="K-GenCompLTEQ-7" result="pass"/><test-case name="K-GenCompLTEQ-8" result="pass"/><test-case name="generalexpression397" result="pass"/><test-case name="generalexpression398" result="pass"/><test-case name="generalexpression399" result="pass"/><test-case name="generalexpression400" result="pass"/><test-case name="generalexpression401" result="pass"/><test-case name="generalexpression402" result="pass"/><test-case name="generalexpression403" result="pass"/><test-case name="generalexpression404" result="pass"/><test-case name="generalexpression405" result="pass"/><test-case name="generalexpression406" result="pass"/><test-case name="generalexpression407" result="pass"/><test-case name="generalexpression408" result="pass"/><test-case name="generalexpression409" result="pass"/><test-case name="generalexpression410" result="pass"/><test-case name="generalexpression411" result="pass"/><test-case name="generalexpression412" result="pass"/><test-case name="generalexpression413" result="pass"/><test-case name="generalexpression414" result="pass"/><test-case name="generalexpression415" result="pass"/><test-case name="generalexpression416" result="pass"/><test-case name="generalexpression417" result="pass"/><test-case name="generalexpression418" result="pass"/><test-case name="generalexpression419" result="pass"/><test-case name="generalexpression420" result="pass"/><test-case name="generalexpression421" result="pass"/><test-case name="generalexpression422" result="pass"/><test-case name="generalexpression423" result="pass"/><test-case name="generalexpression424" result="pass"/><test-case name="generalexpression425" result="pass"/><test-case name="generalexpression426" result="pass"/><test-case name="generalexpression427" result="pass"/><test-case name="generalexpression428" result="pass"/><test-case name="generalexpression429" result="pass"/><test-case name="generalexpression430" result="pass"/><test-case name="generalexpression431" result="pass"/><test-case name="generalexpression432" result="pass"/><test-case name="generalexpression433" result="pass"/><test-case name="generalexpression434" result="pass"/><test-case name="generalexpression435" result="pass"/><test-case name="generalexpression436" result="pass"/><test-case name="generalexpression437" result="pass"/><test-case name="generalexpression438" result="pass"/><test-case name="generalexpression439" result="pass"/><test-case name="generalexpression440" result="pass"/><test-case name="generalexpression441" result="pass"/><test-case name="generalexpression442" result="pass"/><test-case name="generalexpression443" result="pass"/><test-case name="generalexpression444" result="pass"/><test-case name="generalexpression445" result="pass"/><test-case name="generalexpression446" result="pass"/><test-case name="generalexpression447" result="pass"/><test-case name="generalexpression448" result="pass"/><test-case name="generalexpression449" result="pass"/><test-case name="generalexpression450" result="pass"/><test-case name="generalexpression451" result="pass"/><test-case name="generalexpression452" result="pass"/><test-case name="generalexpression453" result="pass"/><test-case name="generalexpression454" result="pass"/><test-case name="generalexpression455" result="pass"/><test-case name="generalexpression456" result="pass"/><test-case name="generalexpression457" result="pass"/><test-case name="generalexpression458" result="pass"/><test-case name="generalexpression459" result="pass"/><test-case name="generalexpression460" result="pass"/><test-case name="generalexpression461" result="pass"/><test-case name="generalexpression462" result="pass"/><test-case name="generalexpression463" result="pass"/><test-case name="generalexpression464" result="pass"/><test-case name="generalexpression465" result="pass"/><test-case name="generalexpression466" result="pass"/><test-case name="generalexpression467" result="pass"/><test-case name="generalexpression468" result="pass"/><test-case name="generalexpression469" result="pass"/><test-case name="generalexpression470" result="pass"/><test-case name="generalexpression471" result="pass"/><test-case name="generalexpression472" result="pass"/><test-case name="generalexpression473" result="pass"/><test-case name="generalexpression474" result="pass"/><test-case name="generalexpression475" result="pass"/><test-case name="generalexpression476" result="pass"/><test-case name="generalexpression477" result="pass"/><test-case name="generalexpression478" result="pass"/><test-case name="generalexpression479" result="pass"/><test-case name="generalexpression480" result="pass"/><test-case name="generalexpression481" result="pass"/><test-case name="generalexpression482" result="pass"/><test-case name="generalexpression483" result="pass"/><test-case name="generalexpression484" result="pass"/><test-case name="generalexpression485" result="pass"/><test-case name="generalexpression486" result="pass"/><test-case name="generalexpression487" result="pass"/><test-case name="generalexpression488" result="pass"/><test-case name="generalexpression489" result="pass"/><test-case name="generalexpression490" result="pass"/><test-case name="generalexpression491" result="pass"/><test-case name="generalexpression492" result="pass"/><test-case name="generalexpression493" result="pass"/><test-case name="generalexpression494" result="pass"/><test-case name="greaterthanonanyuri-1" result="pass"/><test-case name="K-GenCompGT-1" result="pass"/><test-case name="K-GenCompGT-2" result="pass"/><test-case name="K-GenCompGT-3" result="pass"/><test-case name="K-GenCompGT-4" result="pass"/><test-case name="K-GenCompGT-5" result="pass"/><test-case name="K-GenCompGT-6" result="pass"/><test-case name="K-GenCompGT-7" result="pass"/><test-case name="K-GenCompGT-8" result="pass"/><test-case name="K-GenCompGT-9" result="pass"/><test-case name="K-GenCompGT-10" result="pass"/><test-case name="K-GenCompGT-11" result="pass"/><test-case name="K-GenCompGT-12" result="pass"/><test-case name="K-GenCompGT-13" result="pass"/><test-case name="K-GenCompGT-14" result="pass"/><test-case name="K-GenCompGT-15" result="pass"/><test-case name="K-GenCompGT-16" result="pass"/><test-case name="K-GenCompGT-17" result="pass"/><test-case name="K-GenCompGT-18" result="pass"/><test-case name="K-GenCompGT-19" result="pass"/><test-case name="generalexpression496" result="pass"/><test-case name="generalexpression497" result="pass"/><test-case name="generalexpression498" result="pass"/><test-case name="generalexpression499" result="pass"/><test-case name="generalexpression500" result="pass"/><test-case name="generalexpression501" result="pass"/><test-case name="generalexpression502" result="pass"/><test-case name="generalexpression503" result="pass"/><test-case name="generalexpression504" result="pass"/><test-case name="generalexpression505" result="pass"/><test-case name="generalexpression506" result="pass"/><test-case name="generalexpression507" result="pass"/><test-case name="generalexpression508" result="pass"/><test-case name="generalexpression509" result="pass"/><test-case name="generalexpression510" result="pass"/><test-case name="generalexpression511" result="pass"/><test-case name="generalexpression512" result="pass"/><test-case name="generalexpression513" result="pass"/><test-case name="generalexpression514" result="pass"/><test-case name="generalexpression515" result="pass"/><test-case name="generalexpression516" result="pass"/><test-case name="generalexpression517" result="pass"/><test-case name="generalexpression518" result="pass"/><test-case name="generalexpression519" result="pass"/><test-case name="generalexpression520" result="pass"/><test-case name="generalexpression521" result="pass"/><test-case name="generalexpression522" result="pass"/><test-case name="generalexpression523" result="pass"/><test-case name="generalexpression524" result="pass"/><test-case name="generalexpression525" result="pass"/><test-case name="generalexpression526" result="pass"/><test-case name="generalexpression527" result="pass"/><test-case name="generalexpression528" result="pass"/><test-case name="generalexpression529" result="pass"/><test-case name="generalexpression530" result="pass"/><test-case name="generalexpression531" result="pass"/><test-case name="generalexpression532" result="pass"/><test-case name="generalexpression533" result="pass"/><test-case name="generalexpression534" result="pass"/><test-case name="generalexpression535" result="pass"/><test-case name="generalexpression536" result="pass"/><test-case name="generalexpression537" result="pass"/><test-case name="generalexpression538" result="pass"/><test-case name="generalexpression539" result="pass"/><test-case name="generalexpression540" result="pass"/><test-case name="generalexpression541" result="pass"/><test-case name="generalexpression542" result="pass"/><test-case name="generalexpression543" result="pass"/><test-case name="generalexpression544" result="pass"/><test-case name="generalexpression545" result="pass"/><test-case name="generalexpression546" result="pass"/><test-case name="generalexpression547" result="pass"/><test-case name="generalexpression548" result="pass"/><test-case name="generalexpression549" result="pass"/><test-case name="generalexpression550" result="pass"/><test-case name="generalexpression551" result="pass"/><test-case name="generalexpression552" result="pass"/><test-case name="generalexpression553" result="pass"/><test-case name="generalexpression554" result="pass"/><test-case name="generalexpression555" result="pass"/><test-case name="generalexpression556" result="pass"/><test-case name="generalexpression557" result="pass"/><test-case name="generalexpression558" result="pass"/><test-case name="generalexpression559" result="pass"/><test-case name="generalexpression560" result="pass"/><test-case name="generalexpression561" result="pass"/><test-case name="generalexpression562" result="pass"/><test-case name="generalexpression563" result="pass"/><test-case name="generalexpression564" result="pass"/><test-case name="generalexpression565" result="pass"/><test-case name="generalexpression566" result="pass"/><test-case name="generalexpression567" result="pass"/><test-case name="generalexpression568" result="pass"/><test-case name="generalexpression569" result="pass"/><test-case name="generalexpression570" result="pass"/><test-case name="generalexpression571" result="pass"/><test-case name="generalexpression572" result="pass"/><test-case name="generalexpression573" result="pass"/><test-case name="generalexpression574" result="pass"/><test-case name="generalexpression575" result="pass"/><test-case name="generalexpression576" result="pass"/><test-case name="generalexpression577" result="pass"/><test-case name="generalexpression578" result="pass"/><test-case name="generalexpression579" result="pass"/><test-case name="generalexpression580" result="pass"/><test-case name="generalexpression581" result="pass"/><test-case name="generalexpression582" result="pass"/><test-case name="generalexpression583" result="pass"/><test-case name="generalexpression584" result="pass"/><test-case name="generalexpression585" result="pass"/><test-case name="generalexpression586" result="pass"/><test-case name="generalexpression587" result="pass"/><test-case name="generalexpression588" result="pass"/><test-case name="generalexpression589" result="pass"/><test-case name="generalexpression590" result="pass"/><test-case name="generalexpression591" result="pass"/><test-case name="generalexpression592" result="pass"/><test-case name="generalexpression593" result="pass"/><test-case name="generalexpression594" result="pass"/><test-case name="greaterthaneqonanyuri-1" result="pass"/><test-case name="K-GenCompGTEQ-1" result="pass"/><test-case name="K-GenCompGTEQ-2" result="pass"/><test-case name="K-GenCompGTEQ-3" result="pass"/><test-case name="K-GenCompGTEQ-4" result="pass"/><test-case name="K-GenCompGTEQ-5" result="pass"/><test-case name="K-GenCompGTEQ-6" result="pass"/><test-case name="K-GenCompGTEQ-7" result="pass"/><test-case name="K-GenCompGTEQ-8" result="pass"/><test-case name="K-GenCompGTEQ-9" result="pass"/><test-case name="K-GenCompGTEQ-10" result="pass"/><test-case name="nodeexpression1" result="pass"/><test-case name="nodeexpression2" result="pass"/><test-case name="nodeexpression3" result="pass"/><test-case name="nodeexpression4" result="pass"/><test-case name="nodeexpression5" result="pass"/><test-case name="nodeexpression6" result="pass"/><test-case name="nodeexpression7" result="pass"/><test-case name="nodeexpression8" result="pass"/><test-case name="nodeexpression9" result="pass"/><test-case name="nodeexpression10" result="pass"/><test-case name="nodeexpression11" result="pass"/><test-case name="nodeexpression12" result="pass"/><test-case name="nodeexpression13" result="pass"/><test-case name="nodeexpression14" result="pass"/><test-case name="nodeexpression15" result="pass"/><test-case name="nodeexpression16" result="pass"/><test-case name="nodeexpressionhc1" result="pass"/><test-case name="nodeexpressionhc2" result="pass"/><test-case name="nodeexpressionhc3" result="pass"/><test-case name="nodeexpressionhc4" result="pass"/><test-case name="nodeexpressionhc5" result="pass"/><test-case name="nodecomparisonerr-1" result="pass"/><test-case name="K-NodeSame-1" result="pass"/><test-case name="K-NodeSame-2" result="pass"/><test-case name="K-NodeSame-3" result="pass"/><test-case name="K-NodeSame-4" result="pass"/><test-case name="K-NodeSame-5" result="pass"/><test-case name="K-NodeSame-6" result="pass"/><test-case name="K2-NodeSame-1" result="pass"/><test-case name="K2-NodeSame-2" result="pass"/><test-case name="K2-NodeSame-3" result="pass"/><test-case name="K2-NodeSame-4" result="pass"/><test-case name="K2-NodeSame-5" result="pass"/><test-case name="K2-NodeSame-6" result="pass"/><test-case name="nodeexpression17" result="pass"/><test-case name="nodeexpression18" result="pass"/><test-case name="nodeexpression19" result="pass"/><test-case name="nodeexpression20" result="pass"/><test-case name="nodeexpression21" result="pass"/><test-case name="nodeexpression22" result="pass"/><test-case name="nodeexpression23" result="pass"/><test-case name="nodeexpression24" result="pass"/><test-case name="nodeexpression25" result="pass"/><test-case name="nodeexpression26" result="pass"/><test-case name="nodeexpression27" result="pass"/><test-case name="nodeexpression28" result="pass"/><test-case name="nodeexpression29" result="pass"/><test-case name="nodeexpression30" result="pass"/><test-case name="nodeexpression31" result="fail"/><test-case name="nodeexpression32" result="pass"/><test-case name="nodeexpressionhc6" result="pass"/><test-case name="nodeexpressionhc7" result="pass"/><test-case name="nodeexpressionhc8" result="pass"/><test-case name="nodeexpressionhc9" result="pass"/><test-case name="nodeexpressionhc10" result="pass"/><test-case name="nodecomparisonerr-2" result="pass"/><test-case name="K-NodeBefore-1" result="pass"/><test-case name="K-NodeBefore-2" result="pass"/><test-case name="K-NodeBefore-3" result="pass"/><test-case name="K-NodeBefore-4" result="pass"/><test-case name="K-NodeBefore-5" result="pass"/><test-case name="K-NodeBefore-6" result="pass"/><test-case name="K-NodeBefore-7" result="pass"/><test-case name="K-NodeBefore-8" result="pass"/><test-case name="K-NodeBefore-9" result="pass"/><test-case name="K-NodeBefore-10" result="pass"/><test-case name="K-NodeBefore-11" result="pass"/><test-case name="nodeexpression33" result="pass"/><test-case name="nodeexpression34" result="pass"/><test-case name="nodeexpression35" result="pass"/><test-case name="nodeexpression36" result="pass"/><test-case name="nodeexpression37" result="pass"/><test-case name="nodeexpression38" result="pass"/><test-case name="nodeexpression39" result="pass"/><test-case name="nodeexpression40" result="pass"/><test-case name="nodeexpression41" result="pass"/><test-case name="nodeexpression42" result="pass"/><test-case name="nodeexpression43" result="pass"/><test-case name="nodeexpression44" result="pass"/><test-case name="nodeexpression45" result="pass"/><test-case name="nodeexpression46" result="pass"/><test-case name="nodeexpression47" result="fail"/><test-case name="nodeexpression48" result="pass"/><test-case name="nodeexpressionhc11" result="pass"/><test-case name="nodeexpressionhc12" result="pass"/><test-case name="nodeexpressionhc13" result="pass"/><test-case name="nodeexpressionhc14" result="pass"/><test-case name="nodeexpressionhc15" result="pass"/><test-case name="nodecomparisonerr-3" result="pass"/><test-case name="K-NodeAfter-1" result="pass"/><test-case name="K-NodeAfter-2" result="pass"/><test-case name="K-NodeAfter-3" result="pass"/><test-case name="K-NodeAfter-4" result="pass"/><test-case name="K-NodeAfter-5" result="pass"/><test-case name="K-NodeAfter-6" result="pass"/><test-case name="K-NodeAfter-7" result="pass"/><test-case name="K-NodeAfter-8" result="pass"/><test-case name="K-NodeAfter-9" result="pass"/><test-case name="K-NodeAfter-10" result="pass"/><test-case name="K-NodeAfter-11" result="pass"/><test-case name="fn-union-node-args-001" result="pass"/><test-case name="fn-union-node-args-002" result="pass"/><test-case name="fn-union-node-args-003" result="pass"/><test-case name="fn-union-node-args-004" result="pass"/><test-case name="fn-union-node-args-005" result="pass"/><test-case name="fn-union-node-args-006" result="pass"/><test-case name="fn-union-node-args-007" result="pass"/><test-case name="fn-union-node-args-008" result="pass"/><test-case name="fn-union-node-args-009" result="pass"/><test-case name="fn-union-node-args-010" result="pass"/><test-case name="fn-union-node-args-011" result="pass"/><test-case name="fn-union-node-args-012" result="pass"/><test-case name="fn-union-node-args-013" result="pass"/><test-case name="fn-union-node-args-014" result="pass"/><test-case name="fn-union-node-args-015" result="pass"/><test-case name="fn-union-node-args-016" result="pass"/><test-case name="fn-union-node-args-017" result="pass"/><test-case name="fn-union-node-args-018" result="pass"/><test-case name="fn-union-node-args-019" result="pass"/><test-case name="fn-union-node-args-020" result="pass"/><test-case name="fn-union-node-args-021" result="pass"/><test-case name="fn-union-node-args-022" result="pass"/><test-case name="fn-union-node-args-023" result="pass"/><test-case name="K2-SeqUnion-1" result="pass"/><test-case name="K2-SeqUnion-2" result="pass"/><test-case name="K2-SeqUnion-3" result="pass"/><test-case name="K2-SeqUnion-4" result="pass"/><test-case name="K2-SeqUnion-5" result="pass"/><test-case name="K2-SeqUnion-6" result="pass"/><test-case name="K2-SeqUnion-7" result="pass"/><test-case name="K2-SeqUnion-8" result="pass"/><test-case name="K2-SeqUnion-9" result="pass"/><test-case name="K2-SeqUnion-10" result="pass"/><test-case name="K2-SeqUnion-11" result="pass"/><test-case name="K2-SeqUnion-12" result="pass"/><test-case name="K2-SeqUnion-13" result="pass"/><test-case name="K2-SeqUnion-14" result="pass"/><test-case name="K2-SeqUnion-15" result="pass"/><test-case name="K2-SeqUnion-16" result="pass"/><test-case name="K2-SeqUnion-17" result="pass"/><test-case name="K2-SeqUnion-18" result="pass"/><test-case name="K2-SeqUnion-19" result="pass"/><test-case name="K2-SeqUnion-20" result="pass"/><test-case name="K2-SeqUnion-21" result="pass"/><test-case name="K2-SeqUnion-22" result="pass"/><test-case name="K2-SeqUnion-23" result="pass"/><test-case name="K2-SeqUnion-24" result="pass"/><test-case name="K2-SeqUnion-25" result="pass"/><test-case name="K2-SeqUnion-26" result="pass"/><test-case name="K2-SeqUnion-27" result="pass"/><test-case name="K2-SeqUnion-28" result="pass"/><test-case name="K2-SeqUnion-29" result="pass"/><test-case name="K2-SeqUnion-30" result="pass"/><test-case name="K2-SeqUnion-31" result="pass"/><test-case name="K2-SeqUnion-32" result="pass"/><test-case name="K2-SeqUnion-33" result="pass"/><test-case name="K2-SeqUnion-34" result="pass"/><test-case name="K2-SeqUnion-35" result="pass"/><test-case name="K2-SeqUnion-36" result="pass"/><test-case name="K2-SeqUnion-37" result="pass"/><test-case name="K2-SeqUnion-38" result="pass"/><test-case name="K2-SeqUnion-39" result="pass"/><test-case name="K2-SeqUnion-40" result="pass"/><test-case name="K2-SeqUnion-41" result="pass"/><test-case name="K2-SeqUnion-42" result="pass"/><test-case name="K2-SeqUnion-43" result="pass"/><test-case name="K2-SeqUnion-44" result="pass"/><test-case name="K2-SeqUnion-45" result="pass"/><test-case name="fn-intersect-node-args-001" result="pass"/><test-case name="fn-intersect-node-args-002" result="pass"/><test-case name="fn-intersect-node-args-003" result="pass"/><test-case name="fn-intersect-node-args-004" result="pass"/><test-case name="fn-intersect-node-args-005" result="pass"/><test-case name="fn-intersect-node-args-006" result="pass"/><test-case name="fn-intersect-node-args-007" result="pass"/><test-case name="fn-intersect-node-args-008" result="pass"/><test-case name="fn-intersect-node-args-009" result="pass"/><test-case name="fn-intersect-node-args-010" result="pass"/><test-case name="fn-intersect-node-args-011" result="pass"/><test-case name="fn-intersect-node-args-012" result="pass"/><test-case name="fn-intersect-node-args-013" result="pass"/><test-case name="fn-intersect-node-args-014" result="pass"/><test-case name="fn-intersect-node-args-015" result="pass"/><test-case name="fn-intersect-node-args-016" result="pass"/><test-case name="fn-intersect-node-args-017" result="pass"/><test-case name="fn-intersect-node-args-018" result="pass"/><test-case name="fn-intersect-node-args-019" result="pass"/><test-case name="fn-intersect-node-args-020" result="pass"/><test-case name="fn-intersect-node-args-021" result="pass"/><test-case name="fn-intersect-node-args-022" result="pass"/><test-case name="fn-intersect-node-args-023" result="pass"/><test-case name="K2-SeqIntersect-1" result="pass"/><test-case name="K2-SeqIntersect-2" result="pass"/><test-case name="K2-SeqIntersect-3" result="pass"/><test-case name="K2-SeqIntersect-4" result="pass"/><test-case name="K2-SeqIntersect-5" result="pass"/><test-case name="K2-SeqIntersect-6" result="pass"/><test-case name="K2-SeqIntersect-7" result="pass"/><test-case name="K2-SeqIntersect-8" result="pass"/><test-case name="K2-SeqIntersect-9" result="pass"/><test-case name="K2-SeqIntersect-10" result="pass"/><test-case name="K2-SeqIntersect-11" result="pass"/><test-case name="K2-SeqIntersect-12" result="pass"/><test-case name="K2-SeqIntersect-13" result="pass"/><test-case name="K2-SeqIntersect-14" result="pass"/><test-case name="K2-SeqIntersect-15" result="pass"/><test-case name="K2-SeqIntersect-16" result="pass"/><test-case name="K2-SeqIntersect-17" result="pass"/><test-case name="K2-SeqIntersect-18" result="pass"/><test-case name="K2-SeqIntersect-19" result="pass"/><test-case name="K2-SeqIntersect-20" result="pass"/><test-case name="K2-SeqIntersect-21" result="pass"/><test-case name="K2-SeqIntersect-22" result="pass"/><test-case name="K2-SeqIntersect-23" result="pass"/><test-case name="K2-SeqIntersect-24" result="pass"/><test-case name="K2-SeqIntersect-25" result="pass"/><test-case name="K2-SeqIntersect-26" result="pass"/><test-case name="K2-SeqIntersect-27" result="pass"/><test-case name="K2-SeqIntersect-28" result="pass"/><test-case name="K2-SeqIntersect-29" result="pass"/><test-case name="K2-SeqIntersect-30" result="pass"/><test-case name="K2-SeqIntersect-31" result="pass"/><test-case name="K2-SeqIntersect-32" result="pass"/><test-case name="K2-SeqIntersect-33" result="pass"/><test-case name="K2-SeqIntersect-34" result="pass"/><test-case name="K2-SeqIntersect-35" result="pass"/><test-case name="K2-SeqIntersect-36" result="pass"/><test-case name="K2-SeqIntersect-37" result="pass"/><test-case name="K2-SeqIntersect-38" result="pass"/><test-case name="K2-SeqIntersect-39" result="pass"/><test-case name="K2-SeqIntersect-40" result="pass"/><test-case name="K2-SeqIntersect-41" result="pass"/><test-case name="K2-SeqIntersect-42" result="pass"/><test-case name="fn-except-node-args-001" result="pass"/><test-case name="fn-except-node-args-002" result="pass"/><test-case name="fn-except-node-args-003" result="pass"/><test-case name="fn-except-node-args-004" result="pass"/><test-case name="fn-except-node-args-005" result="pass"/><test-case name="fn-except-node-args-006" result="pass"/><test-case name="fn-except-node-args-007" result="pass"/><test-case name="fn-except-node-args-008" result="pass"/><test-case name="fn-except-node-args-009" result="pass"/><test-case name="fn-except-node-args-010" result="pass"/><test-case name="fn-except-node-args-011" result="pass"/><test-case name="fn-except-node-args-012" result="pass"/><test-case name="fn-except-node-args-013" result="pass"/><test-case name="fn-except-node-args-014" result="pass"/><test-case name="fn-except-node-args-015" result="pass"/><test-case name="fn-except-node-args-016" result="pass"/><test-case name="fn-except-node-args-017" result="pass"/><test-case name="fn-except-node-args-018" result="pass"/><test-case name="fn-except-node-args-019" result="pass"/><test-case name="fn-except-node-args-020" result="pass"/><test-case name="fn-except-node-args-021" result="pass"/><test-case name="fn-except-node-args-022" result="pass"/><test-case name="fn-except-node-args-023" result="pass"/><test-case name="K2-SeqExcept-1" result="pass"/><test-case name="K2-SeqExcept-2" result="pass"/><test-case name="K2-SeqExcept-3" result="pass"/><test-case name="K2-SeqExcept-4" result="pass"/><test-case name="K2-SeqExcept-5" result="pass"/><test-case name="K2-SeqExcept-6" result="pass"/><test-case name="K2-SeqExcept-7" result="pass"/><test-case name="K2-SeqExcept-8" result="pass"/><test-case name="K2-SeqExcept-9" result="pass"/><test-case name="K2-SeqExcept-10" result="pass"/><test-case name="K2-SeqExcept-11" result="pass"/><test-case name="K2-SeqExcept-12" result="pass"/><test-case name="K2-SeqExcept-13" result="pass"/><test-case name="K2-SeqExcept-14" result="pass"/><test-case name="K2-SeqExcept-15" result="pass"/><test-case name="K2-SeqExcept-16" result="pass"/><test-case name="K2-SeqExcept-17" result="pass"/><test-case name="K2-SeqExcept-18" result="pass"/><test-case name="K2-SeqExcept-19" result="pass"/><test-case name="K2-SeqExcept-20" result="pass"/><test-case name="K2-SeqExcept-21" result="pass"/><test-case name="K2-SeqExcept-22" result="pass"/><test-case name="K2-SeqExcept-23" result="pass"/><test-case name="K2-SeqExcept-24" result="pass"/><test-case name="K2-SeqExcept-25" result="pass"/><test-case name="K2-SeqExcept-26" result="pass"/><test-case name="K2-SeqExcept-27" result="pass"/><test-case name="K2-SeqExcept-28" result="pass"/><test-case name="K2-SeqExcept-29" result="pass"/><test-case name="K2-SeqExcept-30" result="pass"/><test-case name="K2-SeqExcept-31" result="pass"/><test-case name="K2-SeqExcept-32" result="pass"/><test-case name="K2-SeqExcept-33" result="pass"/><test-case name="K2-SeqExcept-34" result="pass"/><test-case name="K2-SeqExcept-35" result="pass"/><test-case name="K2-SeqExcept-36" result="pass"/><test-case name="K2-SeqExcept-37" result="pass"/><test-case name="K2-SeqExcept-38" result="pass"/><test-case name="K2-SeqExcept-39" result="pass"/><test-case name="K2-SeqExcept-40" result="pass"/><test-case name="K2-SeqExcept-41" result="pass"/><test-case name="K2-SeqExcept-42" result="pass"/><test-case name="op-logical-and-001" result="pass"/><test-case name="op-logical-and-002" result="pass"/><test-case name="op-logical-and-003" result="pass"/><test-case name="op-logical-and-004" result="pass"/><test-case name="op-logical-and-005" result="pass"/><test-case name="op-logical-and-006" result="pass"/><test-case name="op-logical-and-007" result="pass"/><test-case name="op-logical-and-008" result="pass"/><test-case name="op-logical-and-009" result="pass"/><test-case name="op-logical-and-010" result="pass"/><test-case name="op-logical-and-011" result="pass"/><test-case name="op-logical-and-012" result="pass"/><test-case name="op-logical-and-013" result="pass"/><test-case name="op-logical-and-014" result="pass"/><test-case name="op-logical-and-015" result="pass"/><test-case name="op-logical-and-016" result="pass"/><test-case name="op-logical-and-017" result="pass"/><test-case name="op-logical-and-018" result="pass"/><test-case name="op-logical-and-019" result="pass"/><test-case name="op-logical-and-020" result="pass"/><test-case name="op-logical-and-021" result="pass"/><test-case name="op-logical-and-022" result="pass"/><test-case name="op-logical-and-023" result="pass"/><test-case name="op-logical-and-024" result="pass"/><test-case name="op-logical-and-025" result="pass"/><test-case name="op-logical-and-026" result="pass"/><test-case name="op-logical-and-027" result="pass"/><test-case name="op-logical-and-028" result="pass"/><test-case name="op-logical-and-029" result="pass"/><test-case name="op-logical-and-030" result="pass"/><test-case name="op-logical-and-031" result="pass"/><test-case name="op-logical-and-032" result="pass"/><test-case name="op-logical-and-033" result="pass"/><test-case name="op-logical-and-034" result="pass"/><test-case name="op-logical-and-035" result="pass"/><test-case name="op-logical-and-036" result="pass"/><test-case name="op-logical-and-037" result="pass"/><test-case name="op-logical-and-038" result="pass"/><test-case name="op-logical-and-039" result="pass"/><test-case name="op-logical-and-040" result="pass"/><test-case name="op-logical-and-041" result="pass"/><test-case name="op-logical-and-042" result="pass"/><test-case name="op-logical-and-043" result="pass"/><test-case name="op-logical-and-044" result="pass"/><test-case name="op-logical-and-045" result="pass"/><test-case name="op-logical-and-046" result="pass"/><test-case name="op-logical-and-047" result="pass"/><test-case name="op-logical-and-048" result="pass"/><test-case name="op-logical-and-049" result="pass"/><test-case name="op-logical-and-050" result="pass"/><test-case name="op-logical-and-051" result="pass"/><test-case name="op-logical-and-052" result="pass"/><test-case name="op-logical-and-053" result="pass"/><test-case name="op-logical-and-054" result="pass"/><test-case name="op-logical-and-055" result="pass"/><test-case name="op-logical-and-056" result="pass"/><test-case name="op-logical-and-057" result="pass"/><test-case name="op-logical-and-058" result="pass"/><test-case name="op-logical-and-059" result="pass"/><test-case name="op-logical-and-060" result="pass"/><test-case name="op-logical-and-061" result="pass"/><test-case name="op-logical-and-062" result="pass"/><test-case name="op-logical-and-063" result="pass"/><test-case name="op-logical-and-064" result="pass"/><test-case name="op-logical-and-065" result="pass"/><test-case name="op-logical-and-066" result="pass"/><test-case name="op-logical-and-067" result="pass"/><test-case name="op-logical-and-068" result="pass"/><test-case name="op-logical-and-069" result="pass"/><test-case name="op-logical-and-070" result="pass"/><test-case name="op-logical-and-071" result="pass"/><test-case name="op-logical-and-072" result="pass"/><test-case name="op-logical-and-073" result="pass"/><test-case name="op-logical-and-074" result="pass"/><test-case name="op-logical-and-075" result="pass"/><test-case name="op-logical-and-076" result="pass"/><test-case name="op-logical-and-077" result="pass"/><test-case name="op-logical-and-078" result="pass"/><test-case name="op-logical-and-079" result="pass"/><test-case name="op-logical-and-080" result="pass"/><test-case name="op-logical-and-081" result="pass"/><test-case name="op-logical-and-082" result="pass"/><test-case name="op-logical-and-083" result="pass"/><test-case name="op-logical-and-084" result="pass"/><test-case name="op-logical-and-085" result="pass"/><test-case name="op-logical-and-086" result="pass"/><test-case name="op-logical-and-087" result="pass"/><test-case name="op-logical-and-088" result="pass"/><test-case name="op-logical-and-089" result="pass"/><test-case name="op-logical-and-090" result="pass"/><test-case name="op-logical-and-091" result="pass"/><test-case name="op-logical-and-092" result="pass"/><test-case name="op-logical-and-093" result="pass"/><test-case name="op-logical-and-094" result="pass"/><test-case name="op-logical-and-095" result="pass"/><test-case name="op-logical-and-096" result="pass"/><test-case name="op-logical-and-097" result="pass"/><test-case name="op-logical-and-098" result="pass"/><test-case name="op-logical-and-099" result="pass"/><test-case name="op-logical-and-100" result="pass"/><test-case name="op-logical-and-101" result="pass"/><test-case name="op-logical-and-102" result="pass"/><test-case name="op-logical-and-103" result="pass"/><test-case name="op-logical-and-104" result="pass"/><test-case name="op-logical-and-105" result="pass"/><test-case name="op-logical-and-106" result="pass"/><test-case name="op-logical-and-107" result="pass"/><test-case name="op-logical-and-108" result="pass"/><test-case name="op-logical-and-109" result="pass"/><test-case name="op-logical-and-110" result="pass"/><test-case name="op-logical-and-111" result="pass"/><test-case name="op-logical-and-112" result="pass"/><test-case name="op-logical-and-113" result="pass"/><test-case name="op-logical-and-114" result="pass"/><test-case name="op-logical-and-115" result="pass"/><test-case name="op-logical-and-116" result="pass"/><test-case name="op-logical-and-117" result="pass"/><test-case name="op-logical-and-118" result="pass"/><test-case name="op-logical-and-119" result="pass"/><test-case name="op-logical-and-120" result="pass"/><test-case name="op-logical-and-121" result="pass"/><test-case name="op-logical-and-122" result="pass"/><test-case name="op-logical-and-123" result="pass"/><test-case name="op-logical-and-124" result="pass"/><test-case name="op-logical-and-125" result="pass"/><test-case name="op-logical-and-126" result="pass"/><test-case name="op-logical-and-127" result="pass"/><test-case name="op-logical-and-128" result="pass"/><test-case name="op-logical-and-129" result="pass"/><test-case name="op-logical-and-130" result="pass"/><test-case name="op-logical-and-131" result="pass"/><test-case name="op-logical-and-132" result="pass"/><test-case name="op-logical-and-133" result="pass"/><test-case name="op-logical-and-134" result="pass"/><test-case name="op-logical-and-135" result="pass"/><test-case name="op-logical-and-136" result="pass"/><test-case name="op-logical-and-137" result="pass"/><test-case name="op-logical-and-138" result="pass"/><test-case name="op-logical-and-139" result="pass"/><test-case name="op-logical-and-140" result="pass"/><test-case name="op-logical-and-141" result="pass"/><test-case name="op-logical-and-142" result="pass"/><test-case name="op-logical-and-143" result="pass"/><test-case name="op-logical-and-144" result="pass"/><test-case name="op-logical-and-145" result="pass"/><test-case name="op-logical-and-146" result="pass"/><test-case name="op-logical-and-147" result="pass"/><test-case name="op-logical-and-148" result="pass"/><test-case name="op-logical-and-149" result="pass"/><test-case name="op-logical-and-150" result="pass"/><test-case name="op-logical-and-151" result="pass"/><test-case name="op-logical-and-152" result="pass"/><test-case name="op-logical-and-153" result="pass"/><test-case name="op-logical-and-154" result="pass"/><test-case name="op-logical-and-155" result="pass"/><test-case name="op-logical-and-156" result="pass"/><test-case name="op-logical-and-157" result="pass"/><test-case name="op-logical-and-158" result="pass"/><test-case name="op-logical-and-159" result="pass"/><test-case name="op-logical-or-001" result="pass"/><test-case name="op-logical-or-002" result="pass"/><test-case name="op-logical-or-003" result="pass"/><test-case name="op-logical-or-004" result="pass"/><test-case name="op-logical-or-005" result="pass"/><test-case name="op-logical-or-006" result="pass"/><test-case name="op-logical-or-007" result="pass"/><test-case name="op-logical-or-008" result="pass"/><test-case name="op-logical-or-009" result="pass"/><test-case name="op-logical-or-010" result="pass"/><test-case name="op-logical-or-011" result="pass"/><test-case name="op-logical-or-012" result="pass"/><test-case name="op-logical-or-013" result="pass"/><test-case name="op-logical-or-014" result="pass"/><test-case name="op-logical-or-015" result="pass"/><test-case name="op-logical-or-016" result="pass"/><test-case name="op-logical-or-017" result="pass"/><test-case name="op-logical-or-018" result="pass"/><test-case name="op-logical-or-019" result="pass"/><test-case name="op-logical-or-020" result="pass"/><test-case name="op-logical-or-021" result="pass"/><test-case name="op-logical-or-022" result="pass"/><test-case name="op-logical-or-023" result="pass"/><test-case name="op-logical-or-024" result="pass"/><test-case name="op-logical-or-025" result="pass"/><test-case name="op-logical-or-026" result="pass"/><test-case name="op-logical-or-027" result="pass"/><test-case name="op-logical-or-028" result="pass"/><test-case name="op-logical-or-029" result="pass"/><test-case name="op-logical-or-030" result="pass"/><test-case name="op-logical-or-031" result="pass"/><test-case name="op-logical-or-032" result="pass"/><test-case name="op-logical-or-033" result="pass"/><test-case name="op-logical-or-034" result="pass"/><test-case name="op-logical-or-035" result="pass"/><test-case name="op-logical-or-036" result="pass"/><test-case name="op-logical-or-037" result="pass"/><test-case name="op-logical-or-038" result="pass"/><test-case name="op-logical-or-039" result="pass"/><test-case name="op-logical-or-040" result="pass"/><test-case name="op-logical-or-041" result="pass"/><test-case name="op-logical-or-042" result="pass"/><test-case name="op-logical-or-043" result="pass"/><test-case name="op-logical-or-044" result="pass"/><test-case name="op-logical-or-045" result="pass"/><test-case name="op-logical-or-046" result="pass"/><test-case name="op-logical-or-047" result="pass"/><test-case name="op-logical-or-048" result="pass"/><test-case name="op-logical-or-049" result="pass"/><test-case name="op-logical-or-050" result="pass"/><test-case name="op-logical-or-051" result="pass"/><test-case name="op-logical-or-052" result="pass"/><test-case name="op-logical-or-053" result="pass"/><test-case name="op-logical-or-054" result="pass"/><test-case name="op-logical-or-055" result="pass"/><test-case name="op-logical-or-056" result="pass"/><test-case name="op-logical-or-057" result="pass"/><test-case name="op-logical-or-058" result="pass"/><test-case name="op-logical-or-059" result="pass"/><test-case name="op-logical-or-060" result="pass"/><test-case name="op-logical-or-061" result="pass"/><test-case name="op-logical-or-062" result="pass"/><test-case name="op-logical-or-063" result="pass"/><test-case name="op-logical-or-064" result="pass"/><test-case name="op-logical-or-065" result="pass"/><test-case name="op-logical-or-066" result="pass"/><test-case name="op-logical-or-067" result="pass"/><test-case name="op-logical-or-068" result="pass"/><test-case name="op-logical-or-069" result="pass"/><test-case name="op-logical-or-070" result="pass"/><test-case name="op-logical-or-071" result="pass"/><test-case name="op-logical-or-072" result="pass"/><test-case name="op-logical-or-073" result="pass"/><test-case name="op-logical-or-074" result="pass"/><test-case name="op-logical-or-075" result="pass"/><test-case name="op-logical-or-076" result="pass"/><test-case name="op-logical-or-077" result="pass"/><test-case name="op-logical-or-078" result="pass"/><test-case name="op-logical-or-079" result="pass"/><test-case name="op-logical-or-080" result="pass"/><test-case name="op-logical-or-081" result="pass"/><test-case name="op-logical-or-082" result="pass"/><test-case name="op-logical-or-083" result="pass"/><test-case name="op-logical-or-084" result="pass"/><test-case name="op-logical-or-085" result="pass"/><test-case name="op-logical-or-086" result="pass"/><test-case name="op-logical-or-087" result="pass"/><test-case name="op-logical-or-088" result="pass"/><test-case name="op-logical-or-089" result="pass"/><test-case name="op-logical-or-090" result="pass"/><test-case name="op-logical-or-091" result="pass"/><test-case name="op-logical-or-092" result="pass"/><test-case name="op-logical-or-093" result="pass"/><test-case name="op-logical-or-094" result="pass"/><test-case name="op-logical-or-095" result="pass"/><test-case name="op-logical-or-096" result="pass"/><test-case name="op-logical-or-097" result="pass"/><test-case name="op-logical-or-098" result="pass"/><test-case name="op-logical-or-099" result="pass"/><test-case name="op-logical-or-100" result="pass"/><test-case name="op-logical-or-101" result="pass"/><test-case name="op-logical-or-102" result="pass"/><test-case name="op-logical-or-103" result="pass"/><test-case name="op-logical-or-104" result="pass"/><test-case name="op-logical-or-105" result="pass"/><test-case name="op-logical-or-106" result="pass"/><test-case name="op-logical-or-107" result="pass"/><test-case name="op-logical-or-108" result="pass"/><test-case name="op-logical-or-109" result="pass"/><test-case name="op-logical-or-110" result="pass"/><test-case name="op-logical-or-111" result="pass"/><test-case name="op-logical-or-112" result="pass"/><test-case name="op-logical-or-113" result="pass"/><test-case name="op-logical-or-114" result="pass"/><test-case name="op-logical-or-115" result="pass"/><test-case name="op-logical-or-116" result="pass"/><test-case name="op-logical-or-117" result="pass"/><test-case name="op-logical-or-118" result="pass"/><test-case name="op-logical-or-119" result="pass"/><test-case name="op-logical-or-120" result="pass"/><test-case name="op-logical-or-121" result="pass"/><test-case name="op-logical-or-122" result="pass"/><test-case name="op-logical-or-123" result="pass"/><test-case name="op-logical-or-124" result="pass"/><test-case name="op-logical-or-125" result="pass"/><test-case name="op-logical-or-126" result="pass"/><test-case name="op-logical-or-127" result="pass"/><test-case name="op-logical-or-128" result="pass"/><test-case name="op-logical-or-129" result="pass"/><test-case name="op-logical-or-130" result="pass"/><test-case name="op-logical-or-131" result="pass"/><test-case name="op-logical-or-132" result="pass"/><test-case name="op-logical-or-133" result="pass"/><test-case name="op-logical-or-134" result="pass"/><test-case name="op-logical-or-135" result="pass"/><test-case name="op-logical-or-136" result="pass"/><test-case name="op-logical-or-137" result="pass"/><test-case name="op-logical-or-138" result="pass"/><test-case name="op-logical-or-139" result="pass"/><test-case name="op-logical-or-140" result="pass"/><test-case name="op-logical-or-141" result="pass"/><test-case name="op-logical-or-142" result="pass"/><test-case name="op-logical-or-143" result="pass"/><test-case name="op-logical-or-144" result="pass"/><test-case name="op-logical-or-145" result="pass"/><test-case name="op-logical-or-146" result="pass"/><test-case name="op-logical-or-147" result="pass"/><test-case name="op-logical-or-148" result="pass"/><test-case name="op-logical-or-149" result="pass"/><test-case name="op-logical-or-150" result="pass"/><test-case name="op-logical-or-151" result="pass"/><test-case name="op-logical-or-152" result="pass"/><test-case name="op-logical-or-153" result="pass"/><test-case name="op-logical-or-154" result="pass"/><test-case name="op-logical-or-155" result="pass"/><test-case name="op-logical-or-156" result="pass"/><test-case name="op-logical-or-157" result="pass"/><test-case name="op-logical-or-158" result="pass"/><test-case name="op-logical-or-159" result="pass"/><test-case name="K-LogicExpr-1" result="pass"/><test-case name="K-LogicExpr-2" result="pass"/><test-case name="K-LogicExpr-3" result="pass"/><test-case name="K-LogicExpr-4" result="pass"/><test-case name="K-LogicExpr-5" result="pass"/><test-case name="K-LogicExpr-6" result="pass"/><test-case name="K-LogicExpr-7" result="pass"/><test-case name="K-LogicExpr-8" result="pass"/><test-case name="K-LogicExpr-9" result="pass"/><test-case name="K-LogicExpr-10" result="pass"/><test-case name="K-LogicExpr-11" result="pass"/><test-case name="K-LogicExpr-12" result="pass"/><test-case name="K-LogicExpr-13" result="pass"/><test-case name="K-LogicExpr-14" result="pass"/><test-case name="K-LogicExpr-15" result="pass"/><test-case name="K-LogicExpr-16" result="pass"/><test-case name="K-LogicExpr-17" result="pass"/><test-case name="K-LogicExpr-18" result="pass"/><test-case name="K-LogicExpr-19" result="pass"/><test-case name="K-LogicExpr-20" result="pass"/><test-case name="K-LogicExpr-21" result="pass"/><test-case name="K-LogicExpr-22" result="pass"/><test-case name="K-LogicExpr-23" result="pass"/><test-case name="K-LogicExpr-24" result="pass"/><test-case name="K-LogicExpr-25" result="pass"/><test-case name="K-LogicExpr-26" result="pass"/><test-case name="K-LogicExpr-27" result="pass"/><test-case name="K-LogicExpr-28" result="pass"/><test-case name="K-LogicExpr-29" result="pass"/><test-case name="K-LogicExpr-30" result="pass"/><test-case name="K-LogicExpr-31" result="pass"/><test-case name="K-LogicExpr-32" result="pass"/><test-case name="K-LogicExpr-33" result="pass"/><test-case name="K-LogicExpr-34" result="pass"/><test-case name="K-LogicExpr-35" result="pass"/><test-case name="K-LogicExpr-36" result="pass"/><test-case name="K-LogicExpr-37" result="pass"/><test-case name="K-LogicExpr-38" result="pass"/><test-case name="K-LogicExpr-39" result="pass"/><test-case name="K-LogicExpr-40" result="pass"/><test-case name="K-LogicExpr-41" result="pass"/><test-case name="K-LogicExpr-42" result="pass"/><test-case name="K-LogicExpr-43" result="pass"/><test-case name="K-LogicExpr-44" result="pass"/><test-case name="K-LogicExpr-45" result="pass"/><test-case name="K-LogicExpr-46" result="pass"/><test-case name="K2-LogicExpr-1" result="pass"/><test-case name="K2-LogicExpr-2" result="pass"/><test-case name="Constr-elem-empty-1" result="pass"/><test-case name="Constr-elem-empty-2" result="pass"/><test-case name="Constr-elem-empty-3" result="pass"/><test-case name="Constr-elem-empty-4" result="pass"/><test-case name="Constr-elem-empty-5" result="pass"/><test-case name="Constr-elem-matchtag-1" result="pass"/><test-case name="Constr-elem-matchtag-2" result="pass"/><test-case name="Constr-elem-curlybr-1" result="pass"/><test-case name="Constr-elem-curlybr-2" result="pass"/><test-case name="Constr-elem-curlybr-3" result="pass"/><test-case name="Constr-elem-curlybr-4" result="pass"/><test-case name="Constr-elem-curlybr-5" result="pass"/><test-case name="Constr-elem-curlybr-6" result="pass"/><test-case name="K2-DirectConElem-1" result="pass"/><test-case name="K2-DirectConElem-2" result="pass"/><test-case name="K2-DirectConElem-3" result="pass"/><test-case name="K2-DirectConElem-4" result="pass"/><test-case name="K2-DirectConElem-5" result="pass"/><test-case name="K2-DirectConElem-6" result="pass"/><test-case name="K2-DirectConElem-7" result="pass"/><test-case name="K2-DirectConElem-8" result="pass"/><test-case name="K2-DirectConElem-9" result="pass"/><test-case name="K2-DirectConElem-10" result="pass"/><test-case name="K2-DirectConElem-11" result="pass"/><test-case name="K2-DirectConElem-12" result="pass"/><test-case name="K2-DirectConElem-13" result="pass"/><test-case name="K2-DirectConElem-14" result="pass"/><test-case name="K2-DirectConElem-15" result="pass"/><test-case name="K2-DirectConElem-16" result="pass"/><test-case name="K2-DirectConElem-17" result="pass"/><test-case name="K2-DirectConElem-18" result="pass"/><test-case name="K2-DirectConElem-19" result="pass"/><test-case name="K2-DirectConElem-20" result="pass"/><test-case name="K2-DirectConElem-21" result="pass"/><test-case name="K2-DirectConElem-22" result="pass"/><test-case name="K2-DirectConElem-23" result="pass"/><test-case name="K2-DirectConElem-24" result="pass"/><test-case name="K2-DirectConElem-25" result="pass"/><test-case name="K2-DirectConElem-26" result="pass"/><test-case name="K2-DirectConElem-27" result="pass"/><test-case name="K2-DirectConElem-28" result="pass"/><test-case name="K2-DirectConElem-29" result="pass"/><test-case name="K2-DirectConElem-30" result="pass"/><test-case name="K2-DirectConElem-31" result="pass"/><test-case name="K2-DirectConElem-32" result="pass"/><test-case name="K2-DirectConElem-33" result="pass"/><test-case name="K2-DirectConElem-34" result="pass"/><test-case name="K2-DirectConElem-35" result="pass"/><test-case name="K2-DirectConElem-36" result="pass"/><test-case name="K2-DirectConElem-37" result="pass"/><test-case name="K2-DirectConElem-38" result="pass"/><test-case name="K2-DirectConElem-39" result="pass"/><test-case name="K2-DirectConElem-40" result="pass"/><test-case name="K2-DirectConElem-41" result="pass"/><test-case name="K2-DirectConElem-42" result="pass"/><test-case name="K2-DirectConElem-43" result="pass"/><test-case name="K2-DirectConElem-44" result="pass"/><test-case name="K2-DirectConElem-45" result="pass"/><test-case name="K2-DirectConElem-46" result="pass"/><test-case name="K2-DirectConElem-47" result="pass"/><test-case name="K2-DirectConElem-48" result="pass"/><test-case name="K2-DirectConElem-49" result="pass"/><test-case name="K2-DirectConElem-50" result="pass"/><test-case name="K2-DirectConElem-51" result="pass"/><test-case name="K2-DirectConElem-52" result="pass"/><test-case name="K2-DirectConElem-53" result="pass"/><test-case name="K2-DirectConElem-54" result="pass"/><test-case name="Constr-attr-syntax-1" result="pass"/><test-case name="Constr-attr-syntax-2" result="pass"/><test-case name="Constr-attr-syntax-3" result="pass"/><test-case name="Constr-attr-syntax-4" result="pass"/><test-case name="Constr-attr-syntax-5" result="pass"/><test-case name="Constr-attr-syntax-6" result="pass"/><test-case name="Constr-attr-syntax-7" result="pass"/><test-case name="Constr-attr-syntax-8" result="pass"/><test-case name="Constr-attr-syntax-9" result="pass"/><test-case name="Constr-attr-syntax-10" result="pass"/><test-case name="Constr-attr-parent-1" result="pass"/><test-case name="Constr-attr-nsdecl-1" result="pass"/><test-case name="Constr-attr-nsdecl-2" result="pass"/><test-case name="Constr-attr-nspre-1" result="pass"/><test-case name="Constr-attr-nspre-2" result="pass"/><test-case name="Constr-attr-nsprein-1" result="pass"/><test-case name="Constr-attr-nsprein-2" result="pass"/><test-case name="Constr-attr-distnames-1" result="pass"/><test-case name="Constr-attr-distnames-2" result="pass"/><test-case name="Constr-attr-distnames-3" result="pass"/><test-case name="Constr-attr-distnames-4" result="pass"/><test-case name="Constr-attr-content-1" result="pass"/><test-case name="Constr-attr-content-2" result="pass"/><test-case name="Constr-attr-content-3" result="pass"/><test-case name="Constr-attr-content-4" result="pass"/><test-case name="Constr-attr-content-5" result="pass"/><test-case name="Constr-attr-ws-1" result="pass"/><test-case name="Constr-attr-ws-2" result="pass"/><test-case name="Constr-attr-ws-3" result="pass"/><test-case name="Constr-attr-ws-4" result="pass"/><test-case name="Constr-attr-ws-5" result="pass"/><test-case name="Constr-attr-entref-1" result="pass"/><test-case name="Constr-attr-entref-2" result="pass"/><test-case name="Constr-attr-charref-1" result="pass"/><test-case name="Constr-attr-enclexpr-1" result="pass"/><test-case name="Constr-attr-enclexpr-2" result="pass"/><test-case name="Constr-attr-enclexpr-3" result="pass"/><test-case name="Constr-attr-enclexpr-4" result="pass"/><test-case name="Constr-attr-enclexpr-5" result="pass"/><test-case name="Constr-attr-enclexpr-6" result="pass"/><test-case name="Constr-attr-enclexpr-7" result="pass"/><test-case name="Constr-attr-id-1" result="pass"/><test-case name="Constr-attr-id-2" result="pass"/><test-case name="K2-DirectConElemAttr-1" result="pass"/><test-case name="K2-DirectConElemAttr-2" result="pass"/><test-case name="K2-DirectConElemAttr-3" result="pass"/><test-case name="K2-DirectConElemAttr-4" result="pass"/><test-case name="K2-DirectConElemAttr-5" result="pass"/><test-case name="K2-DirectConElemAttr-6" result="pass"/><test-case name="K2-DirectConElemAttr-7" result="pass"/><test-case name="K2-DirectConElemAttr-8" result="pass"/><test-case name="K2-DirectConElemAttr-9" result="pass"/><test-case name="K2-DirectConElemAttr-10" result="pass"/><test-case name="K2-DirectConElemAttr-11" result="pass"/><test-case name="K2-DirectConElemAttr-12" result="pass"/><test-case name="K2-DirectConElemAttr-13" result="pass"/><test-case name="K2-DirectConElemAttr-14" result="pass"/><test-case name="K2-DirectConElemAttr-15" result="pass"/><test-case name="K2-DirectConElemAttr-16" result="pass"/><test-case name="K2-DirectConElemAttr-17" result="pass"/><test-case name="K2-DirectConElemAttr-18" result="pass"/><test-case name="K2-DirectConElemAttr-19" result="pass"/><test-case name="K2-DirectConElemAttr-20" result="pass"/><test-case name="K2-DirectConElemAttr-21" result="pass"/><test-case name="K2-DirectConElemAttr-22" result="pass"/><test-case name="K2-DirectConElemAttr-23" result="pass"/><test-case name="K2-DirectConElemAttr-24" result="pass"/><test-case name="K2-DirectConElemAttr-25" result="pass"/><test-case name="K2-DirectConElemAttr-26" result="pass"/><test-case name="K2-DirectConElemAttr-27" result="pass"/><test-case name="K2-DirectConElemAttr-28" result="pass"/><test-case name="K2-DirectConElemAttr-29" result="pass"/><test-case name="K2-DirectConElemAttr-30" result="pass"/><test-case name="K2-DirectConElemAttr-31" result="pass"/><test-case name="K2-DirectConElemAttr-32" result="pass"/><test-case name="K2-DirectConElemAttr-33" result="pass"/><test-case name="K2-DirectConElemAttr-34" result="pass"/><test-case name="K2-DirectConElemAttr-35" result="pass"/><test-case name="K2-DirectConElemAttr-36" result="pass"/><test-case name="K2-DirectConElemAttr-37" result="pass"/><test-case name="K2-DirectConElemAttr-38" result="pass"/><test-case name="K2-DirectConElemAttr-39" result="pass"/><test-case name="K2-DirectConElemAttr-40" result="pass"/><test-case name="K2-DirectConElemAttr-41" result="pass"/><test-case name="K2-DirectConElemAttr-42" result="pass"/><test-case name="K2-DirectConElemAttr-43" result="pass"/><test-case name="K2-DirectConElemAttr-44" result="pass"/><test-case name="K2-DirectConElemAttr-45" result="pass"/><test-case name="K2-DirectConElemAttr-46" result="pass"/><test-case name="K2-DirectConElemAttr-47" result="pass"/><test-case name="K2-DirectConElemAttr-48" result="pass"/><test-case name="K2-DirectConElemAttr-49" result="pass"/><test-case name="K2-DirectConElemAttr-50" result="pass"/><test-case name="K2-DirectConElemAttr-51" result="pass"/><test-case name="K2-DirectConElemAttr-52" result="pass"/><test-case name="K2-DirectConElemAttr-53" result="pass"/><test-case name="K2-DirectConElemAttr-54" result="pass"/><test-case name="K2-DirectConElemAttr-55" result="pass"/><test-case name="K2-DirectConElemAttr-56" result="pass"/><test-case name="K2-DirectConElemAttr-57" result="pass"/><test-case name="K2-DirectConElemAttr-58" result="pass"/><test-case name="K2-DirectConElemAttr-59" result="pass"/><test-case name="K2-DirectConElemAttr-60" result="pass"/><test-case name="K2-DirectConElemAttr-61" result="pass"/><test-case name="K2-DirectConElemAttr-62" result="pass"/><test-case name="K2-DirectConElemAttr-63" result="pass"/><test-case name="K2-DirectConElemAttr-64" result="pass"/><test-case name="K2-DirectConElemAttr-65" result="pass"/><test-case name="K2-DirectConElemAttr-66" result="pass"/><test-case name="K2-DirectConElemAttr-67" result="pass"/><test-case name="K2-DirectConElemAttr-68" result="pass"/><test-case name="K2-DirectConElemAttr-69" result="pass"/><test-case name="K2-DirectConElemAttr-70" result="pass"/><test-case name="K2-DirectConElemAttr-71" result="pass"/><test-case name="K2-DirectConElemAttr-72" result="pass"/><test-case name="K2-DirectConElemAttr-73" result="pass"/><test-case name="K2-DirectConElemAttr-74" result="pass"/><test-case name="K2-DirectConElemAttr-75" result="pass"/><test-case name="Constr-namespace-1" result="pass"/><test-case name="Constr-namespace-2" result="pass"/><test-case name="Constr-namespace-3" result="pass"/><test-case name="Constr-namespace-4" result="pass"/><test-case name="Constr-namespace-5" result="pass"/><test-case name="Constr-namespace-6" result="pass"/><test-case name="Constr-namespace-7" result="pass"/><test-case name="Constr-namespace-8" result="pass"/><test-case name="Constr-namespace-9" result="pass"/><test-case name="Constr-namespace-10" result="pass"/><test-case name="Constr-namespace-11" result="pass"/><test-case name="Constr-namespace-12" result="pass"/><test-case name="Constr-namespace-13" result="pass"/><test-case name="Constr-namespace-14" result="pass"/><test-case name="Constr-namespace-15" result="pass"/><test-case name="Constr-namespace-16" result="pass"/><test-case name="Constr-namespace-17" result="pass"/><test-case name="Constr-namespace-18" result="pass"/><test-case name="Constr-namespace-19" result="pass"/><test-case name="Constr-namespace-20" result="pass"/><test-case name="Constr-namespace-21" result="pass"/><test-case name="Constr-namespace-22" result="pass"/><test-case name="Constr-namespace-23" result="pass"/><test-case name="Constr-namespace-24" result="pass"/><test-case name="Constr-namespace-25" result="pass"/><test-case name="Constr-namespace-26" result="pass"/><test-case name="Constr-namespace-27" result="pass"/><test-case name="Constr-namespace-29" result="pass"/><test-case name="K2-DirectConElemNamespace-1" result="pass"/><test-case name="K2-DirectConElemNamespace-2" result="pass"/><test-case name="K2-DirectConElemNamespace-3" result="pass"/><test-case name="K2-DirectConElemNamespace-4" result="pass"/><test-case name="K2-DirectConElemNamespace-5" result="pass"/><test-case name="K2-DirectConElemNamespace-6" result="pass"/><test-case name="K2-DirectConElemNamespace-7" result="pass"/><test-case name="K2-DirectConElemNamespace-8" result="pass"/><test-case name="K2-DirectConElemNamespace-9" result="pass"/><test-case name="K2-DirectConElemNamespace-10" result="pass"/><test-case name="K2-DirectConElemNamespace-11" result="pass"/><test-case name="K2-DirectConElemNamespace-12" result="pass"/><test-case name="K2-DirectConElemNamespace-13" result="pass"/><test-case name="K2-DirectConElemNamespace-14" result="pass"/><test-case name="K2-DirectConElemNamespace-15" result="pass"/><test-case name="K2-DirectConElemNamespace-16" result="pass"/><test-case name="K2-DirectConElemNamespace-17" result="pass"/><test-case name="K2-DirectConElemNamespace-18" result="pass"/><test-case name="K2-DirectConElemNamespace-19" result="pass"/><test-case name="K2-DirectConElemNamespace-20" result="pass"/><test-case name="K2-DirectConElemNamespace-21" result="pass"/><test-case name="K2-DirectConElemNamespace-22" result="pass"/><test-case name="K2-DirectConElemNamespace-23" result="pass"/><test-case name="K2-DirectConElemNamespace-24" result="pass"/><test-case name="K2-DirectConElemNamespace-25" result="pass"/><test-case name="K2-DirectConElemNamespace-26" result="pass"/><test-case name="K2-DirectConElemNamespace-27" result="pass"/><test-case name="K2-DirectConElemNamespace-28" result="pass"/><test-case name="K2-DirectConElemNamespace-29" result="pass"/><test-case name="K2-DirectConElemNamespace-30" result="pass"/><test-case name="K2-DirectConElemNamespace-31" result="pass"/><test-case name="K2-DirectConElemNamespace-32" result="pass"/><test-case name="K2-DirectConElemNamespace-33" result="pass"/><test-case name="K2-DirectConElemNamespace-34" result="pass"/><test-case name="K2-DirectConElemNamespace-35" result="pass"/><test-case name="K2-DirectConElemNamespace-36" result="pass"/><test-case name="K2-DirectConElemNamespace-37" result="pass"/><test-case name="K2-DirectConElemNamespace-38" result="pass"/><test-case name="K2-DirectConElemNamespace-39" result="pass"/><test-case name="K2-DirectConElemNamespace-40" result="pass"/><test-case name="K2-DirectConElemNamespace-41" result="pass"/><test-case name="K2-DirectConElemNamespace-42" result="pass"/><test-case name="K2-DirectConElemNamespace-43" result="pass"/><test-case name="K2-DirectConElemNamespace-44" result="pass"/><test-case name="K2-DirectConElemNamespace-45" result="pass"/><test-case name="K2-DirectConElemNamespace-46" result="pass"/><test-case name="K2-DirectConElemNamespace-47" result="pass"/><test-case name="K2-DirectConElemNamespace-48" result="pass"/><test-case name="K2-DirectConElemNamespace-49" result="pass"/><test-case name="K2-DirectConElemNamespace-50" result="pass"/><test-case name="K2-DirectConElemNamespace-51" result="pass"/><test-case name="K2-DirectConElemNamespace-52" result="pass"/><test-case name="K2-DirectConElemNamespace-53" result="pass"/><test-case name="K2-DirectConElemNamespace-54" result="pass"/><test-case name="K2-DirectConElemNamespace-55" result="pass"/><test-case name="K2-DirectConElemNamespace-56" result="pass"/><test-case name="K2-DirectConElemNamespace-57" result="pass"/><test-case name="K2-DirectConElemNamespace-58" result="pass"/><test-case name="K2-DirectConElemNamespace-59" result="pass"/><test-case name="K2-DirectConElemNamespace-60" result="pass"/><test-case name="K2-DirectConElemNamespace-61" result="pass"/><test-case name="K2-DirectConElemNamespace-62" result="pass"/><test-case name="K2-DirectConElemNamespace-63" result="pass"/><test-case name="K2-DirectConElemNamespace-64" result="pass"/><test-case name="K2-DirectConElemNamespace-65" result="pass"/><test-case name="K2-DirectConElemNamespace-66" result="pass"/><test-case name="K2-DirectConElemNamespace-67" result="pass"/><test-case name="K2-DirectConElemNamespace-68" result="pass"/><test-case name="K2-DirectConElemNamespace-69" result="pass"/><test-case name="K2-DirectConElemNamespace-70" result="pass"/><test-case name="K2-DirectConElemNamespace-71" result="pass"/><test-case name="K2-DirectConElemNamespace-72" result="pass"/><test-case name="K2-DirectConElemNamespace-73" result="pass"/><test-case name="K2-DirectConElemNamespace-74" result="pass"/><test-case name="K2-DirectConElemNamespace-75" result="pass"/><test-case name="K2-DirectConElemNamespace-76" result="pass"/><test-case name="K2-DirectConElemNamespace-77" result="pass"/><test-case name="Constr-cont-invalid-1" result="pass"/><test-case name="Constr-cont-invalid-2" result="pass"/><test-case name="Constr-cont-invalid-3" result="pass"/><test-case name="Constr-cont-invalid-4" result="pass"/><test-case name="Constr-cont-eol-1" result="pass"/><test-case name="Constr-cont-eol-2" result="pass"/><test-case name="Constr-cont-eol-3" result="pass"/><test-case name="Constr-cont-eol-4" result="pass"/><test-case name="Constr-cont-entref-1" result="pass"/><test-case name="Constr-cont-entref-2" result="pass"/><test-case name="Constr-cont-entref-3" result="pass"/><test-case name="Constr-cont-entref-4" result="pass"/><test-case name="Constr-cont-entref-5" result="pass"/><test-case name="Constr-cont-charref-1" result="pass"/><test-case name="Constr-cont-charref-2" result="fail"/><test-case name="Constr-cont-cdata-1" result="pass"/><test-case name="Constr-cont-text-1" result="pass"/><test-case name="Constr-cont-text-2" result="pass"/><test-case name="Constr-cont-nested-1" result="pass"/><test-case name="Constr-cont-nested-2" result="pass"/><test-case name="Constr-cont-nested-3" result="pass"/><test-case name="Constr-cont-nested-4" result="pass"/><test-case name="Constr-cont-enclexpr-1" result="pass"/><test-case name="Constr-cont-enclexpr-2" result="pass"/><test-case name="Constr-cont-enclexpr-3" result="pass"/><test-case name="Constr-cont-enclexpr-4" result="pass"/><test-case name="Constr-cont-enclexpr-5" result="pass"/><test-case name="Constr-cont-nested-5" result="pass"/><test-case name="Constr-cont-nodeid-1" result="pass"/><test-case name="Constr-cont-nodeid-2" result="pass"/><test-case name="Constr-cont-nodeid-3" result="pass"/><test-case name="Constr-cont-nodeid-4" result="pass"/><test-case name="Constr-cont-nodeid-5" result="pass"/><test-case name="Constr-cont-constrmod-1" result="pass"/><test-case name="Constr-cont-constrmod-2" result="pass"/><test-case name="Constr-cont-constrmod-3" result="pass"/><test-case name="Constr-cont-constrmod-4" result="pass"/><test-case name="Constr-cont-constrmod-5" result="pass"/><test-case name="Constr-cont-constrmod-6" result="pass"/><test-case name="Constr-cont-constrmod-7" result="pass"/><test-case name="Constr-cont-constrmod-8" result="pass"/><test-case name="Constr-cont-nsmode-1" result="pass"/><test-case name="Constr-cont-nsmode-2" result="pass"/><test-case name="Constr-cont-nsmode-3" result="pass"/><test-case name="Constr-cont-nsmode-4" result="pass"/><test-case name="Constr-cont-nsmode-5" result="pass"/><test-case name="Constr-cont-nsmode-6" result="pass"/><test-case name="Constr-cont-uripres-1" result="pass"/><test-case name="Constr-cont-adjtext-1" result="pass"/><test-case name="Constr-cont-adjtext-2" result="pass"/><test-case name="Constr-cont-adjtext-3" result="pass"/><test-case name="Constr-cont-adjtext-4" result="pass"/><test-case name="Constr-cont-doc-1" result="pass"/><test-case name="Constr-cont-attr-1" result="pass"/><test-case name="Constr-cont-attr-2" result="pass"/><test-case name="Constr-cont-attr-3" result="pass"/><test-case name="Constr-cont-attr-4" result="pass"/><test-case name="Constr-cont-baseuri-1" result="pass"/><test-case name="Constr-cont-baseuri-2" result="pass"/><test-case name="Constr-cont-baseuri-3" result="pass"/><test-case name="Constr-cont-parent-1" result="pass"/><test-case name="Constr-cont-attr-5" result="pass"/><test-case name="Constr-cont-attr-6" result="pass"/><test-case name="Constr-cont-attr-7" result="pass"/><test-case name="Constr-cont-attr-8" result="pass"/><test-case name="Constr-cont-string-1" result="pass"/><test-case name="Constr-cont-data-1" result="pass"/><test-case name="Constr-cont-document-1" result="pass"/><test-case name="Constr-cont-document-2" result="pass"/><test-case name="Constr-cont-document-3" result="fail" comment="Skipped this test, because we loop infinitely on it."/><test-case name="K2-DirectConElemContent-1" result="pass"/><test-case name="K2-DirectConElemContent-2" result="pass"/><test-case name="K2-DirectConElemContent-3" result="pass"/><test-case name="K2-DirectConElemContent-4" result="pass"/><test-case name="K2-DirectConElemContent-5" result="pass"/><test-case name="K2-DirectConElemContent-6" result="pass"/><test-case name="K2-DirectConElemContent-7" result="pass"/><test-case name="K2-DirectConElemContent-8" result="pass"/><test-case name="K2-DirectConElemContent-9" result="pass"/><test-case name="K2-DirectConElemContent-10" result="pass"/><test-case name="K2-DirectConElemContent-11" result="pass"/><test-case name="K2-DirectConElemContent-12" result="pass"/><test-case name="K2-DirectConElemContent-13" result="pass"/><test-case name="K2-DirectConElemContent-14" result="pass"/><test-case name="K2-DirectConElemContent-15" result="pass"/><test-case name="K2-DirectConElemContent-16" result="pass"/><test-case name="K2-DirectConElemContent-17" result="pass"/><test-case name="K2-DirectConElemContent-18" result="pass"/><test-case name="K2-DirectConElemContent-19" result="pass"/><test-case name="K2-DirectConElemContent-20" result="pass"/><test-case name="K2-DirectConElemContent-21" result="pass"/><test-case name="K2-DirectConElemContent-22" result="pass"/><test-case name="K2-DirectConElemContent-23" result="pass"/><test-case name="K2-DirectConElemContent-24" result="pass"/><test-case name="K2-DirectConElemContent-25" result="pass"/><test-case name="K2-DirectConElemContent-26" result="pass"/><test-case name="K2-DirectConElemContent-27" result="pass"/><test-case name="K2-DirectConElemContent-28" result="pass"/><test-case name="K2-DirectConElemContent-29" result="pass"/><test-case name="K2-DirectConElemContent-30" result="pass"/><test-case name="K2-DirectConElemContent-31" result="pass"/><test-case name="K2-DirectConElemContent-32" result="pass"/><test-case name="K2-DirectConElemContent-33" result="pass"/><test-case name="K2-DirectConElemContent-34" result="pass"/><test-case name="K2-DirectConElemContent-35" result="fail"/><test-case name="K2-DirectConElemContent-36" result="pass"/><test-case name="K2-DirectConElemContent-37" result="fail"/><test-case name="K2-DirectConElemContent-38" result="fail"/><test-case name="K2-DirectConElemContent-39" result="pass"/><test-case name="K2-DirectConElemContent-40" result="pass"/><test-case name="K2-DirectConElemContent-41" result="pass"/><test-case name="K2-DirectConElemContent-42" result="pass"/><test-case name="K2-DirectConElemContent-43" result="pass"/><test-case name="K2-DirectConElemContent-44" result="pass"/><test-case name="K2-DirectConElemContent-45" result="pass"/><test-case name="K2-DirectConElemContent-46" result="pass"/><test-case name="K2-DirectConElemContent-47" result="pass"/><test-case name="K2-DirectConElemContent-48" result="pass"/><test-case name="Constr-ws-tag-1" result="pass"/><test-case name="Constr-ws-tag-2" result="pass"/><test-case name="Constr-ws-tag-3" result="pass"/><test-case name="Constr-ws-tag-4" result="pass"/><test-case name="Constr-ws-tag-5" result="pass"/><test-case name="Constr-ws-tag-6" result="pass"/><test-case name="Constr-ws-tag-7" result="pass"/><test-case name="Constr-ws-tag-8" result="pass"/><test-case name="Constr-ws-tag-9" result="pass"/><test-case name="Constr-ws-tag-10" result="pass"/><test-case name="Constr-ws-enclexpr-1" result="pass"/><test-case name="Constr-ws-enclexpr-2" result="pass"/><test-case name="Constr-ws-enclexpr-3" result="pass"/><test-case name="Constr-ws-enclexpr-4" result="pass"/><test-case name="Constr-ws-enclexpr-5" result="pass"/><test-case name="Constr-ws-enclexpr-6" result="pass"/><test-case name="Constr-ws-enclexpr-7" result="pass"/><test-case name="Constr-ws-enclexpr-8" result="pass"/><test-case name="Constr-ws-enclexpr-9" result="pass"/><test-case name="Constr-ws-enclexpr-10" result="pass"/><test-case name="Constr-ws-enclexpr-11" result="pass"/><test-case name="Constr-ws-enclexpr-12" result="pass"/><test-case name="Constr-ws-enclexpr-13" result="pass"/><test-case name="Constr-ws-enclexpr-14" result="pass"/><test-case name="Constr-ws-enclexpr-15" result="pass"/><test-case name="Constr-ws-enclexpr-16" result="pass"/><test-case name="Constr-ws-enclexpr-17" result="pass"/><test-case name="Constr-ws-enclexpr-18" result="pass"/><test-case name="Constr-ws-enclexpr-19" result="pass"/><test-case name="Constr-ws-enclexpr-20" result="pass"/><test-case name="Constr-ws-enclexpr-21" result="pass"/><test-case name="Constr-ws-enclexpr-22" result="pass"/><test-case name="Constr-ws-enclexpr-23" result="pass"/><test-case name="Constr-ws-enclexpr-24" result="pass"/><test-case name="Constr-ws-nobound-1" result="pass"/><test-case name="Constr-ws-nobound-2" result="pass"/><test-case name="Constr-ws-nobound-3" result="pass"/><test-case name="Constr-ws-nobound-4" result="pass"/><test-case name="Constr-ws-nobound-5" result="pass"/><test-case name="Constr-ws-nobound-6" result="pass"/><test-case name="Constr-ws-genchref-1" result="pass"/><test-case name="Constr-ws-genchref-2" result="pass"/><test-case name="Constr-ws-genchref-3" result="pass"/><test-case name="Constr-ws-genchref-4" result="pass"/><test-case name="Constr-ws-gencdata-1" result="pass"/><test-case name="Constr-ws-gencdata-3" result="pass"/><test-case name="Constr-ws-adjchref-1" result="pass"/><test-case name="Constr-ws-adjchref-2" result="pass"/><test-case name="Constr-ws-adjchref-3" result="pass"/><test-case name="Constr-ws-adjcdata-1" result="pass"/><test-case name="Constr-ws-adjcdata-2" result="pass"/><test-case name="Constr-ws-adjcdata-3" result="pass"/><test-case name="Constr-ws-genenclexpr-1" result="pass"/><test-case name="Constr-ws-genenclexpr-2" result="pass"/><test-case name="Constr-ws-genenclexpr-3" result="pass"/><test-case name="Constr-ws-xmlspace-1" result="pass"/><test-case name="Constr-ws-xmlspace-2" result="pass"/><test-case name="K2-DirectConElemWhitespace-1" result="pass"/><test-case name="K2-DirectConElemWhitespace-2" result="pass"/><test-case name="K2-DirectConElemWhitespace-3" result="pass"/><test-case name="K2-DirectConElemWhitespace-4" result="pass"/><test-case name="K2-DirectConElemWhitespace-5" result="pass"/><test-case name="K2-DirectConElemWhitespace-6" result="pass"/><test-case name="K2-DirectConElemWhitespace-7" result="pass"/><test-case name="K2-DirectConElemWhitespace-8" result="pass"/><test-case name="K2-DirectConElemWhitespace-9" result="pass"/><test-case name="K2-DirectConElemWhitespace-10" result="pass"/><test-case name="K2-DirectConElemWhitespace-11" result="pass"/><test-case name="K2-DirectConElemWhitespace-12" result="pass"/><test-case name="K2-DirectConElemWhitespace-13" result="pass"/><test-case name="K2-DirectConElemWhitespace-14" result="pass"/><test-case name="K2-DirectConElemWhitespace-15" result="pass"/><test-case name="K2-DirectConElemWhitespace-16" result="pass"/><test-case name="K2-DirectConElemWhitespace-17" result="pass"/><test-case name="K2-DirectConElemWhitespace-18" result="pass"/><test-case name="K2-DirectConElemWhitespace-19" result="pass"/><test-case name="K2-DirectConElemWhitespace-20" result="pass"/><test-case name="K2-DirectConElemWhitespace-21" result="pass"/><test-case name="K2-DirectConElemWhitespace-22" result="pass"/><test-case name="K2-DirectConElemWhitespace-23" result="pass"/><test-case name="K2-DirectConElemWhitespace-24" result="pass"/><test-case name="K2-DirectConElemWhitespace-25" result="pass"/><test-case name="K2-DirectConElemWhitespace-26" result="pass"/><test-case name="Constr-pi-content-1" result="pass"/><test-case name="Constr-pi-content-2" result="pass"/><test-case name="Constr-pi-content-3" result="pass"/><test-case name="Constr-pi-content-4" result="pass"/><test-case name="Constr-pi-content-5" result="pass"/><test-case name="Constr-pi-content-6" result="pass"/><test-case name="Constr-pi-content-7" result="pass"/><test-case name="Constr-pi-content-8" result="pass"/><test-case name="Constr-pi-target-1" result="pass"/><test-case name="Constr-pi-target-2" result="pass"/><test-case name="Constr-pi-target-3" result="pass"/><test-case name="Constr-pi-target-4" result="pass"/><test-case name="Constr-comment-1" result="pass"/><test-case name="Constr-comment-2" result="pass"/><test-case name="Constr-comment-3" result="pass"/><test-case name="Constr-comment-4" result="pass"/><test-case name="Constr-comment-5" result="pass"/><test-case name="Constr-comment-6" result="pass"/><test-case name="Constr-comment-7" result="pass"/><test-case name="Constr-comment-8" result="pass"/><test-case name="K2-DirectConOther-1" result="pass"/><test-case name="K2-DirectConOther-2" result="pass"/><test-case name="K2-DirectConOther-3" result="pass"/><test-case name="K2-DirectConOther-4" result="pass"/><test-case name="K2-DirectConOther-5" result="pass"/><test-case name="K2-DirectConOther-6" result="pass"/><test-case name="K2-DirectConOther-7" result="pass"/><test-case name="K2-DirectConOther-8" result="pass"/><test-case name="K2-DirectConOther-9" result="pass"/><test-case name="K2-DirectConOther-10" result="pass"/><test-case name="K2-DirectConOther-11" result="pass"/><test-case name="K2-DirectConOther-12" result="pass"/><test-case name="K2-DirectConOther-13" result="pass"/><test-case name="K2-DirectConOther-14" result="pass"/><test-case name="K2-DirectConOther-15" result="pass"/><test-case name="K2-DirectConOther-16" result="pass"/><test-case name="K2-DirectConOther-17" result="pass"/><test-case name="K2-DirectConOther-18" result="pass"/><test-case name="K2-DirectConOther-19" result="pass"/><test-case name="K2-DirectConOther-20" result="pass"/><test-case name="K2-DirectConOther-21" result="pass"/><test-case name="K2-DirectConOther-22" result="pass"/><test-case name="K2-DirectConOther-23" result="pass"/><test-case name="K2-DirectConOther-24" result="pass"/><test-case name="K2-DirectConOther-25" result="pass"/><test-case name="K2-DirectConOther-26" result="pass"/><test-case name="K2-DirectConOther-27" result="pass"/><test-case name="K2-DirectConOther-28" result="pass"/><test-case name="K2-DirectConOther-29" result="pass"/><test-case name="K2-DirectConOther-30" result="pass"/><test-case name="K2-DirectConOther-31" result="pass"/><test-case name="K2-DirectConOther-32" result="pass"/><test-case name="K2-DirectConOther-33" result="pass"/><test-case name="K2-DirectConOther-34" result="pass"/><test-case name="K2-DirectConOther-35" result="pass"/><test-case name="K2-DirectConOther-36" result="pass"/><test-case name="K2-DirectConOther-37" result="pass"/><test-case name="K2-DirectConOther-38" result="pass"/><test-case name="K2-DirectConOther-39" result="pass"/><test-case name="K2-DirectConOther-40" result="pass"/><test-case name="K2-DirectConOther-41" result="pass"/><test-case name="K2-DirectConOther-42" result="pass"/><test-case name="K2-DirectConOther-43" result="pass"/><test-case name="K2-DirectConOther-44" result="pass"/><test-case name="K2-DirectConOther-45" result="pass"/><test-case name="K2-DirectConOther-46" result="pass"/><test-case name="K2-DirectConOther-47" result="pass"/><test-case name="K2-DirectConOther-48" result="pass"/><test-case name="K2-DirectConOther-49" result="pass"/><test-case name="K2-DirectConOther-50" result="pass"/><test-case name="K2-DirectConOther-51" result="pass"/><test-case name="K2-DirectConOther-52" result="pass"/><test-case name="K2-DirectConOther-53" result="pass"/><test-case name="K2-DirectConOther-54" result="pass"/><test-case name="K2-DirectConOther-55" result="pass"/><test-case name="K2-DirectConOther-56" result="pass"/><test-case name="K2-DirectConOther-57" result="pass"/><test-case name="K2-DirectConOther-58" result="pass"/><test-case name="K2-DirectConOther-59" result="pass"/><test-case name="K2-DirectConOther-60" result="pass"/><test-case name="K2-DirectConOther-61" result="pass"/><test-case name="K2-DirectConOther-62" result="pass"/><test-case name="K2-DirectConOther-63" result="pass"/><test-case name="K2-DirectConOther-64" result="pass"/><test-case name="K2-DirectConOther-65" result="pass"/><test-case name="K2-DirectConOther-66" result="fail"/><test-case name="K2-DirectConOther-67" result="pass"/><test-case name="K2-DirectConOther-68" result="pass"/><test-case name="K2-DirectConOther-69" result="pass"/><test-case name="K2-DirectConOther-70" result="pass"/><test-case name="K2-DirectConOther-71" result="pass"/><test-case name="Constr-compelem-name-1" result="pass"/><test-case name="Constr-compelem-name-2" result="pass"/><test-case name="Constr-compelem-name-3" result="pass"/><test-case name="Constr-compelem-compname-1" result="pass"/><test-case name="Constr-compelem-compname-2" result="pass"/><test-case name="Constr-compelem-compname-3" result="pass"/><test-case name="Constr-compelem-compname-4" result="pass"/><test-case name="Constr-compelem-compname-5" result="pass"/><test-case name="Constr-compelem-compname-6" result="pass"/><test-case name="Constr-compelem-compname-7" result="pass"/><test-case name="Constr-compelem-compname-8" result="pass"/><test-case name="Constr-compelem-compname-9" result="pass"/><test-case name="Constr-compelem-compname-10" result="pass"/><test-case name="Constr-compelem-compname-11" result="pass"/><test-case name="Constr-compelem-compname-12" result="pass"/><test-case name="Constr-compelem-compname-13" result="pass"/><test-case name="Constr-compelem-compname-14" result="pass"/><test-case name="Constr-compelem-compname-15" result="pass"/><test-case name="Constr-compelem-compname-16" result="pass"/><test-case name="Constr-compelem-compname-17" result="pass"/><test-case name="Constr-compelem-compname-18" result="pass"/><test-case name="Constr-compelem-compname-19" result="pass"/><test-case name="Constr-compelem-adjtext-1" result="pass"/><test-case name="Constr-compelem-adjtext-2" result="pass"/><test-case name="Constr-compelem-adjtext-3" result="pass"/><test-case name="Constr-compelem-nested-1" result="pass"/><test-case name="Constr-compelem-nested-2" result="pass"/><test-case name="Constr-compelem-enclexpr-1" result="pass"/><test-case name="Constr-compelem-enclexpr-2" result="pass"/><test-case name="Constr-compelem-enclexpr-3" result="pass"/><test-case name="Constr-compelem-enclexpr-4" result="pass"/><test-case name="Constr-compelem-nodeid-1" result="pass"/><test-case name="Constr-compelem-nodeid-2" result="pass"/><test-case name="Constr-compelem-nodeid-3" result="pass"/><test-case name="Constr-compelem-nodeid-4" result="pass"/><test-case name="Constr-compelem-nodeid-5" result="pass"/><test-case name="Constr-compelem-constrmod-3" result="pass"/><test-case name="Constr-compelem-constrmod-4" result="pass"/><test-case name="Constr-compelem-constrmod-7" result="pass"/><test-case name="Constr-compelem-constrmod-8" result="pass"/><test-case name="Constr-compelem-baseuri-1" result="pass"/><test-case name="Constr-compelem-baseuri-2" result="pass"/><test-case name="Constr-compelem-baseuri-3" result="pass"/><test-case name="Constr-compelem-doc-1" result="pass"/><test-case name="Constr-compelem-parent-1" result="pass"/><test-case name="Constr-compelem-string-1" result="pass"/><test-case name="Constr-compelem-data-1" result="pass"/><test-case name="Constr-compelem-attr-1" result="pass"/><test-case name="Constr-compelem-attr-2" result="pass"/><test-case name="Constr-compelem-attr-3" result="pass"/><test-case name="Constr-compelem-attr-4" result="pass"/><test-case name="K2-ComputeConElem-1" result="pass"/><test-case name="K2-ComputeConElem-2" result="pass"/><test-case name="K2-ComputeConElem-3" result="pass"/><test-case name="K2-ComputeConElem-4" result="pass"/><test-case name="K2-ComputeConElem-5" result="pass"/><test-case name="K2-ComputeConElem-6" result="pass"/><test-case name="K2-ComputeConElem-7" result="pass"/><test-case name="K2-ComputeConElem-8" result="pass"/><test-case name="K2-ComputeConElem-9" result="fail"/><test-case name="K2-ComputeConElem-10" result="pass"/><test-case name="K2-ComputeConElem-11" result="fail"/><test-case name="K2-ComputeConElem-12" result="fail"/><test-case name="K2-ComputeConElem-13" result="pass"/><test-case name="K2-ComputeConElem-14" result="pass"/><test-case name="K2-ComputeConElem-15" result="pass"/><test-case name="Constr-compattr-name-1" result="pass"/><test-case name="Constr-compattr-name-2" result="pass"/><test-case name="Constr-compattr-name-3" result="pass"/><test-case name="Constr-compattr-compname-1" result="pass"/><test-case name="Constr-compattr-compname-2" result="pass"/><test-case name="Constr-compattr-compname-3" result="pass"/><test-case name="Constr-compattr-compname-4" result="pass"/><test-case name="Constr-compattr-compname-5" result="pass"/><test-case name="Constr-compattr-compname-6" result="pass"/><test-case name="Constr-compattr-compname-7" result="pass"/><test-case name="Constr-compattr-compname-8" result="pass"/><test-case name="Constr-compattr-compname-9" result="pass"/><test-case name="Constr-compattr-compname-10" result="pass"/><test-case name="Constr-compattr-compname-11" result="pass"/><test-case name="Constr-compattr-compname-12" result="pass"/><test-case name="Constr-compattr-compname-13" result="pass"/><test-case name="Constr-compattr-compname-14" result="pass"/><test-case name="Constr-compattr-compname-15" result="pass"/><test-case name="Constr-compattr-compname-16" result="pass"/><test-case name="Constr-compattr-compname-17" result="pass"/><test-case name="Constr-compattr-compname-18" result="pass"/><test-case name="Constr-compattr-compname-19" result="pass"/><test-case name="Constr-compattr-doc-1" result="pass"/><test-case name="Constr-compattr-parent-1" result="pass"/><test-case name="Constr-compattr-string-1" result="pass"/><test-case name="Constr-compattr-data-1" result="pass"/><test-case name="Constr-compattr-enclexpr-1" result="pass"/><test-case name="Constr-compattr-enclexpr-2" result="pass"/><test-case name="Constr-compattr-enclexpr-3" result="pass"/><test-case name="Constr-compattr-enclexpr-4" result="pass"/><test-case name="Constr-compattr-id-1" result="pass"/><test-case name="Constr-compattr-id-2" result="pass"/><test-case name="constattrerr-1" result="pass"/><test-case name="K2-ComputeConAttr-1" result="pass"/><test-case name="K2-ComputeConAttr-2" result="pass"/><test-case name="K2-ComputeConAttr-3" result="pass"/><test-case name="K2-ComputeConAttr-4" result="pass"/><test-case name="K2-ComputeConAttr-5" result="pass"/><test-case name="K2-ComputeConAttr-6" result="pass"/><test-case name="K2-ComputeConAttr-7" result="pass"/><test-case name="K2-ComputeConAttr-8" result="pass"/><test-case name="K2-ComputeConAttr-9" result="pass"/><test-case name="K2-ComputeConAttr-10" result="pass"/><test-case name="K2-ComputeConAttr-11" result="pass"/><test-case name="K2-ComputeConAttr-12" result="pass"/><test-case name="K2-ComputeConAttr-13" result="pass"/><test-case name="K2-ComputeConAttr-14" result="pass"/><test-case name="K2-ComputeConAttr-15" result="pass"/><test-case name="K2-ComputeConAttr-16" result="pass"/><test-case name="K2-ComputeConAttr-17" result="pass"/><test-case name="K2-ComputeConAttr-18" result="pass"/><test-case name="K2-ComputeConAttr-19" result="pass"/><test-case name="K2-ComputeConAttr-20" result="pass"/><test-case name="K2-ComputeConAttr-21" result="pass"/><test-case name="K2-ComputeConAttr-22" result="pass"/><test-case name="K2-ComputeConAttr-23" result="pass"/><test-case name="K2-ComputeConAttr-24" result="pass"/><test-case name="K2-ComputeConAttr-25" result="pass"/><test-case name="K2-ComputeConAttr-26" result="pass"/><test-case name="K2-ComputeConAttr-27" result="pass"/><test-case name="K2-ComputeConAttr-28" result="pass"/><test-case name="K2-ComputeConAttr-29" result="pass"/><test-case name="K2-ComputeConAttr-30" result="pass"/><test-case name="K2-ComputeConAttr-31" result="pass"/><test-case name="K2-ComputeConAttr-32" result="pass"/><test-case name="K2-ComputeConAttr-33" result="pass"/><test-case name="K2-ComputeConAttr-34" result="pass"/><test-case name="K2-ComputeConAttr-35" result="pass"/><test-case name="K2-ComputeConAttr-36" result="pass"/><test-case name="K2-ComputeConAttr-37" result="pass"/><test-case name="K2-ComputeConAttr-38" result="pass"/><test-case name="K2-ComputeConAttr-39" result="pass"/><test-case name="K2-ComputeConAttr-40" result="pass"/><test-case name="K2-ComputeConAttr-41" result="pass"/><test-case name="K2-ComputeConAttr-42" result="fail"/><test-case name="K2-ComputeConAttr-43" result="fail"/><test-case name="K2-ComputeConAttr-44" result="pass"/><test-case name="K2-ComputeConAttr-45" result="pass"/><test-case name="K2-ComputeConAttr-46" result="pass"/><test-case name="K2-ComputeConAttr-47" result="pass"/><test-case name="K2-ComputeConAttr-48" result="pass"/><test-case name="K2-ComputeConAttr-49" result="pass"/><test-case name="K2-ComputeConAttr-50" result="pass"/><test-case name="K2-ComputeConAttr-51" result="pass"/><test-case name="K2-ComputeConAttr-52" result="pass"/><test-case name="K2-ComputeConAttr-53" result="pass"/><test-case name="K2-ComputeConAttr-54" result="pass"/><test-case name="K2-ComputeConAttr-55" result="fail"/><test-case name="K2-ComputeConAttr-56" result="fail"/><test-case name="K2-ComputeConAttr-57" result="pass"/><test-case name="K2-ComputeConAttr-58" result="pass"/><test-case name="K2-ComputeConAttr-59" result="pass"/><test-case name="K2-ComputeConAttr-60" result="pass"/><test-case name="K2-ComputeConAttr-61" result="pass"/><test-case name="Constr-docnode-adjtext-1" result="pass"/><test-case name="Constr-docnode-adjtext-2" result="pass"/><test-case name="Constr-docnode-adjtext-3" result="pass"/><test-case name="Constr-docnode-nested-1" result="pass"/><test-case name="Constr-docnode-nested-2" result="pass"/><test-case name="Constr-docnode-enclexpr-1" result="pass"/><test-case name="Constr-docnode-enclexpr-2" result="pass"/><test-case name="Constr-docnode-enclexpr-3" result="pass"/><test-case name="Constr-docnode-enclexpr-4" result="pass"/><test-case name="Constr-docnode-nodeid-1" result="pass"/><test-case name="Constr-docnode-nodeid-3" result="pass"/><test-case name="Constr-docnode-nodeid-4" result="pass"/><test-case name="Constr-docnode-nodeid-5" result="pass"/><test-case name="Constr-docnode-constrmod-1" result="pass"/><test-case name="Constr-docnode-constrmod-2" result="pass"/><test-case name="Constr-docnode-constrmod-3" result="pass"/><test-case name="Constr-docnode-constrmod-4" result="pass"/><test-case name="Constr-docnode-doc-1" result="pass"/><test-case name="Constr-docnode-parent-1" result="pass"/><test-case name="Constr-docnode-string-1" result="pass"/><test-case name="Constr-docnode-data-1" result="pass"/><test-case name="Constr-docnode-attr-1" result="pass"/><test-case name="Constr-docnode-attr-2" result="pass"/><test-case name="Constr-docnode-attr-3" result="pass"/><test-case name="K2-ConDocNode-1" result="pass"/><test-case name="K2-ConDocNode-2" result="pass"/><test-case name="K2-ConDocNode-3" result="pass"/><test-case name="K2-ConDocNode-4" result="pass"/><test-case name="K2-ConDocNode-5" result="pass"/><test-case name="K2-ConDocNode-6" result="pass"/><test-case name="K2-ConDocNode-7" result="pass"/><test-case name="K2-ConDocNode-8" result="pass"/><test-case name="K2-ConDocNode-9" result="pass"/><test-case name="K2-ConDocNode-10" result="pass"/><test-case name="K2-ConDocNode-11" result="pass"/><test-case name="K2-ConDocNode-12" result="pass"/><test-case name="K2-ConDocNode-13" result="pass"/><test-case name="K2-ConDocNode-14" result="pass"/><test-case name="K2-ConDocNode-15" result="pass"/><test-case name="K2-ConDocNode-16" result="pass"/><test-case name="K2-ConDocNode-17" result="pass"/><test-case name="K2-ConDocNode-18" result="pass"/><test-case name="K2-ConDocNode-19" result="pass"/><test-case name="K2-ConDocNode-20" result="pass"/><test-case name="K2-ConDocNode-21" result="pass"/><test-case name="K2-ConDocNode-22" result="pass"/><test-case name="K2-ConDocNode-23" result="pass"/><test-case name="K2-ConDocNode-24" result="pass"/><test-case name="K2-ConDocNode-25" result="pass"/><test-case name="K2-ConDocNode-26" result="pass"/><test-case name="K2-ConDocNode-27" result="pass"/><test-case name="K2-ConDocNode-28" result="pass"/><test-case name="K2-ConDocNode-29" result="pass"/><test-case name="K2-ConDocNode-30" result="pass"/><test-case name="K2-ConDocNode-31" result="pass"/><test-case name="K2-ConDocNode-32" result="pass"/><test-case name="Constr-text-enclexpr-1" result="pass"/><test-case name="Constr-text-enclexpr-2" result="pass"/><test-case name="Constr-text-enclexpr-3" result="pass"/><test-case name="Constr-text-enclexpr-4" result="pass"/><test-case name="Constr-text-enclexpr-5" result="pass"/><test-case name="Constr-text-doc-1" result="pass"/><test-case name="Constr-text-parent-1" result="pass"/><test-case name="Constr-text-string-1" result="pass"/><test-case name="Constr-text-data-1" result="pass"/><test-case name="Constr-text-count-1" result="pass"/><test-case name="Constr-text-count-2" result="pass"/><test-case name="Constr-text-count-3" result="pass"/><test-case name="Constr-text-count-4" result="pass"/><test-case name="Constr-text-count-5" result="pass"/><test-case name="Constr-text-count-6" result="pass"/><test-case name="Constr-text-adjtext-1" result="pass"/><test-case name="Constr-text-adjtext-2" result="pass"/><test-case name="Constr-text-nested-1" result="pass"/><test-case name="Constr-text-nested-2" result="pass"/><test-case name="Constr-text-nested-3" result="pass"/><test-case name="K2-ConText-1" result="pass"/><test-case name="K2-ConText-2" result="pass"/><test-case name="K2-ConText-3" result="pass"/><test-case name="K2-ConText-4" result="pass"/><test-case name="K2-ConText-5" result="pass"/><test-case name="K2-ConText-6" result="pass"/><test-case name="K2-ConText-7" result="pass"/><test-case name="K2-ConText-8" result="pass"/><test-case name="K2-ConText-9" result="pass"/><test-case name="K2-ConText-10" result="pass"/><test-case name="K2-ConText-11" result="pass"/><test-case name="K2-ConText-12" result="pass"/><test-case name="K2-ConText-13" result="pass"/><test-case name="K2-ConText-14" result="pass"/><test-case name="K2-ConText-15" result="pass"/><test-case name="Constr-comppi-name-1" result="pass"/><test-case name="Constr-comppi-name-2" result="pass"/><test-case name="Constr-comppi-compname-1" result="pass"/><test-case name="Constr-comppi-compname-2" result="pass"/><test-case name="Constr-comppi-compname-3" result="pass"/><test-case name="Constr-comppi-compname-4" result="pass"/><test-case name="Constr-comppi-compname-5" result="pass"/><test-case name="Constr-comppi-compname-6" result="pass"/><test-case name="Constr-comppi-compname-7" result="pass"/><test-case name="Constr-comppi-compname-8" result="pass"/><test-case name="Constr-comppi-compname-9" result="pass"/><test-case name="Constr-comppi-compname-10" result="pass"/><test-case name="Constr-comppi-compname-11" result="pass"/><test-case name="Constr-comppi-compname-12" result="pass"/><test-case name="Constr-comppi-compname-13" result="pass"/><test-case name="Constr-comppi-compname-15" result="pass"/><test-case name="Constr-comppi-compname-16" result="pass"/><test-case name="Constr-comppi-compname-18" result="pass"/><test-case name="Constr-comppi-compname-19" result="pass"/><test-case name="Constr-comppi-doc-1" result="pass"/><test-case name="Constr-comppi-parent-1" result="pass"/><test-case name="Constr-comppi-string-1" result="pass"/><test-case name="Constr-comppi-data-1" result="pass"/><test-case name="Constr-comppi-enclexpr-1" result="pass"/><test-case name="Constr-comppi-enclexpr-2" result="pass"/><test-case name="Constr-comppi-enclexpr-3" result="pass"/><test-case name="Constr-comppi-enclexpr-4" result="pass"/><test-case name="Constr-comppi-enclexpr-5" result="pass"/><test-case name="Constr-comppi-namexml-1" result="pass"/><test-case name="Constr-comppi-namexml-2" result="pass"/><test-case name="Constr-comppi-namexml-3" result="pass"/><test-case name="Constr-comppi-namexml-4" result="pass"/><test-case name="Constr-comppi-invalid-1" result="pass"/><test-case name="Constr-comppi-invalid-2" result="pass"/><test-case name="Constr-comppi-invalid-3" result="pass"/><test-case name="Constr-comppi-space-1" result="pass"/><test-case name="Constr-comppi-space-2" result="pass"/><test-case name="Constr-comppi-space-3" result="pass"/><test-case name="Constr-comppi-space-4" result="pass"/><test-case name="Constr-comppi-empty-1" result="pass"/><test-case name="Constr-comppi-empty-2" result="pass"/><test-case name="K2-ComputeConPI-1" result="pass"/><test-case name="K2-ComputeConPI-2" result="pass"/><test-case name="K2-ComputeConPI-3" result="pass"/><test-case name="K2-ComputeConPI-4" result="pass"/><test-case name="K2-ComputeConPI-5" result="pass"/><test-case name="K2-ComputeConPI-6" result="pass"/><test-case name="K2-ComputeConPI-7" result="pass"/><test-case name="K2-ComputeConPI-8" result="pass"/><test-case name="K2-ComputeConPI-9" result="pass"/><test-case name="K2-ComputeConPI-10" result="pass"/><test-case name="K2-ComputeConPI-11" result="pass"/><test-case name="Constr-compcomment-enclexpr-1" result="pass"/><test-case name="Constr-compcomment-enclexpr-2" result="pass"/><test-case name="Constr-compcomment-enclexpr-3" result="pass"/><test-case name="Constr-compcomment-enclexpr-4" result="pass"/><test-case name="Constr-compcomment-enclexpr-5" result="pass"/><test-case name="Constr-compcomment-doc-1" result="pass"/><test-case name="Constr-compcomment-parent-1" result="pass"/><test-case name="Constr-compcomment-string-1" result="pass"/><test-case name="Constr-compcomment-data-1" result="pass"/><test-case name="Constr-compcomment-nested-1" result="pass"/><test-case name="Constr-compcomment-nested-2" result="pass"/><test-case name="Constr-compcomment-nested-3" result="pass"/><test-case name="Constr-compcomment-dash-1" result="pass"/><test-case name="Constr-compcomment-dash-2" result="pass"/><test-case name="Constr-compcomment-dash-3" result="pass"/><test-case name="Constr-compcomment-dash-4" result="pass"/><test-case name="Constr-compcomment-doubledash-1" result="pass"/><test-case name="Constr-compcomment-doubledash-2" result="pass"/><test-case name="Constr-compcomment-doubledash-3" result="pass"/><test-case name="Constr-compcomment-doubledash-4" result="pass"/><test-case name="Constr-compcomment-doubledash-5" result="pass"/><test-case name="K2-ComputeConComment-1" result="pass"/><test-case name="K2-ComputeConComment-2" result="pass"/><test-case name="K2-ComputeConComment-3" result="pass"/><test-case name="K2-ComputeConComment-4" result="pass"/><test-case name="K2-ComputeConComment-5" result="pass"/><test-case name="Constr-inscope-1" result="not tested"/><test-case name="Constr-inscope-2" result="not tested"/><test-case name="Constr-inscope-3" result="not tested"/><test-case name="Constr-inscope-4" result="not tested"/><test-case name="Constr-inscope-5" result="pass"/><test-case name="Constr-inscope-6" result="pass"/><test-case name="Constr-inscope-7" result="pass"/><test-case name="Constr-inscope-8" result="pass"/><test-case name="Constr-inscope-9" result="pass"/><test-case name="Constr-inscope-10" result="pass"/><test-case name="Constr-inscope-11" result="pass"/><test-case name="Constr-inscope-12" result="pass"/><test-case name="Constr-inscope-13" result="pass"/><test-case name="Constr-inscope-14" result="pass"/><test-case name="Constr-inscope-15" result="pass"/><test-case name="Constr-inscope-16" result="pass"/><test-case name="Constr-inscope-17" result="pass"/><test-case name="Constr-inscope-18" result="pass"/><test-case name="Constr-inscope-19" result="pass"/><test-case name="Constr-inscope-20" result="pass"/><test-case name="K2-ConInScopeNamespace-1" result="pass"/><test-case name="ForExpr001" result="pass"/><test-case name="ForExpr002" result="pass"/><test-case name="ForExpr003" result="pass"/><test-case name="ForExpr004" result="pass"/><test-case name="ForExpr005" result="pass"/><test-case name="ForExpr006" result="pass"/><test-case name="ForExpr007" result="pass"/><test-case name="ForExpr008" result="pass"/><test-case name="ForExpr009" result="pass"/><test-case name="ForExpr010" result="pass"/><test-case name="ForExpr011" result="pass"/><test-case name="ForExpr012" result="pass"/><test-case name="ForExpr013" result="pass"/><test-case name="ForExpr014" result="pass"/><test-case name="ForExpr015" result="pass"/><test-case name="ForExpr016" result="pass"/><test-case name="ForExpr017" result="pass"/><test-case name="ForExpr018" result="pass"/><test-case name="ForExpr019" result="pass"/><test-case name="ForExpr020" result="pass"/><test-case name="ForExpr021" result="pass"/><test-case name="ForExpr022" result="pass"/><test-case name="ForExpr023" result="pass"/><test-case name="ForExpr024" result="pass"/><test-case name="ForExpr025" result="pass"/><test-case name="ForExpr026" result="pass"/><test-case name="ForExpr027" result="pass"/><test-case name="ForExpr028" result="pass"/><test-case name="ForExpr029" result="pass"/><test-case name="ForExpr030" result="pass"/><test-case name="ForExpr031" result="pass"/><test-case name="K-ForExprWithout-1" result="pass"/><test-case name="K-ForExprWithout-2" result="pass"/><test-case name="K-ForExprWithout-3" result="pass"/><test-case name="K-ForExprWithout-4" result="pass"/><test-case name="K-ForExprWithout-5" result="pass"/><test-case name="K-ForExprWithout-6" result="pass"/><test-case name="K-ForExprWithout-7" result="pass"/><test-case name="K-ForExprWithout-8" result="pass"/><test-case name="K-ForExprWithout-9" result="pass"/><test-case name="K-ForExprWithout-10" result="pass"/><test-case name="K-ForExprWithout-11" result="pass"/><test-case name="K-ForExprWithout-12" result="pass"/><test-case name="K-ForExprWithout-13" result="pass"/><test-case name="K-ForExprWithout-14" result="pass"/><test-case name="K-ForExprWithout-15" result="pass"/><test-case name="K-ForExprWithout-16" result="pass"/><test-case name="K-ForExprWithout-17" result="pass"/><test-case name="K-ForExprWithout-18" result="pass"/><test-case name="K-ForExprWithout-19" result="pass"/><test-case name="K-ForExprWithout-20" result="pass"/><test-case name="K-ForExprWithout-21" result="pass"/><test-case name="K-ForExprWithout-22" result="pass"/><test-case name="K-ForExprWithout-23" result="pass"/><test-case name="K-ForExprWithout-24" result="pass"/><test-case name="K-ForExprWithout-25" result="pass"/><test-case name="K-ForExprWithout-26" result="pass"/><test-case name="K-ForExprWithout-27" result="pass"/><test-case name="K-ForExprWithout-28" result="pass"/><test-case name="K-ForExprWithout-29" result="pass"/><test-case name="K-ForExprWithout-30" result="pass"/><test-case name="K-ForExprWithout-31" result="pass"/><test-case name="K-ForExprWithout-32" result="pass"/><test-case name="K-ForExprWithout-33" result="pass"/><test-case name="K-ForExprWithout-34" result="pass"/><test-case name="K-ForExprWithout-35" result="pass"/><test-case name="K-ForExprWithout-36" result="pass"/><test-case name="K-ForExprWithout-37" result="pass"/><test-case name="K-ForExprWithout-38" result="pass"/><test-case name="K-ForExprWithout-39" result="pass"/><test-case name="K-ForExprWithout-40" result="pass"/><test-case name="K-ForExprWithout-41" result="pass"/><test-case name="K-ForExprWithout-42" result="pass"/><test-case name="K-ForExprWithout-43" result="pass"/><test-case name="K-ForExprWithout-44" result="pass"/><test-case name="K-ForExprWithout-45" result="pass"/><test-case name="K-ForExprWithout-46" result="pass"/><test-case name="K-ForExprWithout-47" result="pass"/><test-case name="K-ForExprWithout-48" result="pass"/><test-case name="K-ForExprWithout-49" result="pass"/><test-case name="K-ForExprWithout-50" result="pass"/><test-case name="K-ForExprWithout-51" result="pass"/><test-case name="K-ForExprWithout-52" result="pass"/><test-case name="K-ForExprWithout-53" result="pass"/><test-case name="K-ForExprWithout-54" result="pass"/><test-case name="K-ForExprWithout-55" result="pass"/><test-case name="K-ForExprWithout-56" result="pass"/><test-case name="K2-ForExprWithout-1" result="pass"/><test-case name="K2-ForExprWithout-2" result="pass"/><test-case name="K2-ForExprWithout-3" result="pass"/><test-case name="K2-ForExprWithout-4" result="pass"/><test-case name="K2-ForExprWithout-5" result="pass"/><test-case name="K2-ForExprWithout-6" result="pass"/><test-case name="K2-ForExprWithout-7" result="pass"/><test-case name="K2-ForExprWithout-8" result="pass"/><test-case name="K2-ForExprWithout-9" result="pass"/><test-case name="K2-ForExprWithout-10" result="fail"/><test-case name="K2-ForExprWithout-11" result="pass"/><test-case name="K2-ForExprWithout-12" result="pass"/><test-case name="K2-ForExprWithout-13" result="pass"/><test-case name="K2-ForExprWithout-14" result="pass"/><test-case name="K2-ForExprWithout-15" result="pass"/><test-case name="K2-ForExprWithout-16" result="pass"/><test-case name="K2-ForExprWithout-17" result="pass"/><test-case name="K2-ForExprWithout-18" result="pass"/><test-case name="K2-ForExprWithout-19" result="pass"/><test-case name="K2-ForExprWithout-20" result="pass"/><test-case name="K2-ForExprWithout-21" result="pass"/><test-case name="K2-ForExprWithout-22" result="pass"/><test-case name="K2-ForExprWithout-23" result="pass"/><test-case name="K2-ForExprWithout-24" result="pass"/><test-case name="K2-ForExprWithout-25" result="pass"/><test-case name="K2-ForExprWithout-26" result="pass"/><test-case name="K2-ForExprWithout-27" result="pass"/><test-case name="K2-ForExprWithout-28" result="pass"/><test-case name="K2-ForExprWithout-29" result="pass"/><test-case name="K2-ForExprWithout-30" result="pass"/><test-case name="K2-ForExprWithout-31" result="pass"/><test-case name="K2-ForExprWithout-32" result="pass"/><test-case name="K2-ForExprWithout-33" result="pass"/><test-case name="K2-ForExprWithout-34" result="pass"/><test-case name="K2-ForExprWithout-35" result="pass"/><test-case name="K2-ForExprWithout-36" result="pass"/><test-case name="K2-ForExprWithout-37" result="pass"/><test-case name="K2-ForExprWithout-38" result="pass"/><test-case name="K2-ForExprWithout-39" result="pass"/><test-case name="K2-ForExprWithout-40" result="pass"/><test-case name="K2-ForExprWithout-41" result="pass"/><test-case name="K2-ForExprWithout-42" result="pass"/><test-case name="K2-ForExprWithout-43" result="pass"/><test-case name="K2-ForExprWithout-44" result="pass"/><test-case name="K2-ForExprWithout-45" result="pass"/><test-case name="ForExprType001" result="pass"/><test-case name="ForExprType002" result="pass"/><test-case name="ForExprType003" result="pass"/><test-case name="ForExprType004" result="pass"/><test-case name="ForExprType005" result="pass"/><test-case name="ForExprType006" result="pass"/><test-case name="ForExprType007" result="pass"/><test-case name="ForExprType008" result="pass"/><test-case name="ForExprType009" result="pass"/><test-case name="ForExprType011" result="pass"/><test-case name="ForExprType012" result="pass"/><test-case name="ForExprType013" result="pass"/><test-case name="ForExprType014" result="fail"/><test-case name="ForExprType015" result="pass"/><test-case name="ForExprType016" result="pass"/><test-case name="ForExprType017" result="pass"/><test-case name="ForExprType018" result="pass"/><test-case name="ForExprType019" result="pass"/><test-case name="ForExprType020" result="pass"/><test-case name="ForExprType021" result="pass"/><test-case name="ForExprType022" result="pass"/><test-case name="ForExprType023" result="pass"/><test-case name="ForExprType024" result="pass"/><test-case name="ForExprType028" result="pass"/><test-case name="ForExprType029" result="pass"/><test-case name="ForExprType030" result="pass"/><test-case name="ForExprType031" result="pass"/><test-case name="ForExprType032" result="pass"/><test-case name="ForExprType033" result="pass"/><test-case name="ForExprType034" result="pass"/><test-case name="ForExprType035" result="pass"/><test-case name="ForExprType036" result="pass"/><test-case name="ForExprType045" result="pass"/><test-case name="ForExprType046" result="pass"/><test-case name="ForExprType047" result="pass"/><test-case name="ForExprType054" result="pass"/><test-case name="ForExprType055" result="pass"/><test-case name="ForExprType056" result="pass"/><test-case name="ForExprType057" result="pass"/><test-case name="ForExprType058" result="pass"/><test-case name="ForExprType059" result="pass"/><test-case name="ForExprType060" result="pass"/><test-case name="ForExprType061" result="pass"/><test-case name="ForExprType062" result="pass"/><test-case name="ForExprType063" result="pass"/><test-case name="ForExprType064" result="pass"/><test-case name="ForExprType065" result="pass"/><test-case name="ForExprType066" result="pass"/><test-case name="ForExprType067" result="pass"/><test-case name="ForExprType068" result="pass"/><test-case name="ForExprType069" result="pass"/><test-case name="ForExprType070" result="pass"/><test-case name="ForExprType071" result="pass"/><test-case name="ForExprType072" result="pass"/><test-case name="ForExprType073" result="pass"/><test-case name="K2-ForExprWith-1" result="pass"/><test-case name="K-ForExprPositionalVar-1" result="pass"/><test-case name="K-ForExprPositionalVar-2" result="pass"/><test-case name="K-ForExprPositionalVar-3" result="pass"/><test-case name="K-ForExprPositionalVar-4" result="pass"/><test-case name="K-ForExprPositionalVar-5" result="pass"/><test-case name="K-ForExprPositionalVar-6" result="pass"/><test-case name="K-ForExprPositionalVar-7" result="pass"/><test-case name="K-ForExprPositionalVar-8" result="pass"/><test-case name="K-ForExprPositionalVar-9" result="pass"/><test-case name="K-ForExprPositionalVar-10" result="pass"/><test-case name="K-ForExprPositionalVar-11" result="pass"/><test-case name="K-ForExprPositionalVar-12" result="pass"/><test-case name="K-ForExprPositionalVar-13" result="pass"/><test-case name="K-ForExprPositionalVar-14" result="pass"/><test-case name="K-ForExprPositionalVar-15" result="pass"/><test-case name="K-ForExprPositionalVar-16" result="pass"/><test-case name="K-ForExprPositionalVar-17" result="pass"/><test-case name="K-ForExprPositionalVar-18" result="pass"/><test-case name="K-ForExprPositionalVar-19" result="pass"/><test-case name="K-ForExprPositionalVar-20" result="pass"/><test-case name="K-ForExprPositionalVar-21" result="pass"/><test-case name="K-ForExprPositionalVar-22" result="pass"/><test-case name="K-ForExprPositionalVar-23" result="pass"/><test-case name="K-ForExprPositionalVar-24" result="pass"/><test-case name="K-ForExprPositionalVar-25" result="pass"/><test-case name="K-ForExprPositionalVar-26" result="pass"/><test-case name="K-ForExprPositionalVar-27" result="pass"/><test-case name="K-ForExprPositionalVar-28" result="pass"/><test-case name="K-ForExprPositionalVar-29" result="pass"/><test-case name="K-ForExprPositionalVar-30" result="pass"/><test-case name="K2-ForExprPositionalVar-1" result="pass"/><test-case name="K2-ForExprPositionalVar-2" result="pass"/><test-case name="K2-ForExprPositionalVar-3" result="pass"/><test-case name="K2-ForExprPositionalVar-4" result="pass"/><test-case name="LetExpr001" result="pass"/><test-case name="LetExpr002" result="pass"/><test-case name="LetExpr003" result="pass"/><test-case name="LetExpr004" result="pass"/><test-case name="LetExpr005" result="pass"/><test-case name="LetExpr006" result="pass"/><test-case name="LetExpr007" result="pass"/><test-case name="LetExpr008" result="pass"/><test-case name="LetExpr009" result="pass"/><test-case name="LetExpr010" result="pass"/><test-case name="LetExpr011" result="pass"/><test-case name="LetExpr012" result="pass"/><test-case name="LetExpr013" result="pass"/><test-case name="LetExpr014" result="pass"/><test-case name="LetExpr015" result="pass"/><test-case name="LetExpr016" result="pass"/><test-case name="LetExpr017" result="pass"/><test-case name="LetExpr018" result="pass"/><test-case name="LetExpr019" result="pass"/><test-case name="LetExpr020" result="pass"/><test-case name="LetExpr021" result="pass"/><test-case name="K-LetExprWithout-1" result="pass"/><test-case name="K-LetExprWithout-2" result="pass"/><test-case name="K-LetExprWithout-3" result="pass"/><test-case name="K-LetExprWithout-4" result="pass"/><test-case name="K2-LetExprWithout-1" result="pass"/><test-case name="K2-LetExprWithout-2" result="pass"/><test-case name="K2-LetExprWithout-3" result="pass"/><test-case name="K2-LetExprWithout-4" result="pass"/><test-case name="K2-LetExprWithout-5" result="pass"/><test-case name="K2-LetExprWithout-6" result="pass"/><test-case name="K2-LetExprWithout-7" result="pass"/><test-case name="K2-LetExprWithout-8" result="pass"/><test-case name="K2-LetExprWithout-9" result="pass"/><test-case name="K2-LetExprWithout-10" result="pass"/><test-case name="K2-LetExprWithout-11" result="pass"/><test-case name="K2-LetExprWithout-12" result="pass"/><test-case name="K2-LetExprWithout-13" result="pass"/><test-case name="K2-LetExprWithout-14" result="pass"/><test-case name="K2-LetExprWithout-15" result="pass"/><test-case name="K2-LetExprWithout-16" result="fail"/><test-case name="K2-LetExprWithout-17" result="pass"/><test-case name="K2-LetExprWithout-18" result="pass"/><test-case name="K2-LetExprWithout-19" result="pass"/><test-case name="K2-LetExprWithout-20" result="pass"/><test-case name="K2-LetExprWithout-21" result="pass"/><test-case name="K2-LetExprWithout-22" result="pass"/><test-case name="K2-LetExprWithout-23" result="pass"/><test-case name="K2-LetExprWithout-24" result="pass"/><test-case name="K2-LetExprWithout-25" result="fail"/><test-case name="letexprwith-1" result="pass"/><test-case name="letexprwith-2" result="pass"/><test-case name="letexprwith-3" result="pass"/><test-case name="letexprwith-4" result="pass"/><test-case name="letexprwith-5" result="pass"/><test-case name="letexprwith-6" result="pass"/><test-case name="letexprwith-7" result="pass"/><test-case name="letexprwith-8" result="pass"/><test-case name="letexprwith-9" result="pass"/><test-case name="letexprwith-10" result="pass"/><test-case name="letexprwith-11" result="pass"/><test-case name="letexprwith-12" result="pass"/><test-case name="letexprwith-13" result="pass"/><test-case name="letexprwith-14" result="pass"/><test-case name="letexprwith-15" result="pass"/><test-case name="letexprwith-16" result="pass"/><test-case name="letexprwith-17" result="pass"/><test-case name="letexprwith-18" result="pass"/><test-case name="letexprwith-19" result="pass"/><test-case name="letexprwith-20" result="pass"/><test-case name="letexprwith-21" result="pass"/><test-case name="letexprwith-22" result="pass"/><test-case name="letexprwith-23" result="pass"/><test-case name="letexprwith-24" result="pass"/><test-case name="WhereExpr001" result="pass"/><test-case name="WhereExpr002" result="pass"/><test-case name="WhereExpr003" result="pass"/><test-case name="WhereExpr004" result="pass"/><test-case name="WhereExpr005" result="pass"/><test-case name="WhereExpr006" result="pass"/><test-case name="WhereExpr007" result="pass"/><test-case name="WhereExpr008" result="pass"/><test-case name="WhereExpr009" result="pass"/><test-case name="WhereExpr010" result="pass"/><test-case name="WhereExpr013" result="pass"/><test-case name="WhereExpr014" result="pass"/><test-case name="WhereExpr015" result="pass"/><test-case name="WhereExpr016" result="pass"/><test-case name="WhereExpr017" result="pass"/><test-case name="WhereExpr018" result="pass"/><test-case name="WhereExpr019" result="pass"/><test-case name="WhereExpr020" result="pass"/><test-case name="whereClause-1" result="pass"/><test-case name="whereClause-2" result="pass"/><test-case name="whereClause-3" result="pass"/><test-case name="whereClause-4" result="pass"/><test-case name="whereClause-5" result="pass"/><test-case name="whereClause-6" result="pass"/><test-case name="whereClause-7" result="pass"/><test-case name="whereClause-8" result="pass"/><test-case name="whereClause-9" result="pass"/><test-case name="whereClause-10" result="pass"/><test-case name="whereClause-11" result="pass"/><test-case name="K-WhereExpr-1" result="pass"/><test-case name="K-WhereExpr-2" result="pass"/><test-case name="K-WhereExpr-3" result="pass"/><test-case name="K-WhereExpr-4" result="pass"/><test-case name="K-WhereExpr-5" result="pass"/><test-case name="K-WhereExpr-6" result="pass"/><test-case name="K-WhereExpr-7" result="pass"/><test-case name="K-WhereExpr-8" result="pass"/><test-case name="K-WhereExpr-9" result="pass"/><test-case name="K-WhereExpr-10" result="pass"/><test-case name="K-WhereExpr-11" result="pass"/><test-case name="K2-WhereExpr-1" result="pass"/><test-case name="K2-WhereExpr-2" result="pass"/><test-case name="orderBy1" result="pass"/><test-case name="orderBy2" result="pass"/><test-case name="orderBy3" result="pass"/><test-case name="orderBy4" result="pass"/><test-case name="orderBy5" result="pass"/><test-case name="orderBy6" result="pass"/><test-case name="orderBy7" result="pass"/><test-case name="orderBy8" result="pass"/><test-case name="orderBy9" result="pass"/><test-case name="orderBy10" result="pass"/><test-case name="orderBy11" result="pass"/><test-case name="orderBy12" result="pass"/><test-case name="orderBy13" result="pass"/><test-case name="orderBy14" result="pass"/><test-case name="orderBy15" result="pass"/><test-case name="orderBy16" result="pass"/><test-case name="orderBy17" result="pass"/><test-case name="orderBy18" result="pass"/><test-case name="orderBy19" result="pass"/><test-case name="orderBy20" result="pass"/><test-case name="orderBy21" result="pass"/><test-case name="orderBy22" result="pass"/><test-case name="orderBy23" result="pass"/><test-case name="orderBy24" result="pass"/><test-case name="orderBy25" result="pass"/><test-case name="orderBy26" result="pass"/><test-case name="orderBy27" result="pass"/><test-case name="orderBy28" result="pass"/><test-case name="orderBy29" result="pass"/><test-case name="orderBy30" result="pass"/><test-case name="orderBy31" result="pass"/><test-case name="orderBy32" result="pass"/><test-case name="orderBy33" result="pass"/><test-case name="orderBy34" result="pass"/><test-case name="orderBy35" result="pass"/><test-case name="orderBy36" result="pass"/><test-case name="orderBy37" result="pass"/><test-case name="orderBy38" result="pass"/><test-case name="orderBy39" result="pass"/><test-case name="orderBy40" result="pass"/><test-case name="orderBy41" result="pass"/><test-case name="orderBy42" result="pass"/><test-case name="orderBy43" result="pass"/><test-case name="orderBy44" result="pass"/><test-case name="orderBy45" result="pass"/><test-case name="orderBy46" result="pass"/><test-case name="orderBy47" result="pass"/><test-case name="orderBy49" result="pass"/><test-case name="orderBy50" result="pass"/><test-case name="orderBy51" result="pass"/><test-case name="orderBy52" result="pass"/><test-case name="orderBy53" result="pass"/><test-case name="orderBy54" result="pass"/><test-case name="orderBy55" result="pass"/><test-case name="orderBy56" result="pass"/><test-case name="orderBy57" result="pass"/><test-case name="orderBy59" result="pass"/><test-case name="orderbylocal-1" result="pass"/><test-case name="orderbylocal-2" result="pass"/><test-case name="orderbylocal-3" result="pass"/><test-case name="orderbylocal-4" result="pass"/><test-case name="orderbylocal-5" result="pass"/><test-case name="orderbylocal-6" result="pass"/><test-case name="orderbylocal-7" result="pass"/><test-case name="orderbylocal-8" result="pass"/><test-case name="orderbylocal-9" result="pass"/><test-case name="orderbylocal-10" result="pass"/><test-case name="orderbylocal-11" result="pass"/><test-case name="orderbylocal-12" result="pass"/><test-case name="orderbylocal-16" result="pass"/><test-case name="orderbylocal-17" result="pass"/><test-case name="orderbylocal-18" result="pass"/><test-case name="orderbylocal-19" result="pass"/><test-case name="orderbylocal-20" result="pass"/><test-case name="orderbylocal-21" result="pass"/><test-case name="orderbylocal-22" result="pass"/><test-case name="orderbylocal-25" result="pass"/><test-case name="orderbylocal-26" result="pass"/><test-case name="orderbylocal-27" result="pass"/><test-case name="orderbylocal-28" result="pass"/><test-case name="orderbylocal-29" result="pass"/><test-case name="orderbylocal-30" result="pass"/><test-case name="orderbylocal-31" result="pass"/><test-case name="orderbylocal-32" result="pass"/><test-case name="orderbylocal-35" result="pass"/><test-case name="orderbylocal-36" result="pass"/><test-case name="orderbylocal-37" result="pass"/><test-case name="orderbylocal-38" result="pass"/><test-case name="orderbylocal-39" result="pass"/><test-case name="orderbylocal-40" result="pass"/><test-case name="orderbylocal-41" result="pass"/><test-case name="orderbylocal-42" result="pass"/><test-case name="orderbylocal-43" result="pass"/><test-case name="orderbylocal-44" result="pass"/><test-case name="orderbylocal-45" result="pass"/><test-case name="orderbylocal-46" result="pass"/><test-case name="orderbylocal-47" result="pass"/><test-case name="orderbylocal-49" result="pass"/><test-case name="orderbylocal-50" result="pass"/><test-case name="orderbylocal-51" result="pass"/><test-case name="orderbylocal-52" result="pass"/><test-case name="orderbylocal-55" result="pass"/><test-case name="orderbylocal-56" result="pass"/><test-case name="orderbylocal-57" result="pass"/><test-case name="orderbylocal-59" result="pass"/><test-case name="orderbylocal-60" result="pass"/><test-case name="orderbywithout-1" result="pass"/><test-case name="orderbywithout-2" result="pass"/><test-case name="orderbywithout-3" result="pass"/><test-case name="orderbywithout-4" result="pass"/><test-case name="orderbywithout-5" result="pass"/><test-case name="orderbywithout-6" result="pass"/><test-case name="orderbywithout-7" result="pass"/><test-case name="orderbywithout-8" result="pass"/><test-case name="orderbywithout-9" result="pass"/><test-case name="orderbywithout-10" result="pass"/><test-case name="orderbywithout-11" result="pass"/><test-case name="orderbywithout-12" result="pass"/><test-case name="orderbywithout-13" result="pass"/><test-case name="orderbywithout-14" result="pass"/><test-case name="orderbywithout-15" result="pass"/><test-case name="orderbywithout-16" result="pass"/><test-case name="orderbywithout-17" result="pass"/><test-case name="orderbywithout-18" result="pass"/><test-case name="orderbywithout-19" result="pass"/><test-case name="orderbywithout-20" result="pass"/><test-case name="orderbywithout-21" result="pass"/><test-case name="orderbywithout-22" result="pass"/><test-case name="orderbywithout-23" result="pass"/><test-case name="orderbywithout-24" result="pass"/><test-case name="orderbywithout-25" result="pass"/><test-case name="orderbywithout-26" result="pass"/><test-case name="orderbywithout-27" result="pass"/><test-case name="orderbywithout-28" result="pass"/><test-case name="orderbywithout-29" result="pass"/><test-case name="orderbywithout-30" result="pass"/><test-case name="orderbywithout-31" result="pass"/><test-case name="orderbywithout-32" result="pass"/><test-case name="orderbywithout-33" result="pass"/><test-case name="orderbywithout-34" result="pass"/><test-case name="orderbywithout-35" result="pass"/><test-case name="orderbywithout-36" result="pass"/><test-case name="orderbywithout-37" result="pass"/><test-case name="orderbywithout-38" result="pass"/><test-case name="orderbywithout-39" result="pass"/><test-case name="orderbywithout-40" result="pass"/><test-case name="K2-OrderbyExprWithout-1" result="pass"/><test-case name="K2-OrderbyExprWithout-2" result="pass"/><test-case name="K2-OrderbyExprWithout-3" result="pass"/><test-case name="K2-OrderbyExprWithout-4" result="pass"/><test-case name="K2-OrderbyExprWithout-5" result="pass"/><test-case name="K2-OrderbyExprWithout-6" result="pass"/><test-case name="K2-OrderbyExprWithout-7" result="pass"/><test-case name="K2-OrderbyExprWithout-8" result="pass"/><test-case name="K2-OrderbyExprWithout-9" result="pass"/><test-case name="K2-OrderbyExprWithout-10" result="pass"/><test-case name="K2-OrderbyExprWithout-11" result="pass"/><test-case name="K2-OrderbyExprWithout-12" result="pass"/><test-case name="K2-OrderbyExprWithout-13" result="pass"/><test-case name="K2-OrderbyExprWithout-14" result="pass"/><test-case name="K2-OrderbyExprWithout-15" result="pass"/><test-case name="K2-OrderbyExprWithout-16" result="pass"/><test-case name="K2-OrderbyExprWithout-17" result="pass"/><test-case name="K2-OrderbyExprWithout-18" result="pass"/><test-case name="K2-OrderbyExprWithout-19" result="pass"/><test-case name="K2-OrderbyExprWithout-20" result="pass"/><test-case name="K2-OrderbyExprWithout-21" result="pass"/><test-case name="K2-OrderbyExprWithout-22" result="pass"/><test-case name="K2-OrderbyExprWithout-23" result="pass"/><test-case name="K2-OrderbyExprWithout-24" result="pass"/><test-case name="K2-OrderbyExprWithout-25" result="pass"/><test-case name="K2-OrderbyExprWithout-26" result="pass"/><test-case name="K2-OrderbyExprWithout-27" result="pass"/><test-case name="K2-OrderbyExprWithout-28" result="pass"/><test-case name="K2-OrderbyExprWithout-29" result="pass"/><test-case name="K2-OrderbyExprWithout-30" result="pass"/><test-case name="K2-OrderbyExprWithout-31" result="pass"/><test-case name="K2-OrderbyExprWithout-32" result="pass"/><test-case name="K2-OrderbyExprWithout-33" result="pass"/><test-case name="K2-OrderbyExprWithout-34" result="pass"/><test-case name="K2-OrderbyExprWithout-35" result="pass"/><test-case name="K2-OrderbyExprWithout-36" result="pass"/><test-case name="K2-OrderbyExprWithout-37" result="pass"/><test-case name="K2-OrderbyExprWithout-38" result="pass"/><test-case name="K2-OrderbyExprWithout-39" result="pass"/><test-case name="K2-OrderbyExprWithout-40" result="pass"/><test-case name="K2-OrderbyExprWithout-41" result="pass"/><test-case name="K2-OrderbyExprWithout-42" result="pass"/><test-case name="K2-OrderbyExprWithout-43" result="pass"/><test-case name="K2-OrderbyExprWithout-44" result="pass"/><test-case name="K2-OrderbyExprWithout-45" result="pass"/><test-case name="K2-OrderbyExprWithout-46" result="pass"/><test-case name="K2-OrderbyExprWithout-47" result="pass"/><test-case name="K2-OrderbyExprWithout-48" result="pass"/><test-case name="K2-OrderbyExprWithout-49" result="pass"/><test-case name="ReturnExpr001" result="pass"/><test-case name="ReturnExpr002" result="pass"/><test-case name="ReturnExpr003" result="pass"/><test-case name="ReturnExpr004" result="pass"/><test-case name="ReturnExpr005" result="pass"/><test-case name="ReturnExpr006" result="pass"/><test-case name="ReturnExpr007" result="pass"/><test-case name="ReturnExpr008" result="pass"/><test-case name="ReturnExpr009" result="pass"/><test-case name="ReturnExpr010" result="pass"/><test-case name="ReturnExpr011" result="pass"/><test-case name="ReturnExpr012" result="pass"/><test-case name="ReturnExpr013" result="pass"/><test-case name="ReturnExpr014" result="pass"/><test-case name="ReturnExpr015" result="pass"/><test-case name="ReturnExpr016" result="pass"/><test-case name="ReturnExpr017" result="pass"/><test-case name="ReturnExpr018" result="pass"/><test-case name="ReturnExpr019" result="pass"/><test-case name="ReturnExpr020" result="pass"/><test-case name="K2-ReturnExpr-1" result="pass"/><test-case name="Orderexpr-1" result="pass"/><test-case name="Orderexpr-2" result="pass"/><test-case name="Orderexpr-5" result="pass"/><test-case name="Orderexpr-6" result="pass"/><test-case name="Orderexpr-9" result="pass"/><test-case name="Orderexpr-10" result="pass"/><test-case name="Orderexpr-11" result="pass"/><test-case name="Orderexpr-12" result="pass"/><test-case name="Orderexpr-13" result="pass"/><test-case name="Orderexpr-14" result="pass"/><test-case name="Orderexpr-15" result="pass"/><test-case name="Orderexpr-16" result="pass"/><test-case name="Orderexpr-17" result="pass"/><test-case name="Orderexpr-18" result="pass"/><test-case name="Orderexpr-19" result="pass"/><test-case name="Orderexpr-20" result="pass"/><test-case name="orderedunorderedexpr-1" result="pass"/><test-case name="orderedunorderedexpr-2" result="pass"/><test-case name="orderedunorderedexpr-3" result="pass"/><test-case name="orderedunorderedexpr-4" result="pass"/><test-case name="orderedunorderedexpr-5" result="pass"/><test-case name="orderedunorderedexpr-6" result="pass"/><test-case name="K-OrderExpr-1" result="pass"/><test-case name="K-OrderExpr-2" result="pass"/><test-case name="K-OrderExpr-3" result="pass"/><test-case name="K-OrderExpr-4" result="pass"/><test-case name="CondExpr002" result="pass"/><test-case name="CondExpr003" result="pass"/><test-case name="CondExpr004" result="pass"/><test-case name="CondExpr005" result="pass"/><test-case name="CondExpr006" result="pass"/><test-case name="CondExpr007" result="pass"/><test-case name="CondExpr008" result="pass"/><test-case name="CondExpr009" result="pass"/><test-case name="CondExpr010" result="pass"/><test-case name="CondExpr011" result="pass"/><test-case name="CondExpr012" result="pass"/><test-case name="CondExpr013" result="pass"/><test-case name="CondExpr014" result="pass"/><test-case name="CondExpr015" result="pass"/><test-case name="CondExpr016" result="pass"/><test-case name="CondExpr017" result="pass"/><test-case name="CondExpr018" result="pass"/><test-case name="CondExpr019" result="pass"/><test-case name="CondExpr20" result="pass"/><test-case name="CondExpr21" result="pass"/><test-case name="K-CondExpr-1" result="pass"/><test-case name="K-CondExpr-2" result="pass"/><test-case name="K-CondExpr-3" result="pass"/><test-case name="K-CondExpr-4" result="pass"/><test-case name="K-CondExpr-5" result="pass"/><test-case name="K-CondExpr-6" result="pass"/><test-case name="K-CondExpr-7" result="pass"/><test-case name="K-CondExpr-8" result="pass"/><test-case name="K-CondExpr-9" result="pass"/><test-case name="K-CondExpr-10" result="pass"/><test-case name="K-CondExpr-11" result="pass"/><test-case name="K-CondExpr-12" result="pass"/><test-case name="K2-CondExpr-1" result="pass"/><test-case name="K2-CondExpr-2" result="pass"/><test-case name="K2-CondExpr-3" result="pass"/><test-case name="K2-CondExpr-4" result="pass"/><test-case name="K2-CondExpr-5" result="pass"/><test-case name="K2-CondExpr-6" result="pass"/><test-case name="K2-CondExpr-7" result="fail"/><test-case name="quantExpr-1" result="pass"/><test-case name="quantExpr-2" result="pass"/><test-case name="quantExpr-3" result="pass"/><test-case name="quantExpr-4" result="pass"/><test-case name="quantExpr-5" result="pass"/><test-case name="quantExpr-6" result="pass"/><test-case name="quantExpr-7" result="pass"/><test-case name="quantExpr-8" result="pass"/><test-case name="quantExpr-9" result="pass"/><test-case name="quantExpr-10" result="pass"/><test-case name="quantExpr-11" result="pass"/><test-case name="quantExpr-12" result="pass"/><test-case name="quantExpr-13" result="pass"/><test-case name="quantExpr-14" result="pass"/><test-case name="quantExpr-15" result="pass"/><test-case name="quantExpr-16" result="pass"/><test-case name="quantExpr-17" result="pass"/><test-case name="quantExpr-18" result="pass"/><test-case name="quantexpr-19" result="pass"/><test-case name="quantExpr-20" result="pass"/><test-case name="quantExpr-21" result="pass"/><test-case name="quantExpr-22" result="pass"/><test-case name="quantExpr-23" result="pass"/><test-case name="quantExpr-24" result="pass"/><test-case name="quantExpr-25" result="pass"/><test-case name="quantExpr-26" result="pass"/><test-case name="quantExpr-27" result="pass"/><test-case name="quantExpr-28" result="pass"/><test-case name="quantExpr-29" result="pass"/><test-case name="quantExpr-30" result="pass"/><test-case name="quantexpr-31" result="pass"/><test-case name="quantexpr-32" result="pass"/><test-case name="quantExpr-33" result="pass"/><test-case name="quantexpr-34" result="pass"/><test-case name="quantexpr-35" result="pass"/><test-case name="quantexpr-36" result="pass"/><test-case name="quantexpr-37" result="pass"/><test-case name="quantexpr-38" result="pass"/><test-case name="quantexpr-39" result="pass"/><test-case name="quantexpr-40" result="pass"/><test-case name="quantexpr-41" result="pass"/><test-case name="quantexpr-42" result="pass"/><test-case name="quantexpr-43" result="pass"/><test-case name="quantexpr-44" result="pass"/><test-case name="quantexpr-45" result="pass"/><test-case name="quantexpr-46" result="pass"/><test-case name="quantexpr-47" result="pass"/><test-case name="quantexpr-48" result="pass"/><test-case name="quantexpr-49" result="pass"/><test-case name="quantexpr-50" result="pass"/><test-case name="quantexpr-51" result="pass"/><test-case name="quantexpr-52" result="pass"/><test-case name="quantexpr-53" result="pass"/><test-case name="quantexpr-54" result="pass"/><test-case name="quantexpr-55" result="pass"/><test-case name="quantexpr-56" result="pass"/><test-case name="quantexpr-57" result="pass"/><test-case name="quantexpr-58" result="pass"/><test-case name="quantexpr-59" result="pass"/><test-case name="K-QuantExprWithout-1" result="pass"/><test-case name="K-QuantExprWithout-2" result="pass"/><test-case name="K-QuantExprWithout-3" result="pass"/><test-case name="K-QuantExprWithout-4" result="pass"/><test-case name="K-QuantExprWithout-5" result="pass"/><test-case name="K-QuantExprWithout-6" result="pass"/><test-case name="K-QuantExprWithout-7" result="pass"/><test-case name="K-QuantExprWithout-8" result="pass"/><test-case name="K-QuantExprWithout-9" result="pass"/><test-case name="K-QuantExprWithout-10" result="pass"/><test-case name="K-QuantExprWithout-11" result="pass"/><test-case name="K-QuantExprWithout-12" result="pass"/><test-case name="K-QuantExprWithout-13" result="pass"/><test-case name="K-QuantExprWithout-14" result="pass"/><test-case name="K-QuantExprWithout-15" result="pass"/><test-case name="K-QuantExprWithout-16" result="pass"/><test-case name="K-QuantExprWithout-17" result="pass"/><test-case name="K-QuantExprWithout-18" result="pass"/><test-case name="K-QuantExprWithout-19" result="pass"/><test-case name="K-QuantExprWithout-20" result="pass"/><test-case name="K-QuantExprWithout-21" result="pass"/><test-case name="K-QuantExprWithout-22" result="pass"/><test-case name="K-QuantExprWithout-23" result="pass"/><test-case name="K-QuantExprWithout-24" result="pass"/><test-case name="K-QuantExprWithout-25" result="pass"/><test-case name="K-QuantExprWithout-26" result="pass"/><test-case name="K-QuantExprWithout-27" result="pass"/><test-case name="K-QuantExprWithout-28" result="pass"/><test-case name="K-QuantExprWithout-29" result="pass"/><test-case name="K-QuantExprWithout-30" result="pass"/><test-case name="K-QuantExprWithout-31" result="pass"/><test-case name="K-QuantExprWithout-32" result="pass"/><test-case name="K-QuantExprWithout-33" result="pass"/><test-case name="K-QuantExprWithout-34" result="pass"/><test-case name="K-QuantExprWithout-35" result="pass"/><test-case name="K-QuantExprWithout-36" result="pass"/><test-case name="K-QuantExprWithout-37" result="pass"/><test-case name="K-QuantExprWithout-38" result="pass"/><test-case name="K-QuantExprWithout-39" result="pass"/><test-case name="K-QuantExprWithout-40" result="pass"/><test-case name="K-QuantExprWithout-41" result="pass"/><test-case name="K-QuantExprWithout-42" result="pass"/><test-case name="K-QuantExprWithout-43" result="pass"/><test-case name="K-QuantExprWithout-44" result="pass"/><test-case name="K-QuantExprWithout-45" result="pass"/><test-case name="K-QuantExprWithout-46" result="pass"/><test-case name="K-QuantExprWithout-47" result="pass"/><test-case name="K-QuantExprWithout-48" result="pass"/><test-case name="K-QuantExprWithout-49" result="pass"/><test-case name="K-QuantExprWithout-50" result="pass"/><test-case name="K-QuantExprWithout-51" result="pass"/><test-case name="K-QuantExprWithout-52" result="pass"/><test-case name="K-QuantExprWithout-53" result="pass"/><test-case name="K-QuantExprWithout-54" result="pass"/><test-case name="K-QuantExprWithout-55" result="pass"/><test-case name="K-QuantExprWithout-56" result="pass"/><test-case name="K-QuantExprWithout-57" result="pass"/><test-case name="K-QuantExprWithout-58" result="pass"/><test-case name="K-QuantExprWithout-59" result="pass"/><test-case name="K-QuantExprWithout-60" result="pass"/><test-case name="K-QuantExprWithout-61" result="pass"/><test-case name="K-QuantExprWithout-62" result="pass"/><test-case name="K-QuantExprWithout-63" result="pass"/><test-case name="K-QuantExprWithout-64" result="pass"/><test-case name="K-QuantExprWithout-65" result="pass"/><test-case name="K-QuantExprWithout-66" result="pass"/><test-case name="K-QuantExprWithout-67" result="pass"/><test-case name="K-QuantExprWithout-68" result="pass"/><test-case name="K-QuantExprWithout-69" result="pass"/><test-case name="K-QuantExprWithout-70" result="pass"/><test-case name="K-QuantExprWithout-71" result="pass"/><test-case name="K-QuantExprWithout-72" result="pass"/><test-case name="K-QuantExprWithout-73" result="pass"/><test-case name="K-QuantExprWithout-74" result="pass"/><test-case name="K-QuantExprWithout-75" result="pass"/><test-case name="K-QuantExprWithout-76" result="pass"/><test-case name="K-QuantExprWithout-77" result="pass"/><test-case name="K-QuantExprWithout-78" result="pass"/><test-case name="K-QuantExprWithout-79" result="pass"/><test-case name="K-QuantExprWithout-80" result="pass"/><test-case name="K-QuantExprWithout-81" result="pass"/><test-case name="K-QuantExprWithout-82" result="pass"/><test-case name="K-QuantExprWithout-83" result="pass"/><test-case name="K-QuantExprWithout-84" result="pass"/><test-case name="K-QuantExprWithout-85" result="pass"/><test-case name="K-QuantExprWithout-86" result="pass"/><test-case name="K-QuantExprWithout-87" result="pass"/><test-case name="K-QuantExprWithout-88" result="pass"/><test-case name="K-QuantExprWithout-89" result="pass"/><test-case name="K-QuantExprWithout-90" result="pass"/><test-case name="K-QuantExprWithout-91" result="pass"/><test-case name="K-QuantExprWithout-92" result="pass"/><test-case name="K-QuantExprWithout-93" result="pass"/><test-case name="K-QuantExprWithout-94" result="pass"/><test-case name="K-QuantExprWithout-95" result="pass"/><test-case name="K-QuantExprWithout-96" result="pass"/><test-case name="K-QuantExprWithout-97" result="pass"/><test-case name="K-QuantExprWithout-98" result="pass"/><test-case name="K-QuantExprWithout-99" result="pass"/><test-case name="K2-QuantExprWithout-1" result="pass"/><test-case name="K2-QuantExprWithout-2" result="pass"/><test-case name="K2-QuantExprWithout-3" result="pass"/><test-case name="K2-QuantExprWithout-4" result="pass"/><test-case name="K2-QuantExprWithout-5" result="pass"/><test-case name="K2-QuantExprWithout-6" result="pass"/><test-case name="K2-QuantExprWithout-7" result="pass"/><test-case name="K2-QuantExprWithout-8" result="pass"/><test-case name="K2-QuantExprWithout-9" result="pass"/><test-case name="quantExpr-60" result="pass"/><test-case name="quantexpr-61" result="pass"/><test-case name="quantexpr-62" result="pass"/><test-case name="quantexpr-63" result="pass"/><test-case name="quantexpr-64" result="pass"/><test-case name="quantexpr-65" result="pass"/><test-case name="K-QuantExprWith-1" result="pass"/><test-case name="K-QuantExprWith-2" result="pass"/><test-case name="K-QuantExprWith-3" result="pass"/><test-case name="K-QuantExprWith-4" result="pass"/><test-case name="K-QuantExprWith-5" result="pass"/><test-case name="K-QuantExprWith-6" result="pass"/><test-case name="K-QuantExprWith-7" result="pass"/><test-case name="K-QuantExprWith-8" result="pass"/><test-case name="K-QuantExprWith-9" result="pass"/><test-case name="K-QuantExprWith-10" result="pass"/><test-case name="K-QuantExprWith-11" result="pass"/><test-case name="K-QuantExprWith-12" result="pass"/><test-case name="K-QuantExprWith-13" result="pass"/><test-case name="K-QuantExprWith-14" result="pass"/><test-case name="K-QuantExprWith-15" result="pass"/><test-case name="K-QuantExprWith-16" result="pass"/><test-case name="K-QuantExprWith-17" result="pass"/><test-case name="K-QuantExprWith-18" result="pass"/><test-case name="K-QuantExprWith-19" result="pass"/><test-case name="K-QuantExprWith-20" result="pass"/><test-case name="K-QuantExprWith-21" result="pass"/><test-case name="K-QuantExprWith-22" result="pass"/><test-case name="K-QuantExprWith-23" result="pass"/><test-case name="K-QuantExprWith-24" result="pass"/><test-case name="instanceof1" result="pass"/><test-case name="instanceof2" result="pass"/><test-case name="instanceof3" result="pass"/><test-case name="instanceof4" result="pass"/><test-case name="instanceof5" result="pass"/><test-case name="instanceof6" result="pass"/><test-case name="instanceof7" result="pass"/><test-case name="instanceof8" result="pass"/><test-case name="instanceof9" result="pass"/><test-case name="instanceof10" result="pass"/><test-case name="instanceof11" result="pass"/><test-case name="instanceof12" result="pass"/><test-case name="instanceof13" result="pass"/><test-case name="instanceof14" result="pass"/><test-case name="instanceof15" result="pass"/><test-case name="instanceof16" result="pass"/><test-case name="instanceof17" result="pass"/><test-case name="instanceof18" result="pass"/><test-case name="instanceof19" result="pass"/><test-case name="instanceof20" result="pass"/><test-case name="instanceof21" result="pass"/><test-case name="instanceof22" result="pass"/><test-case name="instanceof23" result="pass"/><test-case name="instanceof24" result="pass"/><test-case name="instanceof25" result="pass"/><test-case name="instanceof26" result="pass"/><test-case name="instanceof27" result="pass"/><test-case name="instanceof28" result="pass"/><test-case name="instanceof29" result="pass"/><test-case name="instanceof30" result="pass"/><test-case name="instanceof31" result="pass"/><test-case name="instanceof32" result="pass"/><test-case name="instanceof33" result="pass"/><test-case name="instanceof34" result="pass"/><test-case name="instanceof35" result="pass"/><test-case name="instanceof36" result="pass"/><test-case name="instanceof37" result="pass"/><test-case name="instanceof38" result="pass"/><test-case name="instanceof39" result="pass"/><test-case name="instanceof40" result="pass"/><test-case name="instanceof41" result="pass"/><test-case name="instanceof42" result="pass"/><test-case name="instanceof43" result="pass"/><test-case name="instanceof44" result="pass"/><test-case name="instanceof45" result="pass"/><test-case name="instanceof46" result="pass"/><test-case name="instanceof47" result="pass"/><test-case name="instanceof48" result="pass"/><test-case name="instanceof49" result="pass"/><test-case name="instanceof50" result="pass"/><test-case name="instanceof51" result="pass"/><test-case name="instanceof52" result="pass"/><test-case name="instanceof53" result="pass"/><test-case name="instanceof54" result="pass"/><test-case name="instanceof55" result="pass"/><test-case name="instanceof56" result="pass"/><test-case name="instanceof57" result="pass"/><test-case name="instanceof58" result="pass"/><test-case name="instanceof59" result="pass"/><test-case name="instanceof60" result="pass"/><test-case name="instanceof61" result="pass"/><test-case name="instanceof62" result="pass"/><test-case name="instanceof63" result="pass"/><test-case name="instanceof64" result="pass"/><test-case name="instanceof65" result="pass"/><test-case name="instanceof66" result="pass"/><test-case name="instanceof67" result="pass"/><test-case name="instanceof68" result="pass"/><test-case name="instanceof69" result="pass"/><test-case name="instanceof70" result="pass"/><test-case name="instanceof71" result="pass"/><test-case name="instanceof72" result="pass"/><test-case name="instanceof73" result="pass"/><test-case name="instanceof74" result="pass"/><test-case name="instanceof75" result="pass"/><test-case name="instanceof76" result="pass"/><test-case name="instanceof77" result="pass"/><test-case name="instanceof78" result="pass"/><test-case name="instanceof79" result="pass"/><test-case name="instanceof80" result="pass"/><test-case name="instanceof81" result="pass"/><test-case name="instanceof82" result="pass"/><test-case name="instanceof83" result="pass"/><test-case name="instanceof84" result="pass"/><test-case name="instanceof85" result="pass"/><test-case name="instanceof86" result="pass"/><test-case name="instanceof87" result="pass"/><test-case name="instanceof88" result="pass"/><test-case name="instanceof89" result="pass"/><test-case name="instanceof90" result="pass"/><test-case name="instanceof91" result="pass"/><test-case name="instanceof92" result="pass"/><test-case name="instanceof93" result="pass"/><test-case name="instanceof94" result="pass"/><test-case name="instanceof95" result="pass"/><test-case name="instanceof96" result="pass"/><test-case name="instanceof97" result="pass"/><test-case name="instanceof98" result="pass"/><test-case name="instanceof99" result="pass"/><test-case name="instanceof100" result="pass"/><test-case name="instanceof101" result="pass"/><test-case name="instanceof102" result="pass"/><test-case name="instanceof103" result="pass"/><test-case name="instanceof104" result="pass"/><test-case name="instanceof105" result="pass"/><test-case name="instanceof106" result="pass"/><test-case name="instanceof107" result="pass"/><test-case name="instanceof108" result="pass"/><test-case name="instanceof109" result="pass"/><test-case name="instanceof110" result="pass"/><test-case name="K-SeqExprInstanceOf-1" result="pass"/><test-case name="K-SeqExprInstanceOf-2" result="pass"/><test-case name="K-SeqExprInstanceOf-3" result="pass"/><test-case name="K-SeqExprInstanceOf-4" result="pass"/><test-case name="K-SeqExprInstanceOf-5" result="pass"/><test-case name="K-SeqExprInstanceOf-6" result="pass"/><test-case name="K-SeqExprInstanceOf-7" result="pass"/><test-case name="K-SeqExprInstanceOf-8" result="pass"/><test-case name="K-SeqExprInstanceOf-9" result="pass"/><test-case name="K-SeqExprInstanceOf-10" result="pass"/><test-case name="K-SeqExprInstanceOf-11" result="pass"/><test-case name="K-SeqExprInstanceOf-12" result="pass"/><test-case name="K-SeqExprInstanceOf-13" result="pass"/><test-case name="K-SeqExprInstanceOf-14" result="pass"/><test-case name="K-SeqExprInstanceOf-15" result="pass"/><test-case name="K-SeqExprInstanceOf-16" result="pass"/><test-case name="K-SeqExprInstanceOf-17" result="pass"/><test-case name="K-SeqExprInstanceOf-18" result="pass"/><test-case name="K-SeqExprInstanceOf-19" result="pass"/><test-case name="K-SeqExprInstanceOf-20" result="pass"/><test-case name="K-SeqExprInstanceOf-21" result="pass"/><test-case name="K-SeqExprInstanceOf-22" result="pass"/><test-case name="K-SeqExprInstanceOf-23" result="pass"/><test-case name="K-SeqExprInstanceOf-24" result="pass"/><test-case name="K-SeqExprInstanceOf-25" result="pass"/><test-case name="K-SeqExprInstanceOf-26" result="pass"/><test-case name="K-SeqExprInstanceOf-27" result="pass"/><test-case name="K-SeqExprInstanceOf-28" result="pass"/><test-case name="K-SeqExprInstanceOf-29" result="pass"/><test-case name="K-SeqExprInstanceOf-30" result="pass"/><test-case name="K-SeqExprInstanceOf-31" result="pass"/><test-case name="K-SeqExprInstanceOf-32" result="pass"/><test-case name="K-SeqExprInstanceOf-33" result="pass"/><test-case name="K-SeqExprInstanceOf-34" result="pass"/><test-case name="K-SeqExprInstanceOf-35" result="pass"/><test-case name="K-SeqExprInstanceOf-36" result="pass"/><test-case name="K-SeqExprInstanceOf-37" result="pass"/><test-case name="K-SeqExprInstanceOf-38" result="pass"/><test-case name="K-SeqExprInstanceOf-39" result="pass"/><test-case name="K-SeqExprInstanceOf-40" result="pass"/><test-case name="K-SeqExprInstanceOf-41" result="pass"/><test-case name="K-SeqExprInstanceOf-42" result="pass"/><test-case name="K-SeqExprInstanceOf-43" result="pass"/><test-case name="K-SeqExprInstanceOf-44" result="pass"/><test-case name="K-SeqExprInstanceOf-45" result="pass"/><test-case name="K-SeqExprInstanceOf-46" result="pass"/><test-case name="K-SeqExprInstanceOf-47" result="pass"/><test-case name="K-SeqExprInstanceOf-48" result="pass"/><test-case name="K-SeqExprInstanceOf-49" result="pass"/><test-case name="K-SeqExprInstanceOf-50" result="pass"/><test-case name="K-SeqExprInstanceOf-51" result="pass"/><test-case name="K-SeqExprInstanceOf-52" result="pass"/><test-case name="K-SeqExprInstanceOf-53" result="pass"/><test-case name="K-SeqExprInstanceOf-54" result="pass"/><test-case name="K-SeqExprInstanceOf-55" result="pass"/><test-case name="K-SeqExprInstanceOf-56" result="pass"/><test-case name="K-SeqExprInstanceOf-57" result="pass"/><test-case name="K-SeqExprInstanceOf-58" result="pass"/><test-case name="K-SeqExprInstanceOf-59" result="pass"/><test-case name="K-SeqExprInstanceOf-60" result="pass"/><test-case name="K-SeqExprInstanceOf-61" result="pass"/><test-case name="K-SeqExprInstanceOf-62" result="pass"/><test-case name="K-SeqExprInstanceOf-63" result="pass"/><test-case name="K-SeqExprInstanceOf-64" result="pass"/><test-case name="K-SeqExprInstanceOf-65" result="pass"/><test-case name="K-SeqExprInstanceOf-66" result="pass"/><test-case name="K2-SeqExprInstanceOf-1" result="pass"/><test-case name="K2-SeqExprInstanceOf-2" result="pass"/><test-case name="K2-SeqExprInstanceOf-3" result="pass"/><test-case name="K2-SeqExprInstanceOf-4" result="pass"/><test-case name="K2-SeqExprInstanceOf-5" result="pass"/><test-case name="K2-SeqExprInstanceOf-6" result="pass"/><test-case name="K2-SeqExprInstanceOf-7" result="pass"/><test-case name="K2-SeqExprInstanceOf-8" result="pass"/><test-case name="K2-SeqExprInstanceOf-9" result="pass"/><test-case name="K2-SeqExprInstanceOf-10" result="pass"/><test-case name="K2-SeqExprInstanceOf-11" result="pass"/><test-case name="K2-SeqExprInstanceOf-12" result="pass"/><test-case name="K2-SeqExprInstanceOf-13" result="pass"/><test-case name="K2-SeqExprInstanceOf-14" result="pass"/><test-case name="K2-SeqExprInstanceOf-15" result="pass"/><test-case name="K2-SeqExprInstanceOf-16" result="pass"/><test-case name="K2-SeqExprInstanceOf-17" result="pass"/><test-case name="K2-SeqExprInstanceOf-18" result="pass"/><test-case name="K2-SeqExprInstanceOf-19" result="pass"/><test-case name="K2-SeqExprInstanceOf-20" result="pass"/><test-case name="K2-SeqExprInstanceOf-21" result="pass"/><test-case name="K2-SeqExprInstanceOf-22" result="pass"/><test-case name="K2-SeqExprInstanceOf-23" result="pass"/><test-case name="K2-SeqExprInstanceOf-24" result="pass"/><test-case name="K2-SeqExprInstanceOf-25" result="pass"/><test-case name="K2-SeqExprInstanceOf-26" result="pass"/><test-case name="K2-SeqExprInstanceOf-27" result="pass"/><test-case name="K2-SeqExprInstanceOf-28" result="pass"/><test-case name="K2-SeqExprInstanceOf-29" result="pass"/><test-case name="K2-SeqExprInstanceOf-30" result="pass"/><test-case name="K2-SeqExprInstanceOf-31" result="pass"/><test-case name="K2-SeqExprInstanceOf-32" result="pass"/><test-case name="K2-SeqExprInstanceOf-33" result="pass"/><test-case name="K2-SeqExprInstanceOf-34" result="pass"/><test-case name="K2-SeqExprInstanceOf-35" result="pass"/><test-case name="K2-SeqExprInstanceOf-36" result="pass"/><test-case name="K2-SeqExprInstanceOf-37" result="pass"/><test-case name="K2-SeqExprInstanceOf-38" result="pass"/><test-case name="K2-SeqExprInstanceOf-39" result="pass"/><test-case name="K2-SeqExprInstanceOf-40" result="pass"/><test-case name="K2-SeqExprInstanceOf-41" result="pass"/><test-case name="K2-SeqExprInstanceOf-42" result="pass"/><test-case name="K2-SeqExprInstanceOf-43" result="pass"/><test-case name="K2-SeqExprInstanceOf-44" result="pass"/><test-case name="K2-SeqExprInstanceOf-45" result="pass"/><test-case name="K2-SeqExprInstanceOf-46" result="pass"/><test-case name="K2-SeqExprInstanceOf-47" result="pass"/><test-case name="K2-SeqExprInstanceOf-48" result="pass"/><test-case name="K2-SeqExprInstanceOf-49" result="pass"/><test-case name="K2-SeqExprInstanceOf-50" result="pass"/><test-case name="K2-SeqExprInstanceOf-51" result="pass"/><test-case name="K2-SeqExprInstanceOf-52" result="pass"/><test-case name="K2-SeqExprInstanceOf-53" result="pass"/><test-case name="K2-SeqExprInstanceOf-54" result="pass"/><test-case name="K2-SeqExprInstanceOf-55" result="pass"/><test-case name="K2-SeqExprInstanceOf-56" result="pass"/><test-case name="K2-SeqExprInstanceOf-57" result="pass"/><test-case name="K2-SeqExprInstanceOf-58" result="pass"/><test-case name="K2-SeqExprInstanceOf-59" result="pass"/><test-case name="K2-SeqExprInstanceOf-60" result="pass"/><test-case name="K2-SeqExprInstanceOf-61" result="pass"/><test-case name="K2-SeqExprInstanceOf-62" result="pass"/><test-case name="K2-SeqExprInstanceOf-63" result="pass"/><test-case name="K2-SeqExprInstanceOf-64" result="pass"/><test-case name="K2-SeqExprInstanceOf-65" result="pass"/><test-case name="K2-SeqExprInstanceOf-66" result="pass"/><test-case name="K2-SeqExprInstanceOf-67" result="pass"/><test-case name="K2-SeqExprInstanceOf-68" result="pass"/><test-case name="K2-SeqExprInstanceOf-69" result="pass"/><test-case name="K2-SeqExprInstanceOf-70" result="pass"/><test-case name="K2-SeqExprInstanceOf-71" result="pass"/><test-case name="K2-SeqExprInstanceOf-72" result="pass"/><test-case name="K2-SeqExprInstanceOf-73" result="pass"/><test-case name="K2-SeqExprInstanceOf-74" result="pass"/><test-case name="K2-SeqExprInstanceOf-75" result="pass"/><test-case name="K2-SeqExprInstanceOf-76" result="pass"/><test-case name="K2-SeqExprInstanceOf-77" result="pass"/><test-case name="K2-SeqExprInstanceOf-78" result="pass"/><test-case name="K2-SeqExprInstanceOf-79" result="pass"/><test-case name="K2-SeqExprInstanceOf-80" result="pass"/><test-case name="K2-SeqExprInstanceOf-81" result="pass"/><test-case name="K2-SeqExprInstanceOf-82" result="pass"/><test-case name="K2-SeqExprInstanceOf-83" result="pass"/><test-case name="K2-SeqExprInstanceOf-84" result="pass"/><test-case name="K2-SeqExprInstanceOf-85" result="pass"/><test-case name="K2-SeqExprInstanceOf-86" result="pass"/><test-case name="K2-SeqExprInstanceOf-87" result="pass"/><test-case name="K2-SeqExprInstanceOf-88" result="pass"/><test-case name="K2-SeqExprInstanceOf-89" result="pass"/><test-case name="K2-SeqExprInstanceOf-90" result="pass"/><test-case name="K2-SeqExprInstanceOf-91" result="pass"/><test-case name="K2-SeqExprInstanceOf-92" result="pass"/><test-case name="K2-SeqExprInstanceOf-93" result="pass"/><test-case name="K2-SeqExprInstanceOf-94" result="pass"/><test-case name="K2-SeqExprInstanceOf-95" result="pass"/><test-case name="K2-SeqExprInstanceOf-96" result="pass"/><test-case name="K2-SeqExprInstanceOf-97" result="pass"/><test-case name="K2-SeqExprInstanceOf-98" result="pass"/><test-case name="typeswitchhc1" result="pass"/><test-case name="typeswitchhc2" result="pass"/><test-case name="typeswitchhc3" result="pass"/><test-case name="typeswitchhc4" result="pass"/><test-case name="typeswitchhc5" result="pass"/><test-case name="typeswitchhc6" result="pass"/><test-case name="typeswitchhc7" result="pass"/><test-case name="typeswitchhc8" result="pass"/><test-case name="typeswitchhc9" result="pass"/><test-case name="typeswitchhc10" result="pass"/><test-case name="typeswitchhc11" result="pass"/><test-case name="typeswitchhc12" result="fail"/><test-case name="typeswitchhc13" result="pass"/><test-case name="typeswitchhc14" result="pass"/><test-case name="typeswitchhc15" result="pass"/><test-case name="typeswitchhc16" result="pass"/><test-case name="typeswitchhc17" result="pass"/><test-case name="typeswitchhc18" result="pass"/><test-case name="typeswitchhc19" result="pass"/><test-case name="typeswitchhc20" result="pass"/><test-case name="typeswitchhc21" result="pass"/><test-case name="typeswitchhc22" result="pass"/><test-case name="typeswitchhc23" result="pass"/><test-case name="typeswitchhc24" result="pass"/><test-case name="typeswitchhc25" result="pass"/><test-case name="K-sequenceExprTypeswitch-1" result="pass"/><test-case name="K-sequenceExprTypeswitch-2" result="pass"/><test-case name="K-sequenceExprTypeswitch-3" result="pass"/><test-case name="K-sequenceExprTypeswitch-4" result="pass"/><test-case name="K-sequenceExprTypeswitch-5" result="pass"/><test-case name="K-sequenceExprTypeswitch-6" result="pass"/><test-case name="K-sequenceExprTypeswitch-7" result="pass"/><test-case name="K-sequenceExprTypeswitch-8" result="pass"/><test-case name="K2-sequenceExprTypeswitch-1" result="pass"/><test-case name="K2-sequenceExprTypeswitch-2" result="pass"/><test-case name="K2-sequenceExprTypeswitch-3" result="pass"/><test-case name="K2-sequenceExprTypeswitch-4" result="pass"/><test-case name="K2-sequenceExprTypeswitch-5" result="pass"/><test-case name="K2-sequenceExprTypeswitch-6" result="pass"/><test-case name="K2-sequenceExprTypeswitch-7" result="pass"/><test-case name="K2-sequenceExprTypeswitch-8" result="pass"/><test-case name="K2-sequenceExprTypeswitch-9" result="pass"/><test-case name="K2-sequenceExprTypeswitch-10" result="pass"/><test-case name="K2-sequenceExprTypeswitch-11" result="pass"/><test-case name="K2-sequenceExprTypeswitch-12" result="fail"/><test-case name="K2-sequenceExprTypeswitch-13" result="fail"/><test-case name="K2-sequenceExprTypeswitch-14" result="pass"/><test-case name="K2-sequenceExprTypeswitch-15" result="pass"/><test-case name="K2-sequenceExprTypeswitch-16" result="fail"/><test-case name="cast-derived-1" result="pass"/><test-case name="cast-derived-2" result="pass"/><test-case name="cast-derived-3" result="pass"/><test-case name="cast-derived-4" result="pass"/><test-case name="cast-derived-5" result="pass"/><test-case name="cast-derived-6" result="pass"/><test-case name="cast-derived-7" result="pass"/><test-case name="cast-derived-8" result="pass"/><test-case name="cast-derived-9" result="pass"/><test-case name="cast-derived-10" result="pass"/><test-case name="cast-derived-11" result="pass"/><test-case name="cast-derived-12" result="pass"/><test-case name="cast-derived-13" result="pass"/><test-case name="cast-derived-14" result="pass"/><test-case name="cast-derived-15" result="pass"/><test-case name="cast-derived-16" result="pass"/><test-case name="cast-derived-17" result="pass"/><test-case name="cast-derived-18" result="pass"/><test-case name="cast-derived-19" result="pass"/><test-case name="cast-derived-20" result="pass"/><test-case name="cast-derived-21" result="pass"/><test-case name="cast-to-parent-1" result="pass"/><test-case name="cast-to-parent-2" result="pass"/><test-case name="cast-to-parent-3" result="pass"/><test-case name="cast-to-parent-4" result="pass"/><test-case name="cast-to-parent-5" result="pass"/><test-case name="cast-to-parent-6" result="pass"/><test-case name="cast-to-parent-7" result="pass"/><test-case name="cast-to-parent-8" result="pass"/><test-case name="cast-to-parent-9" result="pass"/><test-case name="cast-to-parent-10" result="pass"/><test-case name="cast-to-parent-11" result="pass"/><test-case name="cast-to-parent-12" result="pass"/><test-case name="cast-to-parent-13" result="pass"/><test-case name="cast-to-parent-14" result="pass"/><test-case name="cast-to-parent-15" result="pass"/><test-case name="cast-to-parent-16" result="pass"/><test-case name="cast-to-parent-17" result="pass"/><test-case name="cast-to-parent-18" result="pass"/><test-case name="cast-to-parent-19" result="pass"/><test-case name="cast-to-parent-20" result="pass"/><test-case name="cast-to-parent-21" result="pass"/><test-case name="cast-within-1" result="pass"/><test-case name="cast-within-2" result="pass"/><test-case name="cast-within-3" result="pass"/><test-case name="cast-within-4" result="pass"/><test-case name="cast-within-5" result="pass"/><test-case name="cast-within-6" result="pass"/><test-case name="cast-within-7" result="pass"/><test-case name="cast-within-8" result="pass"/><test-case name="cast-within-9" result="pass"/><test-case name="cast-within-10" result="pass"/><test-case name="cast-within-11" result="pass"/><test-case name="cast-within-12" result="pass"/><test-case name="cast-within-13" result="pass"/><test-case name="cast-within-14" result="pass"/><test-case name="cast-within-15" result="pass"/><test-case name="cast-within-16" result="pass"/><test-case name="cast-within-17" result="pass"/><test-case name="cast-within-18" result="pass"/><test-case name="cast-within-19" result="pass"/><test-case name="cast-within-20" result="pass"/><test-case name="cast-within-21" result="pass"/><test-case name="casthc1" result="pass"/><test-case name="casthc2" result="pass"/><test-case name="casthc3" result="pass"/><test-case name="casthc4" result="pass"/><test-case name="casthc5" result="pass"/><test-case name="casthc6" result="pass"/><test-case name="casthc7" result="pass"/><test-case name="casthc8" result="pass"/><test-case name="casthc9" result="pass"/><test-case name="casthc10" result="pass"/><test-case name="casthc11" result="pass"/><test-case name="casthc12" result="pass"/><test-case name="casthc13" result="pass"/><test-case name="casthc14" result="pass"/><test-case name="casthc15" result="pass"/><test-case name="casthc16" result="pass"/><test-case name="casthc17" result="fail"/><test-case name="casthc18" result="pass"/><test-case name="casthc19" result="pass"/><test-case name="casthc20" result="pass"/><test-case name="casthc21" result="pass"/><test-case name="casthc22" result="pass"/><test-case name="casthc23" result="pass"/><test-case name="casthc24" result="pass"/><test-case name="casthc25" result="pass"/><test-case name="casthc26" result="pass"/><test-case name="casthc27" result="pass"/><test-case name="casthc28" result="pass"/><test-case name="casthc29" result="pass"/><test-case name="casthc30" result="pass"/><test-case name="casthc31" result="pass"/><test-case name="casthc32" result="pass"/><test-case name="casthc33" result="pass"/><test-case name="casthc34" result="pass"/><test-case name="casthc35" result="pass"/><test-case name="casthc36" result="pass"/><test-case name="casthc37" result="pass"/><test-case name="casthc38" result="pass"/><test-case name="casthc39" result="pass"/><test-case name="casthc40" result="pass"/><test-case name="casthc41" result="pass"/><test-case name="casthc42" result="pass"/><test-case name="casthc43" result="pass"/><test-case name="CastAs001" result="pass"/><test-case name="CastAs002" result="pass"/><test-case name="CastAs003" result="pass"/><test-case name="CastAs004" result="pass"/><test-case name="CastAs005" result="pass"/><test-case name="CastAs006" result="pass"/><test-case name="CastAs007" result="pass"/><test-case name="CastAs008" result="pass"/><test-case name="CastAs009" result="pass"/><test-case name="CastAs010" result="pass"/><test-case name="CastAs011" result="pass"/><test-case name="CastAs012" result="pass"/><test-case name="CastAs013" result="pass"/><test-case name="CastAs014" result="pass"/><test-case name="CastAs015" result="pass"/><test-case name="CastAs016" result="pass"/><test-case name="CastAs017" result="pass"/><test-case name="CastAs018" result="pass"/><test-case name="CastAs019" result="pass"/><test-case name="CastAs020" result="pass"/><test-case name="CastAs021" result="pass"/><test-case name="CastAs022" result="pass"/><test-case name="CastAs023" result="pass"/><test-case name="CastAs024" result="pass"/><test-case name="CastAs025" result="pass"/><test-case name="CastAs026" result="pass"/><test-case name="CastAs027" result="pass"/><test-case name="CastAs028" result="pass"/><test-case name="CastAs029" result="pass"/><test-case name="CastAs030" result="pass"/><test-case name="CastAs031" result="pass"/><test-case name="CastAs032" result="pass"/><test-case name="CastAs033" result="pass"/><test-case name="CastAs034" result="pass"/><test-case name="CastAs035" result="pass"/><test-case name="CastAs036" result="pass"/><test-case name="CastAs037" result="pass"/><test-case name="CastAs038" result="pass"/><test-case name="CastAs039" result="pass"/><test-case name="CastAs040" result="pass"/><test-case name="CastAs041" result="pass"/><test-case name="CastAs042" result="pass"/><test-case name="CastAs043" result="pass"/><test-case name="CastAs044" result="pass"/><test-case name="CastAs045" result="pass"/><test-case name="CastAs046" result="pass"/><test-case name="CastAs047" result="pass"/><test-case name="CastAs048" result="pass"/><test-case name="CastAs049" result="pass"/><test-case name="CastAs050" result="pass"/><test-case name="CastAs051" result="pass"/><test-case name="CastAs052" result="pass"/><test-case name="CastAs053" result="pass"/><test-case name="CastAs054" result="pass"/><test-case name="CastAs055" result="pass"/><test-case name="CastAs056" result="pass"/><test-case name="CastAs057" result="pass"/><test-case name="CastAs058" result="pass"/><test-case name="CastAs059" result="pass"/><test-case name="CastAs060" result="pass"/><test-case name="CastAs061" result="pass"/><test-case name="CastAs062" result="pass"/><test-case name="CastAs063" result="pass"/><test-case name="CastAs064" result="pass"/><test-case name="CastAs065" result="pass"/><test-case name="CastAs066" result="pass"/><test-case name="CastAs067" result="pass"/><test-case name="CastAs068" result="pass"/><test-case name="CastAs069" result="pass"/><test-case name="CastAs070" result="pass"/><test-case name="CastAs071" result="pass"/><test-case name="CastAs072" result="pass"/><test-case name="CastAs073" result="pass"/><test-case name="CastAs074" result="pass"/><test-case name="CastAs075" result="pass"/><test-case name="CastAs076" result="pass"/><test-case name="CastAs077" result="pass"/><test-case name="CastAs078" result="pass"/><test-case name="CastAs079" result="pass"/><test-case name="CastAs080" result="pass"/><test-case name="CastAs081" result="pass"/><test-case name="CastAs082" result="pass"/><test-case name="CastAs083" result="pass"/><test-case name="CastAs084" result="pass"/><test-case name="CastAs085" result="pass"/><test-case name="CastAs086" result="pass"/><test-case name="CastAs087" result="pass"/><test-case name="CastAs088" result="pass"/><test-case name="CastAs089" result="pass"/><test-case name="CastAs090" result="pass"/><test-case name="CastAs091" result="pass"/><test-case name="CastAs092" result="pass"/><test-case name="CastAs093" result="pass"/><test-case name="CastAs094" result="pass"/><test-case name="CastAs095" result="pass"/><test-case name="CastAs096" result="pass"/><test-case name="CastAs097" result="pass"/><test-case name="CastAs098" result="pass"/><test-case name="CastAs099" result="pass"/><test-case name="CastAs100" result="pass"/><test-case name="CastAs101" result="pass"/><test-case name="CastAs102" result="pass"/><test-case name="CastAs103" result="pass"/><test-case name="CastAs104" result="pass"/><test-case name="CastAs105" result="pass"/><test-case name="CastAs106" result="pass"/><test-case name="CastAs107" result="pass"/><test-case name="CastAs108" result="pass"/><test-case name="CastAs109" result="pass"/><test-case name="CastAs110" result="pass"/><test-case name="CastAs111" result="pass"/><test-case name="CastAs112" result="pass"/><test-case name="CastAs113" result="pass"/><test-case name="CastAs114" result="pass"/><test-case name="CastAs115" result="pass"/><test-case name="CastAs116" result="pass"/><test-case name="CastAs117" result="pass"/><test-case name="CastAs118" result="pass"/><test-case name="CastAs119" result="pass"/><test-case name="CastAs120" result="pass"/><test-case name="CastAs121" result="pass"/><test-case name="CastAs122" result="pass"/><test-case name="CastAs123" result="pass"/><test-case name="CastAs124" result="pass"/><test-case name="CastAs125" result="pass"/><test-case name="CastAs126" result="pass"/><test-case name="CastAs127" result="pass"/><test-case name="CastAs128" result="pass"/><test-case name="CastAs129" result="pass"/><test-case name="CastAs130" result="pass"/><test-case name="CastAs131" result="pass"/><test-case name="CastAs132" result="pass"/><test-case name="CastAs133" result="pass"/><test-case name="CastAs134" result="pass"/><test-case name="CastAs135" result="pass"/><test-case name="CastAs136" result="pass"/><test-case name="CastAs137" result="pass"/><test-case name="CastAs138" result="pass"/><test-case name="CastAs139" result="pass"/><test-case name="CastAs140" result="pass"/><test-case name="CastAs141" result="pass"/><test-case name="CastAs142" result="pass"/><test-case name="CastAs143" result="pass"/><test-case name="CastAs144" result="pass"/><test-case name="CastAs145" result="pass"/><test-case name="CastAs146" result="pass"/><test-case name="CastAs147" result="pass"/><test-case name="CastAs148" result="pass"/><test-case name="CastAs149" result="pass"/><test-case name="CastAs150" result="pass"/><test-case name="CastAs151" result="pass"/><test-case name="CastAs152" result="pass"/><test-case name="CastAs153" result="pass"/><test-case name="CastAs154" result="pass"/><test-case name="CastAs155" result="pass"/><test-case name="CastAs156" result="pass"/><test-case name="CastAs157" result="pass"/><test-case name="CastAs158" result="pass"/><test-case name="CastAs159" result="pass"/><test-case name="CastAs160" result="pass"/><test-case name="CastAs161" result="pass"/><test-case name="CastAs162" result="pass"/><test-case name="CastAs163" result="pass"/><test-case name="CastAs164" result="pass"/><test-case name="CastAs165" result="pass"/><test-case name="CastAs166" result="pass"/><test-case name="CastAs167" result="pass"/><test-case name="CastAs168" result="pass"/><test-case name="CastAs169" result="fail"/><test-case name="CastAs170" result="pass"/><test-case name="CastAs171" result="pass"/><test-case name="CastAs172" result="pass"/><test-case name="CastAs173" result="pass"/><test-case name="CastAs174" result="pass"/><test-case name="CastAs175" result="fail"/><test-case name="CastAs176" result="pass"/><test-case name="CastAs177" result="fail"/><test-case name="CastAs178" result="pass"/><test-case name="CastAs179" result="pass"/><test-case name="CastAs180" result="pass"/><test-case name="CastAs181" result="pass"/><test-case name="CastAs182" result="pass"/><test-case name="CastAs183" result="pass"/><test-case name="CastAs184" result="pass"/><test-case name="CastAs185" result="pass"/><test-case name="CastAs186" result="pass"/><test-case name="CastAs187" result="pass"/><test-case name="CastAs188" result="pass"/><test-case name="CastAs189" result="pass"/><test-case name="CastAs190" result="pass"/><test-case name="CastAs191" result="pass"/><test-case name="CastAs192" result="pass"/><test-case name="CastAs193" result="pass"/><test-case name="CastAs194" result="pass"/><test-case name="CastAs195" result="pass"/><test-case name="CastAs196" result="pass"/><test-case name="CastAs197" result="pass"/><test-case name="CastAs198" result="pass"/><test-case name="CastAs199" result="pass"/><test-case name="CastAs200" result="pass"/><test-case name="CastAs201" result="pass"/><test-case name="CastAs202" result="pass"/><test-case name="CastAs203" result="pass"/><test-case name="CastAs204" result="fail"/><test-case name="CastAs205" result="pass"/><test-case name="CastAs206" result="pass"/><test-case name="CastAs207" result="pass"/><test-case name="CastAs208" result="pass"/><test-case name="CastAs209" result="pass"/><test-case name="CastAs210" result="pass"/><test-case name="CastAs211" result="fail"/><test-case name="CastAs212" result="fail"/><test-case name="CastAs213" result="pass"/><test-case name="CastAs214" result="pass"/><test-case name="CastAs215" result="pass"/><test-case name="CastAs216" result="pass"/><test-case name="CastAs217" result="pass"/><test-case name="CastAs218" result="pass"/><test-case name="CastAs219" result="pass"/><test-case name="CastAs220" result="pass"/><test-case name="CastAs221" result="pass"/><test-case name="CastAs222" result="pass"/><test-case name="CastAs223" result="pass"/><test-case name="CastAs224" result="pass"/><test-case name="CastAs225" result="pass"/><test-case name="CastAs226" result="pass"/><test-case name="CastAs227" result="pass"/><test-case name="CastAs228" result="pass"/><test-case name="CastAs229" result="pass"/><test-case name="CastAs230" result="pass"/><test-case name="CastAs231" result="pass"/><test-case name="CastAs232" result="pass"/><test-case name="CastAs233" result="pass"/><test-case name="CastAs234" result="pass"/><test-case name="CastAs235" result="pass"/><test-case name="CastAs236" result="pass"/><test-case name="CastAs237" result="pass"/><test-case name="CastAs238" result="pass"/><test-case name="CastAs239" result="pass"/><test-case name="CastAs240" result="pass"/><test-case name="CastAs241" result="pass"/><test-case name="CastAs242" result="pass"/><test-case name="CastAs243" result="pass"/><test-case name="CastAs244" result="pass"/><test-case name="CastAs245" result="pass"/><test-case name="CastAs246" result="pass"/><test-case name="CastAs247" result="pass"/><test-case name="CastAs248" result="pass"/><test-case name="CastAs249" result="pass"/><test-case name="CastAs250" result="pass"/><test-case name="CastAs251" result="pass"/><test-case name="CastAs252" result="pass"/><test-case name="CastAs253" result="pass"/><test-case name="CastAs254" result="pass"/><test-case name="CastAs255" result="pass"/><test-case name="CastAs256" result="pass"/><test-case name="CastAs257" result="pass"/><test-case name="CastAs258" result="pass"/><test-case name="CastAs259" result="pass"/><test-case name="CastAs260" result="pass"/><test-case name="CastAs261" result="pass"/><test-case name="CastAs262" result="pass"/><test-case name="CastAs263" result="pass"/><test-case name="CastAs264" result="pass"/><test-case name="CastAs265" result="pass"/><test-case name="CastAs266" result="pass"/><test-case name="CastAs267" result="pass"/><test-case name="CastAs268" result="pass"/><test-case name="CastAs269" result="pass"/><test-case name="CastAs270" result="pass"/><test-case name="CastAs271" result="pass"/><test-case name="CastAs272" result="pass"/><test-case name="CastAs273" result="pass"/><test-case name="CastAs274" result="pass"/><test-case name="CastAs275" result="pass"/><test-case name="CastAs276" result="pass"/><test-case name="CastAs277" result="pass"/><test-case name="CastAs278" result="pass"/><test-case name="CastAs279" result="pass"/><test-case name="CastAs280" result="pass"/><test-case name="CastAs281" result="pass"/><test-case name="CastAs282" result="pass"/><test-case name="CastAs283" result="pass"/><test-case name="CastAs284" result="pass"/><test-case name="CastAs285" result="pass"/><test-case name="CastAs286" result="pass"/><test-case name="CastAs287" result="pass"/><test-case name="CastAs288" result="pass"/><test-case name="CastAs289" result="pass"/><test-case name="CastAs290" result="pass"/><test-case name="CastAs291" result="pass"/><test-case name="CastAs292" result="pass"/><test-case name="CastAs293" result="pass"/><test-case name="CastAs294" result="pass"/><test-case name="CastAs295" result="pass"/><test-case name="CastAs296" result="pass"/><test-case name="CastAs297" result="pass"/><test-case name="CastAs298" result="pass"/><test-case name="CastAs299" result="pass"/><test-case name="CastAs300" result="pass"/><test-case name="CastAs301" result="pass"/><test-case name="CastAs302" result="pass"/><test-case name="CastAs303" result="pass"/><test-case name="CastAs304" result="pass"/><test-case name="CastAs305" result="pass"/><test-case name="CastAs306" result="pass"/><test-case name="CastAs307" result="pass"/><test-case name="CastAs308" result="pass"/><test-case name="CastAs309" result="pass"/><test-case name="CastAs310" result="pass"/><test-case name="CastAs311" result="pass"/><test-case name="CastAs312" result="pass"/><test-case name="CastAs313" result="pass"/><test-case name="CastAs314" result="pass"/><test-case name="CastAs315" result="pass"/><test-case name="CastAs316" result="pass"/><test-case name="CastAs317" result="pass"/><test-case name="CastAs318" result="pass"/><test-case name="CastAs319" result="pass"/><test-case name="CastAs320" result="pass"/><test-case name="CastAs321" result="pass"/><test-case name="CastAs322" result="pass"/><test-case name="CastAs323" result="pass"/><test-case name="CastAs324" result="pass"/><test-case name="CastAs325" result="pass"/><test-case name="CastAs326" result="pass"/><test-case name="CastAs327" result="pass"/><test-case name="CastAs328" result="pass"/><test-case name="CastAs329" result="pass"/><test-case name="CastAs330" result="pass"/><test-case name="CastAs331" result="pass"/><test-case name="CastAs332" result="pass"/><test-case name="CastAs333" result="pass"/><test-case name="CastAs334" result="pass"/><test-case name="CastAs335" result="pass"/><test-case name="CastAs336" result="pass"/><test-case name="CastAs337" result="pass"/><test-case name="CastAs338" result="pass"/><test-case name="CastAs339" result="pass"/><test-case name="CastAs340" result="pass"/><test-case name="CastAs341" result="pass"/><test-case name="CastAs342" result="pass"/><test-case name="CastAs343" result="pass"/><test-case name="CastAs344" result="pass"/><test-case name="CastAs345" result="pass"/><test-case name="CastAs346" result="pass"/><test-case name="CastAs347" result="pass"/><test-case name="CastAs348" result="pass"/><test-case name="CastAs349" result="pass"/><test-case name="CastAs350" result="pass"/><test-case name="CastAs351" result="pass"/><test-case name="CastAs352" result="pass"/><test-case name="CastAs353" result="pass"/><test-case name="CastAs354" result="pass"/><test-case name="CastAs355" result="pass"/><test-case name="CastAs356" result="pass"/><test-case name="CastAs357" result="pass"/><test-case name="CastAs358" result="pass"/><test-case name="CastAs359" result="pass"/><test-case name="CastAs360" result="pass"/><test-case name="CastAs361" result="pass"/><test-case name="CastAs362" result="pass"/><test-case name="CastAs363" result="pass"/><test-case name="CastAs364" result="pass"/><test-case name="CastAs365" result="pass"/><test-case name="CastAs366" result="pass"/><test-case name="CastAs367" result="pass"/><test-case name="CastAs368" result="pass"/><test-case name="CastAs369" result="pass"/><test-case name="CastAs370" result="pass"/><test-case name="CastAs371" result="pass"/><test-case name="CastAs372" result="pass"/><test-case name="CastAs373" result="pass"/><test-case name="CastAs374" result="pass"/><test-case name="CastAs375" result="pass"/><test-case name="CastAs376" result="pass"/><test-case name="CastAs377" result="pass"/><test-case name="CastAs378" result="pass"/><test-case name="CastAs379" result="pass"/><test-case name="CastAs380" result="pass"/><test-case name="CastAs381" result="pass"/><test-case name="CastAs382" result="pass"/><test-case name="CastAs383" result="pass"/><test-case name="CastAs384" result="pass"/><test-case name="CastAs385" result="pass"/><test-case name="CastAs386" result="pass"/><test-case name="CastAs387" result="pass"/><test-case name="CastAs388" result="pass"/><test-case name="CastAs389" result="pass"/><test-case name="CastAs390" result="pass"/><test-case name="CastAs391" result="pass"/><test-case name="CastAs392" result="pass"/><test-case name="CastAs393" result="pass"/><test-case name="CastAs394" result="pass"/><test-case name="CastAs395" result="pass"/><test-case name="CastAs396" result="pass"/><test-case name="CastAs397" result="pass"/><test-case name="CastAs398" result="pass"/><test-case name="CastAs399" result="pass"/><test-case name="CastAs400" result="pass"/><test-case name="CastAs401" result="pass"/><test-case name="CastAs402" result="pass"/><test-case name="CastAs403" result="pass"/><test-case name="CastAs404" result="pass"/><test-case name="CastAs405" result="pass"/><test-case name="CastAs406" result="pass"/><test-case name="CastAs407" result="pass"/><test-case name="CastAs408" result="pass"/><test-case name="CastAs409" result="pass"/><test-case name="CastAs410" result="pass"/><test-case name="CastAs411" result="pass"/><test-case name="CastAs412" result="pass"/><test-case name="CastAs413" result="pass"/><test-case name="CastAs414" result="pass"/><test-case name="CastAs415" result="pass"/><test-case name="CastAs416" result="pass"/><test-case name="CastAs417" result="pass"/><test-case name="CastAs418" result="pass"/><test-case name="CastAs419" result="pass"/><test-case name="CastAs420" result="pass"/><test-case name="CastAs421" result="pass"/><test-case name="CastAs422" result="pass"/><test-case name="CastAs423" result="pass"/><test-case name="CastAs424" result="pass"/><test-case name="CastAs425" result="pass"/><test-case name="CastAs426" result="pass"/><test-case name="CastAs427" result="pass"/><test-case name="CastAs428" result="pass"/><test-case name="CastAs429" result="pass"/><test-case name="CastAs430" result="pass"/><test-case name="CastAs431" result="pass"/><test-case name="CastAs432" result="pass"/><test-case name="CastAs433" result="pass"/><test-case name="CastAs434" result="pass"/><test-case name="CastAs435" result="pass"/><test-case name="CastAs436" result="pass"/><test-case name="CastAs437" result="pass"/><test-case name="CastAs438" result="pass"/><test-case name="CastAs439" result="pass"/><test-case name="CastAs440" result="pass"/><test-case name="CastAs441" result="pass"/><test-case name="CastAs442" result="pass"/><test-case name="CastAs443" result="pass"/><test-case name="CastAs444" result="pass"/><test-case name="CastAs445" result="pass"/><test-case name="CastAs446" result="pass"/><test-case name="CastAs447" result="pass"/><test-case name="CastAs448" result="pass"/><test-case name="CastAs449" result="pass"/><test-case name="CastAs450" result="pass"/><test-case name="CastAs451" result="pass"/><test-case name="CastAs452" result="pass"/><test-case name="CastAs453" result="pass"/><test-case name="CastAs454" result="pass"/><test-case name="CastAs455" result="pass"/><test-case name="CastAs456" result="pass"/><test-case name="CastAs457" result="pass"/><test-case name="CastAs458" result="pass"/><test-case name="CastAs459" result="pass"/><test-case name="CastAs460" result="pass"/><test-case name="CastAs461" result="pass"/><test-case name="CastAs462" result="pass"/><test-case name="CastAs463" result="pass"/><test-case name="CastAs464" result="pass"/><test-case name="CastAs465" result="pass"/><test-case name="CastAs466" result="pass"/><test-case name="CastAs467" result="pass"/><test-case name="CastAs468" result="pass"/><test-case name="CastAs469" result="pass"/><test-case name="CastAs470" result="pass"/><test-case name="CastAs471" result="pass"/><test-case name="CastAs472" result="pass"/><test-case name="CastAs473" result="pass"/><test-case name="CastAs474" result="pass"/><test-case name="CastAs475" result="pass"/><test-case name="CastAs476" result="pass"/><test-case name="CastAs477" result="pass"/><test-case name="CastAs478" result="pass"/><test-case name="CastAs479" result="pass"/><test-case name="CastAs480" result="pass"/><test-case name="CastAs481" result="pass"/><test-case name="CastAs482" result="pass"/><test-case name="CastAs483" result="pass"/><test-case name="CastAs484" result="pass"/><test-case name="CastAs485" result="pass"/><test-case name="CastAs486" result="pass"/><test-case name="CastAs487" result="pass"/><test-case name="CastAs488" result="pass"/><test-case name="CastAs489" result="pass"/><test-case name="CastAs490" result="pass"/><test-case name="CastAs491" result="pass"/><test-case name="CastAs492" result="pass"/><test-case name="CastAs493" result="pass"/><test-case name="CastAs494" result="pass"/><test-case name="CastAs495" result="pass"/><test-case name="CastAs496" result="pass"/><test-case name="CastAs497" result="pass"/><test-case name="CastAs498" result="pass"/><test-case name="CastAs499" result="pass"/><test-case name="CastAs500" result="pass"/><test-case name="CastAs501" result="pass"/><test-case name="CastAs502" result="pass"/><test-case name="CastAs503" result="pass"/><test-case name="CastAs504" result="pass"/><test-case name="CastAs505" result="pass"/><test-case name="CastAs506" result="pass"/><test-case name="CastAs507" result="pass"/><test-case name="CastAs508" result="pass"/><test-case name="CastAs509" result="pass"/><test-case name="CastAs510" result="pass"/><test-case name="CastAs511" result="pass"/><test-case name="CastAs512" result="pass"/><test-case name="CastAs513" result="pass"/><test-case name="CastAs514" result="pass"/><test-case name="CastAs515" result="pass"/><test-case name="CastAs516" result="pass"/><test-case name="CastAs517" result="pass"/><test-case name="CastAs518" result="pass"/><test-case name="CastAs519" result="pass"/><test-case name="CastAs520" result="pass"/><test-case name="CastAs521" result="pass"/><test-case name="CastAs522" result="pass"/><test-case name="CastAs523" result="pass"/><test-case name="CastAs524" result="pass"/><test-case name="CastAs525" result="pass"/><test-case name="CastAs526" result="pass"/><test-case name="CastAs527" result="pass"/><test-case name="CastAs528" result="pass"/><test-case name="CastAs529" result="pass"/><test-case name="CastAs530" result="pass"/><test-case name="CastAs531" result="pass"/><test-case name="CastAs532" result="pass"/><test-case name="CastAs533" result="pass"/><test-case name="CastAs534" result="pass"/><test-case name="CastAs535" result="pass"/><test-case name="CastAs536" result="pass"/><test-case name="CastAs537" result="pass"/><test-case name="CastAs538" result="pass"/><test-case name="CastAs539" result="pass"/><test-case name="CastAs540" result="pass"/><test-case name="CastAs541" result="pass"/><test-case name="CastAs542" result="pass"/><test-case name="CastAs543" result="pass"/><test-case name="CastAs544" result="pass"/><test-case name="CastAs545" result="pass"/><test-case name="CastAs546" result="pass"/><test-case name="CastAs547" result="pass"/><test-case name="CastAs548" result="pass"/><test-case name="CastAs549" result="pass"/><test-case name="CastAs550" result="pass"/><test-case name="CastAs551" result="pass"/><test-case name="CastAs552" result="pass"/><test-case name="CastAs553" result="pass"/><test-case name="CastAs554" result="pass"/><test-case name="CastAs555" result="pass"/><test-case name="CastAs556" result="pass"/><test-case name="CastAs557" result="pass"/><test-case name="CastAs558" result="pass"/><test-case name="CastAs559" result="pass"/><test-case name="CastAs560" result="pass"/><test-case name="CastAs561" result="pass"/><test-case name="CastAs562" result="pass"/><test-case name="CastAs563" result="pass"/><test-case name="CastAs564" result="pass"/><test-case name="CastAs565" result="pass"/><test-case name="CastAs566" result="pass"/><test-case name="CastAs567" result="pass"/><test-case name="CastAs568" result="pass"/><test-case name="CastAs569" result="pass"/><test-case name="CastAs570" result="pass"/><test-case name="CastAs571" result="pass"/><test-case name="CastAs572" result="pass"/><test-case name="CastAs573" result="pass"/><test-case name="CastAs574" result="pass"/><test-case name="CastAs575" result="pass"/><test-case name="CastAs576" result="pass"/><test-case name="CastAs577" result="pass"/><test-case name="CastAs578" result="pass"/><test-case name="CastAs579" result="pass"/><test-case name="CastAs580" result="pass"/><test-case name="CastAs581" result="pass"/><test-case name="CastAs582" result="pass"/><test-case name="CastAs583" result="pass"/><test-case name="CastAs584" result="pass"/><test-case name="CastAs585" result="pass"/><test-case name="CastAs586" result="pass"/><test-case name="CastAs587" result="pass"/><test-case name="CastAs588" result="pass"/><test-case name="CastAs589" result="pass"/><test-case name="CastAs590" result="pass"/><test-case name="CastAs591" result="pass"/><test-case name="CastAs592" result="pass"/><test-case name="CastAs593" result="pass"/><test-case name="CastAs594" result="pass"/><test-case name="CastAs595" result="pass"/><test-case name="CastAs596" result="pass"/><test-case name="CastAs597" result="pass"/><test-case name="CastAs598" result="pass"/><test-case name="CastAs599" result="pass"/><test-case name="CastAs600" result="pass"/><test-case name="CastAs601" result="pass"/><test-case name="CastAs602" result="pass"/><test-case name="CastAs603" result="pass"/><test-case name="CastAs604" result="pass"/><test-case name="CastAs605" result="pass"/><test-case name="CastAs606" result="pass"/><test-case name="CastAs607" result="pass"/><test-case name="CastAs608" result="pass"/><test-case name="CastAs609" result="pass"/><test-case name="CastAs610" result="pass"/><test-case name="CastAs611" result="pass"/><test-case name="CastAs612" result="pass"/><test-case name="CastAs613" result="pass"/><test-case name="CastAs614" result="pass"/><test-case name="CastAs615" result="pass"/><test-case name="CastAs616" result="pass"/><test-case name="CastAs617" result="pass"/><test-case name="CastAs618" result="pass"/><test-case name="CastAs619" result="pass"/><test-case name="CastAs620" result="pass"/><test-case name="CastAs621" result="pass"/><test-case name="CastAs622" result="pass"/><test-case name="CastAs623" result="pass"/><test-case name="CastAs624" result="pass"/><test-case name="CastAs625" result="pass"/><test-case name="CastAs626" result="pass"/><test-case name="CastAs627" result="pass"/><test-case name="CastAs628" result="pass"/><test-case name="CastAs629" result="pass"/><test-case name="CastAs630" result="pass"/><test-case name="CastAs631" result="pass"/><test-case name="CastAs632" result="pass"/><test-case name="CastAs633" result="pass"/><test-case name="CastAs634" result="pass"/><test-case name="CastAs635" result="pass"/><test-case name="CastAs636" result="pass"/><test-case name="CastAs637" result="pass"/><test-case name="CastAs638" result="pass"/><test-case name="CastAs639" result="pass"/><test-case name="CastAs640" result="pass"/><test-case name="CastAs641" result="pass"/><test-case name="CastAs642" result="pass"/><test-case name="CastAs643" result="pass"/><test-case name="CastAs644" result="pass"/><test-case name="CastAs645" result="pass"/><test-case name="CastAs646" result="pass"/><test-case name="CastAs647" result="fail"/><test-case name="CastAs648" result="pass"/><test-case name="CastAs649" result="pass"/><test-case name="CastAs650" result="pass"/><test-case name="CastAs651" result="pass"/><test-case name="CastAs652" result="pass"/><test-case name="CastAs653" result="pass"/><test-case name="CastAs654" result="pass"/><test-case name="CastAs655" result="pass"/><test-case name="CastAs656" result="pass"/><test-case name="CastAs657" result="pass"/><test-case name="CastAs658" result="pass"/><test-case name="CastAs659" result="pass"/><test-case name="CastAs660" result="pass"/><test-case name="CastAs661" result="pass"/><test-case name="CastAs662" result="pass"/><test-case name="CastAs663" result="pass"/><test-case name="CastAs664" result="pass"/><test-case name="CastAs665" result="pass"/><test-case name="CastAs666" result="pass"/><test-case name="CastAs667" result="pass"/><test-case name="CastAs668" result="pass"/><test-case name="CastAs669" result="pass"/><test-case name="CastAs670" result="pass"/><test-case name="CastAs671" result="pass"/><test-case name="CastAs672" result="pass"/><test-case name="CastFOCA0001-1" result="fail"/><test-case name="CastFOCA0003-1" result="fail"/><test-case name="K-SeqExprCast-1" result="pass"/><test-case name="K-SeqExprCast-2" result="pass"/><test-case name="K-SeqExprCast-3" result="pass"/><test-case name="K-SeqExprCast-4" result="pass"/><test-case name="K-SeqExprCast-5" result="pass"/><test-case name="K-SeqExprCast-6" result="pass"/><test-case name="K-SeqExprCast-7" result="pass"/><test-case name="K-SeqExprCast-8" result="pass"/><test-case name="K-SeqExprCast-9" result="pass"/><test-case name="K-SeqExprCast-10" result="pass"/><test-case name="K-SeqExprCast-11" result="pass"/><test-case name="K-SeqExprCast-12" result="pass"/><test-case name="K-SeqExprCast-13" result="pass"/><test-case name="K-SeqExprCast-14" result="pass"/><test-case name="K-SeqExprCast-15" result="pass"/><test-case name="K-SeqExprCast-16" result="pass"/><test-case name="K-SeqExprCast-17" result="pass"/><test-case name="K-SeqExprCast-18" result="pass"/><test-case name="K-SeqExprCast-19" result="pass"/><test-case name="K-SeqExprCast-20" result="pass"/><test-case name="K-SeqExprCast-21" result="pass"/><test-case name="K-SeqExprCast-22" result="pass"/><test-case name="K-SeqExprCast-23" result="pass"/><test-case name="K-SeqExprCast-24" result="pass"/><test-case name="K-SeqExprCast-25" result="pass"/><test-case name="K-SeqExprCast-26" result="pass"/><test-case name="K-SeqExprCast-27" result="pass"/><test-case name="K-SeqExprCast-28" result="pass"/><test-case name="K-SeqExprCast-29" result="pass"/><test-case name="K-SeqExprCast-30" result="pass"/><test-case name="K-SeqExprCast-31" result="pass"/><test-case name="K-SeqExprCast-32" result="pass"/><test-case name="K-SeqExprCast-33" result="pass"/><test-case name="K-SeqExprCast-34" result="pass"/><test-case name="K-SeqExprCast-35" result="pass"/><test-case name="K-SeqExprCast-36" result="pass"/><test-case name="K-SeqExprCast-37" result="pass"/><test-case name="K-SeqExprCast-38" result="pass"/><test-case name="K-SeqExprCast-39" result="pass"/><test-case name="K-SeqExprCast-40" result="pass"/><test-case name="K-SeqExprCast-41" result="pass"/><test-case name="K-SeqExprCast-42" result="pass"/><test-case name="K-SeqExprCast-43" result="pass"/><test-case name="K-SeqExprCast-44" result="pass"/><test-case name="K-SeqExprCast-45" result="pass"/><test-case name="K-SeqExprCast-46" result="pass"/><test-case name="K-SeqExprCast-47" result="pass"/><test-case name="K-SeqExprCast-48" result="pass"/><test-case name="K-SeqExprCast-49" result="pass"/><test-case name="K-SeqExprCast-50" result="pass"/><test-case name="K-SeqExprCast-51" result="pass"/><test-case name="K-SeqExprCast-52" result="pass"/><test-case name="K-SeqExprCast-53" result="pass"/><test-case name="K-SeqExprCast-54" result="pass"/><test-case name="K-SeqExprCast-55" result="pass"/><test-case name="K-SeqExprCast-56" result="pass"/><test-case name="K-SeqExprCast-57" result="pass"/><test-case name="K-SeqExprCast-58" result="pass"/><test-case name="K-SeqExprCast-59" result="pass"/><test-case name="K-SeqExprCast-60" result="pass"/><test-case name="K-SeqExprCast-61" result="pass"/><test-case name="K-SeqExprCast-62" result="pass"/><test-case name="K-SeqExprCast-63" result="pass"/><test-case name="K-SeqExprCast-64" result="pass"/><test-case name="K-SeqExprCast-65" result="pass"/><test-case name="K-SeqExprCast-66" result="pass"/><test-case name="K-SeqExprCast-67" result="pass"/><test-case name="K-SeqExprCast-68" result="pass"/><test-case name="K-SeqExprCast-69" result="pass"/><test-case name="K-SeqExprCast-70" result="pass"/><test-case name="K-SeqExprCast-71" result="pass"/><test-case name="K-SeqExprCast-72" result="pass"/><test-case name="K-SeqExprCast-73" result="pass"/><test-case name="K-SeqExprCast-74" result="pass"/><test-case name="K-SeqExprCast-75" result="pass"/><test-case name="K-SeqExprCast-76" result="pass"/><test-case name="K-SeqExprCast-77" result="pass"/><test-case name="K-SeqExprCast-78" result="pass"/><test-case name="K-SeqExprCast-79" result="pass"/><test-case name="K-SeqExprCast-80" result="pass"/><test-case name="K-SeqExprCast-81" result="pass"/><test-case name="K-SeqExprCast-82" result="pass"/><test-case name="K-SeqExprCast-83" result="pass"/><test-case name="K-SeqExprCast-84" result="pass"/><test-case name="K-SeqExprCast-85" result="pass"/><test-case name="K-SeqExprCast-86" result="pass"/><test-case name="K-SeqExprCast-87" result="pass"/><test-case name="K-SeqExprCast-88" result="pass"/><test-case name="K-SeqExprCast-89" result="pass"/><test-case name="K-SeqExprCast-90" result="pass"/><test-case name="K-SeqExprCast-91" result="pass"/><test-case name="K-SeqExprCast-92" result="pass"/><test-case name="K-SeqExprCast-93" result="pass"/><test-case name="K-SeqExprCast-94" result="pass"/><test-case name="K-SeqExprCast-95" result="pass"/><test-case name="K-SeqExprCast-96" result="pass"/><test-case name="K-SeqExprCast-97" result="pass"/><test-case name="K-SeqExprCast-98" result="pass"/><test-case name="K-SeqExprCast-99" result="pass"/><test-case name="K-SeqExprCast-100" result="pass"/><test-case name="K-SeqExprCast-101" result="pass"/><test-case name="K-SeqExprCast-102" result="pass"/><test-case name="K-SeqExprCast-103" result="pass"/><test-case name="K-SeqExprCast-104" result="pass"/><test-case name="K-SeqExprCast-105" result="pass"/><test-case name="K-SeqExprCast-106" result="pass"/><test-case name="K-SeqExprCast-107" result="pass"/><test-case name="K-SeqExprCast-108" result="pass"/><test-case name="K-SeqExprCast-109" result="pass"/><test-case name="K-SeqExprCast-110" result="pass"/><test-case name="K-SeqExprCast-111" result="pass"/><test-case name="K-SeqExprCast-112" result="pass"/><test-case name="K-SeqExprCast-113" result="pass"/><test-case name="K-SeqExprCast-114" result="pass"/><test-case name="K-SeqExprCast-115" result="pass"/><test-case name="K-SeqExprCast-116" result="pass"/><test-case name="K-SeqExprCast-117" result="pass"/><test-case name="K-SeqExprCast-118" result="pass"/><test-case name="K-SeqExprCast-119" result="pass"/><test-case name="K-SeqExprCast-120" result="pass"/><test-case name="K-SeqExprCast-121" result="pass"/><test-case name="K-SeqExprCast-122" result="pass"/><test-case name="K-SeqExprCast-123" result="pass"/><test-case name="K-SeqExprCast-124" result="pass"/><test-case name="K-SeqExprCast-125" result="pass"/><test-case name="K-SeqExprCast-126" result="pass"/><test-case name="K-SeqExprCast-127" result="pass"/><test-case name="K-SeqExprCast-128" result="pass"/><test-case name="K-SeqExprCast-129" result="fail"/><test-case name="K-SeqExprCast-130" result="pass"/><test-case name="K-SeqExprCast-131" result="pass"/><test-case name="K-SeqExprCast-132" result="pass"/><test-case name="K-SeqExprCast-133" result="pass"/><test-case name="K-SeqExprCast-134" result="pass"/><test-case name="K-SeqExprCast-135" result="pass"/><test-case name="K-SeqExprCast-136" result="pass"/><test-case name="K-SeqExprCast-137" result="pass"/><test-case name="K-SeqExprCast-138" result="pass"/><test-case name="K-SeqExprCast-139" result="pass"/><test-case name="K-SeqExprCast-140" result="pass"/><test-case name="K-SeqExprCast-141" result="pass"/><test-case name="K-SeqExprCast-142" result="pass"/><test-case name="K-SeqExprCast-143" result="pass"/><test-case name="K-SeqExprCast-144" result="pass"/><test-case name="K-SeqExprCast-145" result="pass"/><test-case name="K-SeqExprCast-147" result="pass"/><test-case name="K-SeqExprCast-148" result="pass"/><test-case name="K-SeqExprCast-149" result="pass"/><test-case name="K-SeqExprCast-150" result="pass"/><test-case name="K-SeqExprCast-151" result="pass"/><test-case name="K-SeqExprCast-152" result="pass"/><test-case name="K-SeqExprCast-153" result="pass"/><test-case name="K-SeqExprCast-154" result="pass"/><test-case name="K-SeqExprCast-155" result="pass"/><test-case name="K-SeqExprCast-156" result="pass"/><test-case name="K-SeqExprCast-157" result="pass"/><test-case name="K-SeqExprCast-158" result="pass"/><test-case name="K-SeqExprCast-159" result="pass"/><test-case name="K-SeqExprCast-160" result="pass"/><test-case name="K-SeqExprCast-161" result="pass"/><test-case name="K-SeqExprCast-162" result="pass"/><test-case name="K-SeqExprCast-163" result="pass"/><test-case name="K-SeqExprCast-164" result="pass"/><test-case name="K-SeqExprCast-165" result="pass"/><test-case name="K-SeqExprCast-166" result="pass"/><test-case name="K-SeqExprCast-167" result="pass"/><test-case name="K-SeqExprCast-168" result="pass"/><test-case name="K-SeqExprCast-169" result="pass"/><test-case name="K-SeqExprCast-170" result="pass"/><test-case name="K-SeqExprCast-171" result="pass"/><test-case name="K-SeqExprCast-172" result="pass"/><test-case name="K-SeqExprCast-173" result="pass"/><test-case name="K-SeqExprCast-174" result="pass"/><test-case name="K-SeqExprCast-175" result="pass"/><test-case name="K-SeqExprCast-176" result="pass"/><test-case name="K-SeqExprCast-177" result="pass"/><test-case name="K-SeqExprCast-178" result="pass"/><test-case name="K-SeqExprCast-179" result="pass"/><test-case name="K-SeqExprCast-180" result="pass"/><test-case name="K-SeqExprCast-181" result="pass"/><test-case name="K-SeqExprCast-182" result="pass"/><test-case name="K-SeqExprCast-183" result="pass"/><test-case name="K-SeqExprCast-184" result="pass"/><test-case name="K-SeqExprCast-185" result="pass"/><test-case name="K-SeqExprCast-186" result="pass"/><test-case name="K-SeqExprCast-187" result="pass"/><test-case name="K-SeqExprCast-188" result="pass"/><test-case name="K-SeqExprCast-189" result="pass"/><test-case name="K-SeqExprCast-190" result="pass"/><test-case name="K-SeqExprCast-191" result="pass"/><test-case name="K-SeqExprCast-192" result="pass"/><test-case name="K-SeqExprCast-193" result="pass"/><test-case name="K-SeqExprCast-194" result="pass"/><test-case name="K-SeqExprCast-195" result="pass"/><test-case name="K-SeqExprCast-196" result="pass"/><test-case name="K-SeqExprCast-197" result="pass"/><test-case name="K-SeqExprCast-198" result="pass"/><test-case name="K-SeqExprCast-199" result="pass"/><test-case name="K-SeqExprCast-200" result="pass"/><test-case name="K-SeqExprCast-201" result="pass"/><test-case name="K-SeqExprCast-202" result="pass"/><test-case name="K-SeqExprCast-203" result="pass"/><test-case name="K-SeqExprCast-204" result="pass"/><test-case name="K-SeqExprCast-205" result="pass"/><test-case name="K-SeqExprCast-206" result="pass"/><test-case name="K-SeqExprCast-207" result="pass"/><test-case name="K-SeqExprCast-208" result="pass"/><test-case name="K-SeqExprCast-209" result="pass"/><test-case name="K-SeqExprCast-210" result="pass"/><test-case name="K-SeqExprCast-211" result="pass"/><test-case name="K-SeqExprCast-213" result="pass"/><test-case name="K-SeqExprCast-214" result="pass"/><test-case name="K-SeqExprCast-215" result="pass"/><test-case name="K-SeqExprCast-216" result="pass"/><test-case name="K-SeqExprCast-217" result="pass"/><test-case name="K-SeqExprCast-218" result="pass"/><test-case name="K-SeqExprCast-219" result="pass"/><test-case name="K-SeqExprCast-220" result="pass"/><test-case name="K-SeqExprCast-221" result="pass"/><test-case name="K-SeqExprCast-222" result="pass"/><test-case name="K-SeqExprCast-223" result="pass"/><test-case name="K-SeqExprCast-224" result="pass"/><test-case name="K-SeqExprCast-225" result="pass"/><test-case name="K-SeqExprCast-226" result="pass"/><test-case name="K-SeqExprCast-227" result="pass"/><test-case name="K-SeqExprCast-228" result="pass"/><test-case name="K-SeqExprCast-229" result="pass"/><test-case name="K-SeqExprCast-230" result="pass"/><test-case name="K-SeqExprCast-231" result="pass"/><test-case name="K-SeqExprCast-232" result="pass"/><test-case name="K-SeqExprCast-233" result="pass"/><test-case name="K-SeqExprCast-234" result="pass"/><test-case name="K-SeqExprCast-235" result="pass"/><test-case name="K-SeqExprCast-236" result="pass"/><test-case name="K-SeqExprCast-237" result="pass"/><test-case name="K-SeqExprCast-238" result="pass"/><test-case name="K-SeqExprCast-239" result="pass"/><test-case name="K-SeqExprCast-240" result="pass"/><test-case name="K-SeqExprCast-241" result="pass"/><test-case name="K-SeqExprCast-242" result="pass"/><test-case name="K-SeqExprCast-243" result="pass"/><test-case name="K-SeqExprCast-244" result="pass"/><test-case name="K-SeqExprCast-245" result="pass"/><test-case name="K-SeqExprCast-246" result="pass"/><test-case name="K-SeqExprCast-247" result="pass"/><test-case name="K-SeqExprCast-248" result="pass"/><test-case name="K-SeqExprCast-249" result="pass"/><test-case name="K-SeqExprCast-250" result="pass"/><test-case name="K-SeqExprCast-251" result="pass"/><test-case name="K-SeqExprCast-252" result="pass"/><test-case name="K-SeqExprCast-253" result="pass"/><test-case name="K-SeqExprCast-254" result="pass"/><test-case name="K-SeqExprCast-255" result="pass"/><test-case name="K-SeqExprCast-256" result="pass"/><test-case name="K-SeqExprCast-257" result="pass"/><test-case name="K-SeqExprCast-258" result="pass"/><test-case name="K-SeqExprCast-259" result="pass"/><test-case name="K-SeqExprCast-260" result="pass"/><test-case name="K-SeqExprCast-261" result="pass"/><test-case name="K-SeqExprCast-262" result="pass"/><test-case name="K-SeqExprCast-263" result="pass"/><test-case name="K-SeqExprCast-264" result="pass"/><test-case name="K-SeqExprCast-265" result="pass"/><test-case name="K-SeqExprCast-266" result="pass"/><test-case name="K-SeqExprCast-267" result="pass"/><test-case name="K-SeqExprCast-268" result="pass"/><test-case name="K-SeqExprCast-269" result="pass"/><test-case name="K-SeqExprCast-270" result="pass"/><test-case name="K-SeqExprCast-271" result="pass"/><test-case name="K-SeqExprCast-272" result="pass"/><test-case name="K-SeqExprCast-273" result="pass"/><test-case name="K-SeqExprCast-274" result="pass"/><test-case name="K-SeqExprCast-275" result="pass"/><test-case name="K-SeqExprCast-276" result="pass"/><test-case name="K-SeqExprCast-277" result="pass"/><test-case name="K-SeqExprCast-278" result="pass"/><test-case name="K-SeqExprCast-279" result="pass"/><test-case name="K-SeqExprCast-280" result="pass"/><test-case name="K-SeqExprCast-281" result="pass"/><test-case name="K-SeqExprCast-282" result="pass"/><test-case name="K-SeqExprCast-283" result="pass"/><test-case name="K-SeqExprCast-284" result="pass"/><test-case name="K-SeqExprCast-285" result="pass"/><test-case name="K-SeqExprCast-286" result="pass"/><test-case name="K-SeqExprCast-287" result="pass"/><test-case name="K-SeqExprCast-288" result="pass"/><test-case name="K-SeqExprCast-289" result="pass"/><test-case name="K-SeqExprCast-290" result="pass"/><test-case name="K-SeqExprCast-291" result="pass"/><test-case name="K-SeqExprCast-292" result="pass"/><test-case name="K-SeqExprCast-293" result="pass"/><test-case name="K-SeqExprCast-294" result="pass"/><test-case name="K-SeqExprCast-295" result="pass"/><test-case name="K-SeqExprCast-296" result="pass"/><test-case name="K-SeqExprCast-297" result="pass"/><test-case name="K-SeqExprCast-298" result="pass"/><test-case name="K-SeqExprCast-299" result="pass"/><test-case name="K-SeqExprCast-300" result="pass"/><test-case name="K-SeqExprCast-301" result="pass"/><test-case name="K-SeqExprCast-302" result="pass"/><test-case name="K-SeqExprCast-303" result="pass"/><test-case name="K-SeqExprCast-304" result="pass"/><test-case name="K-SeqExprCast-305" result="pass"/><test-case name="K-SeqExprCast-306" result="pass"/><test-case name="K-SeqExprCast-307" result="pass"/><test-case name="K-SeqExprCast-308" result="pass"/><test-case name="K-SeqExprCast-309" result="pass"/><test-case name="K-SeqExprCast-310" result="pass"/><test-case name="K-SeqExprCast-311" result="pass"/><test-case name="K-SeqExprCast-312" result="pass"/><test-case name="K-SeqExprCast-313" result="pass"/><test-case name="K-SeqExprCast-314" result="pass"/><test-case name="K-SeqExprCast-315" result="pass"/><test-case name="K-SeqExprCast-316" result="pass"/><test-case name="K-SeqExprCast-317" result="pass"/><test-case name="K-SeqExprCast-318" result="pass"/><test-case name="K-SeqExprCast-319" result="pass"/><test-case name="K-SeqExprCast-320" result="pass"/><test-case name="K-SeqExprCast-321" result="pass"/><test-case name="K-SeqExprCast-322" result="pass"/><test-case name="K-SeqExprCast-323" result="pass"/><test-case name="K-SeqExprCast-324" result="pass"/><test-case name="K-SeqExprCast-325" result="pass"/><test-case name="K-SeqExprCast-326" result="pass"/><test-case name="K-SeqExprCast-327" result="pass"/><test-case name="K-SeqExprCast-328" result="pass"/><test-case name="K-SeqExprCast-329" result="pass"/><test-case name="K-SeqExprCast-330" result="pass"/><test-case name="K-SeqExprCast-331" result="pass"/><test-case name="K-SeqExprCast-332" result="pass"/><test-case name="K-SeqExprCast-333" result="pass"/><test-case name="K-SeqExprCast-334" result="pass"/><test-case name="K-SeqExprCast-335" result="pass"/><test-case name="K-SeqExprCast-336" result="pass"/><test-case name="K-SeqExprCast-337" result="pass"/><test-case name="K-SeqExprCast-338" result="pass"/><test-case name="K-SeqExprCast-339" result="pass"/><test-case name="K-SeqExprCast-340" result="pass"/><test-case name="K-SeqExprCast-341" result="pass"/><test-case name="K-SeqExprCast-342" result="pass"/><test-case name="K-SeqExprCast-343" result="pass"/><test-case name="K-SeqExprCast-344" result="pass"/><test-case name="K-SeqExprCast-345" result="pass"/><test-case name="K-SeqExprCast-346" result="pass"/><test-case name="K-SeqExprCast-347" result="pass"/><test-case name="K-SeqExprCast-348" result="pass"/><test-case name="K-SeqExprCast-349" result="pass"/><test-case name="K-SeqExprCast-350" result="pass"/><test-case name="K-SeqExprCast-351" result="pass"/><test-case name="K-SeqExprCast-352" result="pass"/><test-case name="K-SeqExprCast-353" result="pass"/><test-case name="K-SeqExprCast-354" result="pass"/><test-case name="K-SeqExprCast-355" result="pass"/><test-case name="K-SeqExprCast-356" result="pass"/><test-case name="K-SeqExprCast-357" result="pass"/><test-case name="K-SeqExprCast-358" result="pass"/><test-case name="K-SeqExprCast-359" result="pass"/><test-case name="K-SeqExprCast-360" result="pass"/><test-case name="K-SeqExprCast-361" result="pass"/><test-case name="K-SeqExprCast-362" result="pass"/><test-case name="K-SeqExprCast-363" result="pass"/><test-case name="K-SeqExprCast-364" result="pass"/><test-case name="K-SeqExprCast-365" result="pass"/><test-case name="K-SeqExprCast-366" result="pass"/><test-case name="K-SeqExprCast-367" result="pass"/><test-case name="K-SeqExprCast-368" result="pass"/><test-case name="K-SeqExprCast-369" result="pass"/><test-case name="K-SeqExprCast-370" result="pass"/><test-case name="K-SeqExprCast-371" result="pass"/><test-case name="K-SeqExprCast-372" result="pass"/><test-case name="K-SeqExprCast-373" result="pass"/><test-case name="K-SeqExprCast-374" result="pass"/><test-case name="K-SeqExprCast-375" result="pass"/><test-case name="K-SeqExprCast-376" result="pass"/><test-case name="K-SeqExprCast-377" result="pass"/><test-case name="K-SeqExprCast-378" result="pass"/><test-case name="K-SeqExprCast-379" result="pass"/><test-case name="K-SeqExprCast-380" result="pass"/><test-case name="K-SeqExprCast-381" result="pass"/><test-case name="K-SeqExprCast-382" result="pass"/><test-case name="K-SeqExprCast-383" result="pass"/><test-case name="K-SeqExprCast-384" result="pass"/><test-case name="K-SeqExprCast-385" result="pass"/><test-case name="K-SeqExprCast-386" result="pass"/><test-case name="K-SeqExprCast-387" result="pass"/><test-case name="K-SeqExprCast-388" result="pass"/><test-case name="K-SeqExprCast-389" result="pass"/><test-case name="K-SeqExprCast-390" result="pass"/><test-case name="K-SeqExprCast-391" result="pass"/><test-case name="K-SeqExprCast-392" result="pass"/><test-case name="K-SeqExprCast-393" result="pass"/><test-case name="K-SeqExprCast-394" result="pass"/><test-case name="K-SeqExprCast-395" result="pass"/><test-case name="K-SeqExprCast-396" result="pass"/><test-case name="K-SeqExprCast-397" result="pass"/><test-case name="K-SeqExprCast-398" result="pass"/><test-case name="K-SeqExprCast-399" result="pass"/><test-case name="K-SeqExprCast-400" result="pass"/><test-case name="K-SeqExprCast-401" result="pass"/><test-case name="K-SeqExprCast-402" result="pass"/><test-case name="K-SeqExprCast-403" result="pass"/><test-case name="K-SeqExprCast-404" result="pass"/><test-case name="K-SeqExprCast-405" result="pass"/><test-case name="K-SeqExprCast-406" result="pass"/><test-case name="K-SeqExprCast-407" result="pass"/><test-case name="K-SeqExprCast-408" result="pass"/><test-case name="K-SeqExprCast-409" result="pass"/><test-case name="K-SeqExprCast-411" result="pass"/><test-case name="K-SeqExprCast-412" result="pass"/><test-case name="K-SeqExprCast-413" result="pass"/><test-case name="K-SeqExprCast-414" result="pass"/><test-case name="K-SeqExprCast-415" result="pass"/><test-case name="K-SeqExprCast-416" result="pass"/><test-case name="K-SeqExprCast-417" result="pass"/><test-case name="K-SeqExprCast-418" result="pass"/><test-case name="K-SeqExprCast-419" result="pass"/><test-case name="K-SeqExprCast-420" result="pass"/><test-case name="K-SeqExprCast-421" result="pass"/><test-case name="K-SeqExprCast-422" result="pass"/><test-case name="K-SeqExprCast-423" result="pass"/><test-case name="K-SeqExprCast-424" result="pass"/><test-case name="K-SeqExprCast-425" result="pass"/><test-case name="K-SeqExprCast-426" result="pass"/><test-case name="K-SeqExprCast-427" result="pass"/><test-case name="K-SeqExprCast-428" result="pass"/><test-case name="K-SeqExprCast-429" result="pass"/><test-case name="K-SeqExprCast-430" result="pass"/><test-case name="K-SeqExprCast-431" result="pass"/><test-case name="K-SeqExprCast-432" result="pass"/><test-case name="K-SeqExprCast-433" result="pass"/><test-case name="K-SeqExprCast-434" result="pass"/><test-case name="K-SeqExprCast-435" result="pass"/><test-case name="K-SeqExprCast-436" result="pass"/><test-case name="K-SeqExprCast-437" result="pass"/><test-case name="K-SeqExprCast-438" result="pass"/><test-case name="K-SeqExprCast-439" result="pass"/><test-case name="K-SeqExprCast-440" result="pass"/><test-case name="K-SeqExprCast-441" result="pass"/><test-case name="K-SeqExprCast-442" result="pass"/><test-case name="K-SeqExprCast-443" result="pass"/><test-case name="K-SeqExprCast-444" result="pass"/><test-case name="K-SeqExprCast-445" result="pass"/><test-case name="K-SeqExprCast-446" result="pass"/><test-case name="K-SeqExprCast-447" result="pass"/><test-case name="K-SeqExprCast-448" result="pass"/><test-case name="K-SeqExprCast-449" result="pass"/><test-case name="K-SeqExprCast-450" result="pass"/><test-case name="K-SeqExprCast-451" result="pass"/><test-case name="K-SeqExprCast-452" result="pass"/><test-case name="K-SeqExprCast-453" result="pass"/><test-case name="K-SeqExprCast-454" result="pass"/><test-case name="K-SeqExprCast-455" result="pass"/><test-case name="K-SeqExprCast-456" result="pass"/><test-case name="K-SeqExprCast-457" result="pass"/><test-case name="K-SeqExprCast-458" result="pass"/><test-case name="K-SeqExprCast-459" result="pass"/><test-case name="K-SeqExprCast-460" result="pass"/><test-case name="K-SeqExprCast-461" result="pass"/><test-case name="K-SeqExprCast-462" result="pass"/><test-case name="K-SeqExprCast-463" result="pass"/><test-case name="K-SeqExprCast-464" result="pass"/><test-case name="K-SeqExprCast-465" result="pass"/><test-case name="K-SeqExprCast-466" result="pass"/><test-case name="K-SeqExprCast-467" result="pass"/><test-case name="K-SeqExprCast-468" result="pass"/><test-case name="K-SeqExprCast-469" result="pass"/><test-case name="K-SeqExprCast-470" result="pass"/><test-case name="K-SeqExprCast-471" result="pass"/><test-case name="K-SeqExprCast-472" result="pass"/><test-case name="K-SeqExprCast-473" result="pass"/><test-case name="K-SeqExprCast-474" result="pass"/><test-case name="K-SeqExprCast-475" result="pass"/><test-case name="K-SeqExprCast-476" result="pass"/><test-case name="K-SeqExprCast-477" result="pass"/><test-case name="K-SeqExprCast-478" result="pass"/><test-case name="K-SeqExprCast-479" result="pass"/><test-case name="K-SeqExprCast-480" result="pass"/><test-case name="K-SeqExprCast-481" result="pass"/><test-case name="K-SeqExprCast-482" result="pass"/><test-case name="K-SeqExprCast-483" result="pass"/><test-case name="K-SeqExprCast-484" result="pass"/><test-case name="K-SeqExprCast-485" result="pass"/><test-case name="K-SeqExprCast-486" result="pass"/><test-case name="K-SeqExprCast-487" result="pass"/><test-case name="K-SeqExprCast-488" result="pass"/><test-case name="K-SeqExprCast-489" result="pass"/><test-case name="K-SeqExprCast-490" result="pass"/><test-case name="K-SeqExprCast-491" result="pass"/><test-case name="K-SeqExprCast-492" result="pass"/><test-case name="K-SeqExprCast-493" result="pass"/><test-case name="K-SeqExprCast-494" result="pass"/><test-case name="K-SeqExprCast-495" result="pass"/><test-case name="K-SeqExprCast-496" result="pass"/><test-case name="K-SeqExprCast-497" result="pass"/><test-case name="K-SeqExprCast-498" result="pass"/><test-case name="K-SeqExprCast-499" result="pass"/><test-case name="K-SeqExprCast-500" result="pass"/><test-case name="K-SeqExprCast-501" result="pass"/><test-case name="K-SeqExprCast-502" result="pass"/><test-case name="K-SeqExprCast-503" result="pass"/><test-case name="K-SeqExprCast-504" result="pass"/><test-case name="K-SeqExprCast-505" result="pass"/><test-case name="K-SeqExprCast-506" result="pass"/><test-case name="K-SeqExprCast-507" result="pass"/><test-case name="K-SeqExprCast-508" result="pass"/><test-case name="K-SeqExprCast-509" result="pass"/><test-case name="K-SeqExprCast-510" result="pass"/><test-case name="K-SeqExprCast-511" result="pass"/><test-case name="K-SeqExprCast-512" result="pass"/><test-case name="K-SeqExprCast-513" result="pass"/><test-case name="K-SeqExprCast-514" result="pass"/><test-case name="K-SeqExprCast-515" result="pass"/><test-case name="K-SeqExprCast-516" result="pass"/><test-case name="K-SeqExprCast-517" result="pass"/><test-case name="K-SeqExprCast-518" result="pass"/><test-case name="K-SeqExprCast-519" result="pass"/><test-case name="K-SeqExprCast-520" result="pass"/><test-case name="K-SeqExprCast-521" result="pass"/><test-case name="K-SeqExprCast-522" result="pass"/><test-case name="K-SeqExprCast-523" result="pass"/><test-case name="K-SeqExprCast-524" result="pass"/><test-case name="K-SeqExprCast-525" result="pass"/><test-case name="K-SeqExprCast-526" result="pass"/><test-case name="K-SeqExprCast-527" result="pass"/><test-case name="K-SeqExprCast-528" result="pass"/><test-case name="K-SeqExprCast-529" result="pass"/><test-case name="K-SeqExprCast-530" result="pass"/><test-case name="K-SeqExprCast-531" result="pass"/><test-case name="K-SeqExprCast-532" result="pass"/><test-case name="K-SeqExprCast-533" result="pass"/><test-case name="K-SeqExprCast-534" result="pass"/><test-case name="K-SeqExprCast-535" result="pass"/><test-case name="K-SeqExprCast-536" result="pass"/><test-case name="K-SeqExprCast-537" result="pass"/><test-case name="K-SeqExprCast-538" result="pass"/><test-case name="K-SeqExprCast-539" result="pass"/><test-case name="K-SeqExprCast-540" result="pass"/><test-case name="K-SeqExprCast-541" result="pass"/><test-case name="K-SeqExprCast-542" result="pass"/><test-case name="K-SeqExprCast-543" result="pass"/><test-case name="K-SeqExprCast-544" result="pass"/><test-case name="K-SeqExprCast-545" result="pass"/><test-case name="K-SeqExprCast-546" result="pass"/><test-case name="K-SeqExprCast-547" result="pass"/><test-case name="K-SeqExprCast-548" result="pass"/><test-case name="K-SeqExprCast-549" result="pass"/><test-case name="K-SeqExprCast-550" result="pass"/><test-case name="K-SeqExprCast-551" result="pass"/><test-case name="K-SeqExprCast-552" result="pass"/><test-case name="K-SeqExprCast-553" result="pass"/><test-case name="K-SeqExprCast-554" result="pass"/><test-case name="K-SeqExprCast-555" result="pass"/><test-case name="K-SeqExprCast-556" result="pass"/><test-case name="K-SeqExprCast-557" result="pass"/><test-case name="K-SeqExprCast-558" result="pass"/><test-case name="K-SeqExprCast-559" result="pass"/><test-case name="K-SeqExprCast-560" result="pass"/><test-case name="K-SeqExprCast-561" result="pass"/><test-case name="K-SeqExprCast-562" result="pass"/><test-case name="K-SeqExprCast-563" result="pass"/><test-case name="K-SeqExprCast-564" result="pass"/><test-case name="K-SeqExprCast-565" result="pass"/><test-case name="K-SeqExprCast-566" result="pass"/><test-case name="K-SeqExprCast-567" result="pass"/><test-case name="K-SeqExprCast-568" result="pass"/><test-case name="K-SeqExprCast-569" result="pass"/><test-case name="K-SeqExprCast-570" result="pass"/><test-case name="K-SeqExprCast-571" result="pass"/><test-case name="K-SeqExprCast-572" result="pass"/><test-case name="K-SeqExprCast-573" result="pass"/><test-case name="K-SeqExprCast-574" result="pass"/><test-case name="K-SeqExprCast-575" result="pass"/><test-case name="K-SeqExprCast-576" result="pass"/><test-case name="K-SeqExprCast-577" result="pass"/><test-case name="K-SeqExprCast-578" result="pass"/><test-case name="K-SeqExprCast-579" result="pass"/><test-case name="K-SeqExprCast-580" result="pass"/><test-case name="K-SeqExprCast-581" result="pass"/><test-case name="K-SeqExprCast-582" result="pass"/><test-case name="K-SeqExprCast-583" result="pass"/><test-case name="K-SeqExprCast-584" result="pass"/><test-case name="K-SeqExprCast-585" result="pass"/><test-case name="K-SeqExprCast-586" result="pass"/><test-case name="K-SeqExprCast-587" result="pass"/><test-case name="K-SeqExprCast-588" result="pass"/><test-case name="K-SeqExprCast-589" result="pass"/><test-case name="K-SeqExprCast-590" result="pass"/><test-case name="K-SeqExprCast-591" result="pass"/><test-case name="K-SeqExprCast-592" result="pass"/><test-case name="K-SeqExprCast-593" result="pass"/><test-case name="K-SeqExprCast-594" result="pass"/><test-case name="K-SeqExprCast-595" result="pass"/><test-case name="K-SeqExprCast-596" result="pass"/><test-case name="K-SeqExprCast-597" result="pass"/><test-case name="K-SeqExprCast-598" result="pass"/><test-case name="K-SeqExprCast-599" result="pass"/><test-case name="K-SeqExprCast-600" result="pass"/><test-case name="K-SeqExprCast-601" result="pass"/><test-case name="K-SeqExprCast-602" result="pass"/><test-case name="K-SeqExprCast-603" result="pass"/><test-case name="K-SeqExprCast-604" result="pass"/><test-case name="K-SeqExprCast-605" result="pass"/><test-case name="K-SeqExprCast-606" result="pass"/><test-case name="K-SeqExprCast-607" result="pass"/><test-case name="K-SeqExprCast-608" result="pass"/><test-case name="K-SeqExprCast-609" result="pass"/><test-case name="K-SeqExprCast-610" result="pass"/><test-case name="K-SeqExprCast-611" result="pass"/><test-case name="K-SeqExprCast-612" result="pass"/><test-case name="K-SeqExprCast-613" result="pass"/><test-case name="K-SeqExprCast-614" result="pass"/><test-case name="K-SeqExprCast-615" result="pass"/><test-case name="K-SeqExprCast-616" result="pass"/><test-case name="K-SeqExprCast-617" result="pass"/><test-case name="K-SeqExprCast-618" result="pass"/><test-case name="K-SeqExprCast-619" result="pass"/><test-case name="K-SeqExprCast-620" result="pass"/><test-case name="K-SeqExprCast-621" result="pass"/><test-case name="K-SeqExprCast-622" result="pass"/><test-case name="K-SeqExprCast-623" result="pass"/><test-case name="K-SeqExprCast-624" result="pass"/><test-case name="K-SeqExprCast-625" result="pass"/><test-case name="K-SeqExprCast-626" result="pass"/><test-case name="K-SeqExprCast-627" result="pass"/><test-case name="K-SeqExprCast-628" result="pass"/><test-case name="K-SeqExprCast-629" result="pass"/><test-case name="K-SeqExprCast-630" result="pass"/><test-case name="K-SeqExprCast-631" result="pass"/><test-case name="K-SeqExprCast-632" result="pass"/><test-case name="K-SeqExprCast-633" result="pass"/><test-case name="K-SeqExprCast-634" result="pass"/><test-case name="K-SeqExprCast-635" result="pass"/><test-case name="K-SeqExprCast-636" result="pass"/><test-case name="K-SeqExprCast-637" result="pass"/><test-case name="K-SeqExprCast-638" result="pass"/><test-case name="K-SeqExprCast-639" result="pass"/><test-case name="K-SeqExprCast-640" result="pass"/><test-case name="K-SeqExprCast-641" result="pass"/><test-case name="K-SeqExprCast-642" result="pass"/><test-case name="K-SeqExprCast-643" result="pass"/><test-case name="K-SeqExprCast-644" result="pass"/><test-case name="K-SeqExprCast-645" result="pass"/><test-case name="K-SeqExprCast-646" result="pass"/><test-case name="K-SeqExprCast-647" result="pass"/><test-case name="K-SeqExprCast-648" result="pass"/><test-case name="K-SeqExprCast-649" result="pass"/><test-case name="K-SeqExprCast-650" result="pass"/><test-case name="K-SeqExprCast-651" result="pass"/><test-case name="K-SeqExprCast-652" result="pass"/><test-case name="K-SeqExprCast-653" result="pass"/><test-case name="K-SeqExprCast-654" result="pass"/><test-case name="K-SeqExprCast-655" result="pass"/><test-case name="K-SeqExprCast-656" result="pass"/><test-case name="K-SeqExprCast-657" result="pass"/><test-case name="K-SeqExprCast-658" result="pass"/><test-case name="K-SeqExprCast-659" result="pass"/><test-case name="K-SeqExprCast-660" result="pass"/><test-case name="K-SeqExprCast-661" result="pass"/><test-case name="K-SeqExprCast-662" result="pass"/><test-case name="K-SeqExprCast-663" result="pass"/><test-case name="K-SeqExprCast-664" result="pass"/><test-case name="K-SeqExprCast-665" result="pass"/><test-case name="K-SeqExprCast-666" result="pass"/><test-case name="K-SeqExprCast-667" result="pass"/><test-case name="K-SeqExprCast-668" result="pass"/><test-case name="K-SeqExprCast-669" result="pass"/><test-case name="K-SeqExprCast-670" result="pass"/><test-case name="K-SeqExprCast-671" result="pass"/><test-case name="K-SeqExprCast-672" result="pass"/><test-case name="K-SeqExprCast-673" result="pass"/><test-case name="K-SeqExprCast-674" result="pass"/><test-case name="K-SeqExprCast-675" result="pass"/><test-case name="K-SeqExprCast-676" result="pass"/><test-case name="K-SeqExprCast-677" result="pass"/><test-case name="K-SeqExprCast-678" result="pass"/><test-case name="K-SeqExprCast-679" result="pass"/><test-case name="K-SeqExprCast-680" result="pass"/><test-case name="K-SeqExprCast-681" result="pass"/><test-case name="K-SeqExprCast-682" result="pass"/><test-case name="K-SeqExprCast-683" result="pass"/><test-case name="K-SeqExprCast-684" result="pass"/><test-case name="K-SeqExprCast-685" result="pass"/><test-case name="K-SeqExprCast-686" result="pass"/><test-case name="K-SeqExprCast-687" result="pass"/><test-case name="K-SeqExprCast-688" result="pass"/><test-case name="K-SeqExprCast-689" result="pass"/><test-case name="K-SeqExprCast-690" result="pass"/><test-case name="K-SeqExprCast-691" result="pass"/><test-case name="K-SeqExprCast-692" result="pass"/><test-case name="K-SeqExprCast-693" result="pass"/><test-case name="K-SeqExprCast-694" result="pass"/><test-case name="K-SeqExprCast-695" result="pass"/><test-case name="K-SeqExprCast-696" result="pass"/><test-case name="K-SeqExprCast-697" result="pass"/><test-case name="K-SeqExprCast-698" result="pass"/><test-case name="K-SeqExprCast-699" result="pass"/><test-case name="K-SeqExprCast-700" result="pass"/><test-case name="K-SeqExprCast-701" result="pass"/><test-case name="K-SeqExprCast-702" result="pass"/><test-case name="K-SeqExprCast-703" result="pass"/><test-case name="K-SeqExprCast-704" result="pass"/><test-case name="K-SeqExprCast-705" result="pass"/><test-case name="K-SeqExprCast-706" result="pass"/><test-case name="K-SeqExprCast-707" result="pass"/><test-case name="K-SeqExprCast-708" result="pass"/><test-case name="K-SeqExprCast-709" result="pass"/><test-case name="K-SeqExprCast-710" result="pass"/><test-case name="K-SeqExprCast-711" result="pass"/><test-case name="K-SeqExprCast-712" result="pass"/><test-case name="K-SeqExprCast-713" result="pass"/><test-case name="K-SeqExprCast-714" result="pass"/><test-case name="K-SeqExprCast-715" result="pass"/><test-case name="K-SeqExprCast-716" result="pass"/><test-case name="K-SeqExprCast-717" result="pass"/><test-case name="K-SeqExprCast-718" result="pass"/><test-case name="K-SeqExprCast-719" result="pass"/><test-case name="K-SeqExprCast-720" result="pass"/><test-case name="K-SeqExprCast-721" result="pass"/><test-case name="K-SeqExprCast-722" result="pass"/><test-case name="K-SeqExprCast-723" result="pass"/><test-case name="K-SeqExprCast-724" result="pass"/><test-case name="K-SeqExprCast-725" result="pass"/><test-case name="K-SeqExprCast-726" result="pass"/><test-case name="K-SeqExprCast-727" result="pass"/><test-case name="K-SeqExprCast-728" result="pass"/><test-case name="K-SeqExprCast-729" result="pass"/><test-case name="K-SeqExprCast-730" result="pass"/><test-case name="K-SeqExprCast-731" result="pass"/><test-case name="K-SeqExprCast-732" result="pass"/><test-case name="K-SeqExprCast-733" result="pass"/><test-case name="K-SeqExprCast-734" result="pass"/><test-case name="K-SeqExprCast-735" result="pass"/><test-case name="K-SeqExprCast-736" result="pass"/><test-case name="K-SeqExprCast-737" result="pass"/><test-case name="K-SeqExprCast-738" result="pass"/><test-case name="K-SeqExprCast-739" result="pass"/><test-case name="K-SeqExprCast-740" result="pass"/><test-case name="K-SeqExprCast-741" result="pass"/><test-case name="K-SeqExprCast-742" result="pass"/><test-case name="K-SeqExprCast-743" result="pass"/><test-case name="K-SeqExprCast-744" result="pass"/><test-case name="K-SeqExprCast-745" result="pass"/><test-case name="K-SeqExprCast-746" result="pass"/><test-case name="K-SeqExprCast-747" result="pass"/><test-case name="K-SeqExprCast-748" result="pass"/><test-case name="K-SeqExprCast-749" result="pass"/><test-case name="K-SeqExprCast-750" result="pass"/><test-case name="K-SeqExprCast-751" result="pass"/><test-case name="K-SeqExprCast-752" result="pass"/><test-case name="K-SeqExprCast-753" result="pass"/><test-case name="K-SeqExprCast-754" result="pass"/><test-case name="K-SeqExprCast-755" result="pass"/><test-case name="K-SeqExprCast-756" result="pass"/><test-case name="K-SeqExprCast-757" result="pass"/><test-case name="K-SeqExprCast-758" result="pass"/><test-case name="K-SeqExprCast-759" result="pass"/><test-case name="K-SeqExprCast-760" result="pass"/><test-case name="K-SeqExprCast-761" result="pass"/><test-case name="K-SeqExprCast-762" result="pass"/><test-case name="K-SeqExprCast-763" result="pass"/><test-case name="K-SeqExprCast-764" result="pass"/><test-case name="K-SeqExprCast-765" result="pass"/><test-case name="K-SeqExprCast-766" result="pass"/><test-case name="K-SeqExprCast-767" result="pass"/><test-case name="K-SeqExprCast-768" result="pass"/><test-case name="K-SeqExprCast-769" result="pass"/><test-case name="K-SeqExprCast-770" result="pass"/><test-case name="K-SeqExprCast-771" result="pass"/><test-case name="K-SeqExprCast-772" result="pass"/><test-case name="K-SeqExprCast-773" result="pass"/><test-case name="K-SeqExprCast-774" result="pass"/><test-case name="K-SeqExprCast-775" result="pass"/><test-case name="K-SeqExprCast-776" result="pass"/><test-case name="K-SeqExprCast-777" result="pass"/><test-case name="K-SeqExprCast-778" result="pass"/><test-case name="K-SeqExprCast-779" result="pass"/><test-case name="K-SeqExprCast-780" result="pass"/><test-case name="K-SeqExprCast-781" result="pass"/><test-case name="K-SeqExprCast-782" result="pass"/><test-case name="K-SeqExprCast-783" result="pass"/><test-case name="K-SeqExprCast-784" result="pass"/><test-case name="K-SeqExprCast-785" result="pass"/><test-case name="K-SeqExprCast-786" result="pass"/><test-case name="K-SeqExprCast-787" result="pass"/><test-case name="K-SeqExprCast-788" result="pass"/><test-case name="K-SeqExprCast-789" result="pass"/><test-case name="K-SeqExprCast-790" result="pass"/><test-case name="K-SeqExprCast-791" result="pass"/><test-case name="K-SeqExprCast-792" result="pass"/><test-case name="K-SeqExprCast-793" result="pass"/><test-case name="K-SeqExprCast-794" result="pass"/><test-case name="K-SeqExprCast-795" result="pass"/><test-case name="K-SeqExprCast-796" result="pass"/><test-case name="K-SeqExprCast-797" result="pass"/><test-case name="K-SeqExprCast-798" result="pass"/><test-case name="K-SeqExprCast-799" result="pass"/><test-case name="K-SeqExprCast-800" result="pass"/><test-case name="K-SeqExprCast-801" result="pass"/><test-case name="K-SeqExprCast-802" result="pass"/><test-case name="K-SeqExprCast-803" result="pass"/><test-case name="K-SeqExprCast-804" result="pass"/><test-case name="K-SeqExprCast-805" result="pass"/><test-case name="K-SeqExprCast-806" result="pass"/><test-case name="K-SeqExprCast-807" result="pass"/><test-case name="K-SeqExprCast-808" result="pass"/><test-case name="K-SeqExprCast-809" result="pass"/><test-case name="K-SeqExprCast-810" result="pass"/><test-case name="K-SeqExprCast-811" result="pass"/><test-case name="K-SeqExprCast-812" result="pass"/><test-case name="K-SeqExprCast-813" result="pass"/><test-case name="K-SeqExprCast-814" result="pass"/><test-case name="K-SeqExprCast-815" result="pass"/><test-case name="K-SeqExprCast-816" result="pass"/><test-case name="K-SeqExprCast-817" result="pass"/><test-case name="K-SeqExprCast-818" result="pass"/><test-case name="K-SeqExprCast-819" result="pass"/><test-case name="K-SeqExprCast-820" result="pass"/><test-case name="K-SeqExprCast-821" result="pass"/><test-case name="K-SeqExprCast-822" result="pass"/><test-case name="K-SeqExprCast-823" result="pass"/><test-case name="K-SeqExprCast-824" result="pass"/><test-case name="K-SeqExprCast-825" result="pass"/><test-case name="K-SeqExprCast-826" result="pass"/><test-case name="K-SeqExprCast-827" result="pass"/><test-case name="K-SeqExprCast-828" result="pass"/><test-case name="K-SeqExprCast-829" result="pass"/><test-case name="K-SeqExprCast-830" result="pass"/><test-case name="K-SeqExprCast-831" result="pass"/><test-case name="K-SeqExprCast-832" result="pass"/><test-case name="K-SeqExprCast-833" result="pass"/><test-case name="K-SeqExprCast-834" result="pass"/><test-case name="K-SeqExprCast-835" result="pass"/><test-case name="K-SeqExprCast-836" result="pass"/><test-case name="K-SeqExprCast-837" result="pass"/><test-case name="K-SeqExprCast-838" result="pass"/><test-case name="K-SeqExprCast-839" result="pass"/><test-case name="K-SeqExprCast-840" result="pass"/><test-case name="K-SeqExprCast-841" result="pass"/><test-case name="K-SeqExprCast-842" result="pass"/><test-case name="K-SeqExprCast-843" result="pass"/><test-case name="K-SeqExprCast-844" result="pass"/><test-case name="K-SeqExprCast-845" result="pass"/><test-case name="K-SeqExprCast-846" result="pass"/><test-case name="K-SeqExprCast-847" result="pass"/><test-case name="K-SeqExprCast-848" result="pass"/><test-case name="K-SeqExprCast-849" result="pass"/><test-case name="K-SeqExprCast-850" result="pass"/><test-case name="K-SeqExprCast-851" result="pass"/><test-case name="K-SeqExprCast-852" result="pass"/><test-case name="K-SeqExprCast-853" result="pass"/><test-case name="K-SeqExprCast-854" result="pass"/><test-case name="K-SeqExprCast-855" result="pass"/><test-case name="K-SeqExprCast-856" result="pass"/><test-case name="K-SeqExprCast-857" result="pass"/><test-case name="K-SeqExprCast-858" result="pass"/><test-case name="K-SeqExprCast-859" result="pass"/><test-case name="K-SeqExprCast-860" result="pass"/><test-case name="K-SeqExprCast-861" result="pass"/><test-case name="K-SeqExprCast-862" result="pass"/><test-case name="K-SeqExprCast-863" result="pass"/><test-case name="K-SeqExprCast-864" result="pass"/><test-case name="K-SeqExprCast-865" result="pass"/><test-case name="K-SeqExprCast-866" result="pass"/><test-case name="K-SeqExprCast-867" result="pass"/><test-case name="K-SeqExprCast-868" result="pass"/><test-case name="K-SeqExprCast-869" result="pass"/><test-case name="K-SeqExprCast-870" result="pass"/><test-case name="K-SeqExprCast-871" result="pass"/><test-case name="K-SeqExprCast-872" result="pass"/><test-case name="K-SeqExprCast-873" result="pass"/><test-case name="K-SeqExprCast-874" result="pass"/><test-case name="K-SeqExprCast-875" result="pass"/><test-case name="K-SeqExprCast-876" result="pass"/><test-case name="K-SeqExprCast-877" result="pass"/><test-case name="K-SeqExprCast-878" result="pass"/><test-case name="K-SeqExprCast-879" result="pass"/><test-case name="K-SeqExprCast-880" result="pass"/><test-case name="K-SeqExprCast-881" result="pass"/><test-case name="K-SeqExprCast-882" result="pass"/><test-case name="K-SeqExprCast-883" result="pass"/><test-case name="K-SeqExprCast-884" result="pass"/><test-case name="K-SeqExprCast-885" result="pass"/><test-case name="K-SeqExprCast-886" result="pass"/><test-case name="K-SeqExprCast-887" result="pass"/><test-case name="K-SeqExprCast-888" result="pass"/><test-case name="K-SeqExprCast-889" result="pass"/><test-case name="K-SeqExprCast-890" result="pass"/><test-case name="K-SeqExprCast-891" result="pass"/><test-case name="K-SeqExprCast-892" result="pass"/><test-case name="K-SeqExprCast-893" result="pass"/><test-case name="K-SeqExprCast-894" result="pass"/><test-case name="K-SeqExprCast-895" result="pass"/><test-case name="K-SeqExprCast-896" result="pass"/><test-case name="K-SeqExprCast-897" result="pass"/><test-case name="K-SeqExprCast-898" result="pass"/><test-case name="K-SeqExprCast-899" result="pass"/><test-case name="K-SeqExprCast-900" result="pass"/><test-case name="K-SeqExprCast-901" result="pass"/><test-case name="K-SeqExprCast-902" result="pass"/><test-case name="K-SeqExprCast-903" result="pass"/><test-case name="K-SeqExprCast-904" result="pass"/><test-case name="K-SeqExprCast-905" result="pass"/><test-case name="K-SeqExprCast-906" result="pass"/><test-case name="K-SeqExprCast-907" result="pass"/><test-case name="K-SeqExprCast-908" result="pass"/><test-case name="K-SeqExprCast-909" result="pass"/><test-case name="K-SeqExprCast-910" result="pass"/><test-case name="K-SeqExprCast-911" result="pass"/><test-case name="K-SeqExprCast-912" result="pass"/><test-case name="K-SeqExprCast-913" result="pass"/><test-case name="K-SeqExprCast-914" result="pass"/><test-case name="K-SeqExprCast-915" result="pass"/><test-case name="K-SeqExprCast-916" result="pass"/><test-case name="K-SeqExprCast-917" result="pass"/><test-case name="K-SeqExprCast-918" result="pass"/><test-case name="K-SeqExprCast-919" result="pass"/><test-case name="K-SeqExprCast-920" result="pass"/><test-case name="K-SeqExprCast-921" result="pass"/><test-case name="K-SeqExprCast-922" result="pass"/><test-case name="K-SeqExprCast-923" result="pass"/><test-case name="K-SeqExprCast-924" result="pass"/><test-case name="K-SeqExprCast-925" result="pass"/><test-case name="K-SeqExprCast-926" result="pass"/><test-case name="K-SeqExprCast-927" result="pass"/><test-case name="K-SeqExprCast-928" result="pass"/><test-case name="K-SeqExprCast-929" result="pass"/><test-case name="K-SeqExprCast-930" result="pass"/><test-case name="K-SeqExprCast-931" result="pass"/><test-case name="K-SeqExprCast-932" result="pass"/><test-case name="K-SeqExprCast-933" result="pass"/><test-case name="K-SeqExprCast-934" result="pass"/><test-case name="K-SeqExprCast-935" result="pass"/><test-case name="K-SeqExprCast-936" result="pass"/><test-case name="K-SeqExprCast-937" result="pass"/><test-case name="K-SeqExprCast-938" result="pass"/><test-case name="K-SeqExprCast-939" result="pass"/><test-case name="K-SeqExprCast-940" result="pass"/><test-case name="K-SeqExprCast-941" result="pass"/><test-case name="K-SeqExprCast-942" result="pass"/><test-case name="K-SeqExprCast-943" result="pass"/><test-case name="K-SeqExprCast-944" result="pass"/><test-case name="K-SeqExprCast-945" result="pass"/><test-case name="K-SeqExprCast-946" result="pass"/><test-case name="K-SeqExprCast-947" result="pass"/><test-case name="K-SeqExprCast-948" result="pass"/><test-case name="K-SeqExprCast-949" result="pass"/><test-case name="K-SeqExprCast-950" result="pass"/><test-case name="K-SeqExprCast-951" result="pass"/><test-case name="K-SeqExprCast-952" result="pass"/><test-case name="K-SeqExprCast-953" result="pass"/><test-case name="K-SeqExprCast-954" result="pass"/><test-case name="K-SeqExprCast-955" result="pass"/><test-case name="K-SeqExprCast-956" result="pass"/><test-case name="K-SeqExprCast-957" result="pass"/><test-case name="K-SeqExprCast-958" result="pass"/><test-case name="K-SeqExprCast-959" result="pass"/><test-case name="K-SeqExprCast-960" result="pass"/><test-case name="K-SeqExprCast-961" result="pass"/><test-case name="K-SeqExprCast-962" result="pass"/><test-case name="K-SeqExprCast-963" result="pass"/><test-case name="K-SeqExprCast-964" result="pass"/><test-case name="K-SeqExprCast-965" result="pass"/><test-case name="K-SeqExprCast-966" result="pass"/><test-case name="K-SeqExprCast-967" result="pass"/><test-case name="K-SeqExprCast-968" result="pass"/><test-case name="K-SeqExprCast-969" result="pass"/><test-case name="K-SeqExprCast-970" result="pass"/><test-case name="K-SeqExprCast-971" result="pass"/><test-case name="K-SeqExprCast-972" result="pass"/><test-case name="K-SeqExprCast-973" result="pass"/><test-case name="K-SeqExprCast-974" result="pass"/><test-case name="K-SeqExprCast-975" result="pass"/><test-case name="K-SeqExprCast-976" result="pass"/><test-case name="K-SeqExprCast-977" result="pass"/><test-case name="K-SeqExprCast-978" result="pass"/><test-case name="K-SeqExprCast-979" result="pass"/><test-case name="K-SeqExprCast-980" result="pass"/><test-case name="K-SeqExprCast-981" result="pass"/><test-case name="K-SeqExprCast-982" result="pass"/><test-case name="K-SeqExprCast-983" result="pass"/><test-case name="K-SeqExprCast-984" result="pass"/><test-case name="K-SeqExprCast-985" result="pass"/><test-case name="K-SeqExprCast-986" result="pass"/><test-case name="K-SeqExprCast-987" result="pass"/><test-case name="K-SeqExprCast-988" result="pass"/><test-case name="K-SeqExprCast-989" result="pass"/><test-case name="K-SeqExprCast-990" result="pass"/><test-case name="K-SeqExprCast-991" result="pass"/><test-case name="K-SeqExprCast-992" result="pass"/><test-case name="K-SeqExprCast-993" result="pass"/><test-case name="K-SeqExprCast-994" result="pass"/><test-case name="K-SeqExprCast-995" result="pass"/><test-case name="K-SeqExprCast-996" result="pass"/><test-case name="K-SeqExprCast-997" result="pass"/><test-case name="K-SeqExprCast-998" result="pass"/><test-case name="K-SeqExprCast-999" result="pass"/><test-case name="K-SeqExprCast-1000" result="pass"/><test-case name="K-SeqExprCast-1001" result="pass"/><test-case name="K-SeqExprCast-1002" result="pass"/><test-case name="K-SeqExprCast-1003" result="pass"/><test-case name="K-SeqExprCast-1004" result="pass"/><test-case name="K-SeqExprCast-1005" result="pass"/><test-case name="K-SeqExprCast-1006" result="pass"/><test-case name="K-SeqExprCast-1007" result="pass"/><test-case name="K-SeqExprCast-1008" result="pass"/><test-case name="K-SeqExprCast-1009" result="pass"/><test-case name="K-SeqExprCast-1010" result="pass"/><test-case name="K-SeqExprCast-1011" result="pass"/><test-case name="K-SeqExprCast-1012" result="pass"/><test-case name="K-SeqExprCast-1013" result="pass"/><test-case name="K-SeqExprCast-1014" result="pass"/><test-case name="K-SeqExprCast-1015" result="pass"/><test-case name="K-SeqExprCast-1016" result="pass"/><test-case name="K-SeqExprCast-1017" result="pass"/><test-case name="K-SeqExprCast-1018" result="pass"/><test-case name="K-SeqExprCast-1019" result="pass"/><test-case name="K-SeqExprCast-1020" result="pass"/><test-case name="K-SeqExprCast-1021" result="pass"/><test-case name="K-SeqExprCast-1022" result="pass"/><test-case name="K-SeqExprCast-1023" result="pass"/><test-case name="K-SeqExprCast-1024" result="pass"/><test-case name="K-SeqExprCast-1025" result="pass"/><test-case name="K-SeqExprCast-1026" result="pass"/><test-case name="K-SeqExprCast-1027" result="pass"/><test-case name="K-SeqExprCast-1028" result="pass"/><test-case name="K-SeqExprCast-1029" result="pass"/><test-case name="K-SeqExprCast-1030" result="pass"/><test-case name="K-SeqExprCast-1031" result="pass"/><test-case name="K-SeqExprCast-1032" result="pass"/><test-case name="K-SeqExprCast-1033" result="pass"/><test-case name="K-SeqExprCast-1034" result="pass"/><test-case name="K-SeqExprCast-1035" result="pass"/><test-case name="K-SeqExprCast-1036" result="pass"/><test-case name="K-SeqExprCast-1037" result="pass"/><test-case name="K-SeqExprCast-1038" result="pass"/><test-case name="K-SeqExprCast-1039" result="pass"/><test-case name="K-SeqExprCast-1040" result="pass"/><test-case name="K-SeqExprCast-1041" result="pass"/><test-case name="K-SeqExprCast-1042" result="pass"/><test-case name="K-SeqExprCast-1043" result="pass"/><test-case name="K-SeqExprCast-1044" result="pass"/><test-case name="K-SeqExprCast-1045" result="pass"/><test-case name="K-SeqExprCast-1046" result="pass"/><test-case name="K-SeqExprCast-1047" result="pass"/><test-case name="K-SeqExprCast-1048" result="pass"/><test-case name="K-SeqExprCast-1049" result="pass"/><test-case name="K-SeqExprCast-1050" result="pass"/><test-case name="K-SeqExprCast-1051" result="pass"/><test-case name="K-SeqExprCast-1052" result="pass"/><test-case name="K-SeqExprCast-1053" result="pass"/><test-case name="K-SeqExprCast-1054" result="pass"/><test-case name="K-SeqExprCast-1055" result="pass"/><test-case name="K-SeqExprCast-1056" result="pass"/><test-case name="K-SeqExprCast-1057" result="pass"/><test-case name="K-SeqExprCast-1058" result="pass"/><test-case name="K-SeqExprCast-1059" result="pass"/><test-case name="K-SeqExprCast-1060" result="pass"/><test-case name="K-SeqExprCast-1061" result="pass"/><test-case name="K-SeqExprCast-1062" result="pass"/><test-case name="K-SeqExprCast-1063" result="pass"/><test-case name="K-SeqExprCast-1064" result="pass"/><test-case name="K-SeqExprCast-1065" result="pass"/><test-case name="K-SeqExprCast-1066" result="pass"/><test-case name="K-SeqExprCast-1067" result="pass"/><test-case name="K-SeqExprCast-1068" result="pass"/><test-case name="K-SeqExprCast-1069" result="pass"/><test-case name="K-SeqExprCast-1070" result="pass"/><test-case name="K-SeqExprCast-1071" result="pass"/><test-case name="K-SeqExprCast-1072" result="pass"/><test-case name="K-SeqExprCast-1073" result="pass"/><test-case name="K-SeqExprCast-1074" result="pass"/><test-case name="K-SeqExprCast-1075" result="pass"/><test-case name="K-SeqExprCast-1076" result="pass"/><test-case name="K-SeqExprCast-1077" result="pass"/><test-case name="K-SeqExprCast-1078" result="pass"/><test-case name="K-SeqExprCast-1079" result="pass"/><test-case name="K-SeqExprCast-1080" result="pass"/><test-case name="K-SeqExprCast-1081" result="pass"/><test-case name="K-SeqExprCast-1082" result="pass"/><test-case name="K-SeqExprCast-1083" result="pass"/><test-case name="K-SeqExprCast-1084" result="pass"/><test-case name="K-SeqExprCast-1085" result="pass"/><test-case name="K-SeqExprCast-1086" result="pass"/><test-case name="K-SeqExprCast-1087" result="pass"/><test-case name="K-SeqExprCast-1088" result="pass"/><test-case name="K-SeqExprCast-1089" result="pass"/><test-case name="K-SeqExprCast-1090" result="pass"/><test-case name="K-SeqExprCast-1091" result="pass"/><test-case name="K-SeqExprCast-1092" result="pass"/><test-case name="K-SeqExprCast-1093" result="pass"/><test-case name="K-SeqExprCast-1094" result="pass"/><test-case name="K-SeqExprCast-1095" result="pass"/><test-case name="K-SeqExprCast-1096" result="pass"/><test-case name="K-SeqExprCast-1097" result="pass"/><test-case name="K-SeqExprCast-1098" result="pass"/><test-case name="K-SeqExprCast-1099" result="pass"/><test-case name="K-SeqExprCast-1100" result="pass"/><test-case name="K-SeqExprCast-1101" result="pass"/><test-case name="K-SeqExprCast-1102" result="pass"/><test-case name="K-SeqExprCast-1103" result="pass"/><test-case name="K-SeqExprCast-1104" result="pass"/><test-case name="K-SeqExprCast-1105" result="pass"/><test-case name="K-SeqExprCast-1106" result="pass"/><test-case name="K-SeqExprCast-1107" result="pass"/><test-case name="K-SeqExprCast-1108" result="pass"/><test-case name="K-SeqExprCast-1109" result="pass"/><test-case name="K-SeqExprCast-1110" result="pass"/><test-case name="K-SeqExprCast-1111" result="pass"/><test-case name="K-SeqExprCast-1112" result="pass"/><test-case name="K-SeqExprCast-1113" result="pass"/><test-case name="K-SeqExprCast-1114" result="pass"/><test-case name="K-SeqExprCast-1115" result="pass"/><test-case name="K-SeqExprCast-1116" result="pass"/><test-case name="K-SeqExprCast-1117" result="pass"/><test-case name="K-SeqExprCast-1118" result="pass"/><test-case name="K-SeqExprCast-1119" result="pass"/><test-case name="K-SeqExprCast-1120" result="pass"/><test-case name="K-SeqExprCast-1121" result="pass"/><test-case name="K-SeqExprCast-1122" result="pass"/><test-case name="K-SeqExprCast-1123" result="pass"/><test-case name="K-SeqExprCast-1124" result="pass"/><test-case name="K-SeqExprCast-1125" result="pass"/><test-case name="K-SeqExprCast-1126" result="pass"/><test-case name="K-SeqExprCast-1127" result="pass"/><test-case name="K-SeqExprCast-1128" result="pass"/><test-case name="K-SeqExprCast-1129" result="pass"/><test-case name="K-SeqExprCast-1130" result="pass"/><test-case name="K-SeqExprCast-1131" result="pass"/><test-case name="K-SeqExprCast-1132" result="pass"/><test-case name="K-SeqExprCast-1133" result="pass"/><test-case name="K-SeqExprCast-1134" result="pass"/><test-case name="K-SeqExprCast-1135" result="pass"/><test-case name="K-SeqExprCast-1136" result="pass"/><test-case name="K-SeqExprCast-1137" result="pass"/><test-case name="K-SeqExprCast-1138" result="pass"/><test-case name="K-SeqExprCast-1139" result="pass"/><test-case name="K-SeqExprCast-1140" result="pass"/><test-case name="K-SeqExprCast-1141" result="pass"/><test-case name="K-SeqExprCast-1142" result="pass"/><test-case name="K-SeqExprCast-1143" result="pass"/><test-case name="K-SeqExprCast-1144" result="pass"/><test-case name="K-SeqExprCast-1145" result="pass"/><test-case name="K-SeqExprCast-1146" result="pass"/><test-case name="K-SeqExprCast-1147" result="pass"/><test-case name="K-SeqExprCast-1148" result="pass"/><test-case name="K-SeqExprCast-1149" result="pass"/><test-case name="K-SeqExprCast-1150" result="pass"/><test-case name="K-SeqExprCast-1151" result="pass"/><test-case name="K-SeqExprCast-1152" result="pass"/><test-case name="K-SeqExprCast-1153" result="pass"/><test-case name="K-SeqExprCast-1154" result="pass"/><test-case name="K-SeqExprCast-1155" result="pass"/><test-case name="K-SeqExprCast-1156" result="pass"/><test-case name="K-SeqExprCast-1157" result="pass"/><test-case name="K-SeqExprCast-1158" result="pass"/><test-case name="K-SeqExprCast-1159" result="pass"/><test-case name="K-SeqExprCast-1160" result="pass"/><test-case name="K-SeqExprCast-1161" result="pass"/><test-case name="K-SeqExprCast-1162" result="pass"/><test-case name="K-SeqExprCast-1163" result="pass"/><test-case name="K-SeqExprCast-1164" result="pass"/><test-case name="K-SeqExprCast-1165" result="pass"/><test-case name="K-SeqExprCast-1166" result="pass"/><test-case name="K-SeqExprCast-1167" result="pass"/><test-case name="K-SeqExprCast-1168" result="pass"/><test-case name="K-SeqExprCast-1169" result="pass"/><test-case name="K-SeqExprCast-1170" result="pass"/><test-case name="K-SeqExprCast-1171" result="pass"/><test-case name="K-SeqExprCast-1172" result="pass"/><test-case name="K-SeqExprCast-1173" result="pass"/><test-case name="K-SeqExprCast-1174" result="pass"/><test-case name="K-SeqExprCast-1175" result="pass"/><test-case name="K-SeqExprCast-1176" result="pass"/><test-case name="K-SeqExprCast-1177" result="pass"/><test-case name="K-SeqExprCast-1178" result="pass"/><test-case name="K-SeqExprCast-1179" result="pass"/><test-case name="K-SeqExprCast-1180" result="pass"/><test-case name="K-SeqExprCast-1181" result="pass"/><test-case name="K-SeqExprCast-1182" result="pass"/><test-case name="K-SeqExprCast-1183" result="pass"/><test-case name="K-SeqExprCast-1184" result="pass"/><test-case name="K-SeqExprCast-1185" result="pass"/><test-case name="K-SeqExprCast-1186" result="pass"/><test-case name="K-SeqExprCast-1187" result="pass"/><test-case name="K-SeqExprCast-1188" result="pass"/><test-case name="K-SeqExprCast-1189" result="pass"/><test-case name="K-SeqExprCast-1190" result="pass"/><test-case name="K-SeqExprCast-1191" result="pass"/><test-case name="K-SeqExprCast-1192" result="pass"/><test-case name="K-SeqExprCast-1193" result="pass"/><test-case name="K-SeqExprCast-1194" result="pass"/><test-case name="K-SeqExprCast-1195" result="pass"/><test-case name="K-SeqExprCast-1196" result="pass"/><test-case name="K-SeqExprCast-1197" result="pass"/><test-case name="K-SeqExprCast-1198" result="pass"/><test-case name="K-SeqExprCast-1199" result="pass"/><test-case name="K-SeqExprCast-1200" result="pass"/><test-case name="K-SeqExprCast-1201" result="pass"/><test-case name="K-SeqExprCast-1202" result="pass"/><test-case name="K-SeqExprCast-1203" result="pass"/><test-case name="K-SeqExprCast-1204" result="pass"/><test-case name="K-SeqExprCast-1205" result="pass"/><test-case name="K-SeqExprCast-1206" result="pass"/><test-case name="K-SeqExprCast-1207" result="pass"/><test-case name="K-SeqExprCast-1208" result="pass"/><test-case name="K-SeqExprCast-1209" result="pass"/><test-case name="K-SeqExprCast-1210" result="pass"/><test-case name="K-SeqExprCast-1211" result="pass"/><test-case name="K-SeqExprCast-1212" result="pass"/><test-case name="K-SeqExprCast-1213" result="pass"/><test-case name="K-SeqExprCast-1214" result="pass"/><test-case name="K-SeqExprCast-1215" result="pass"/><test-case name="K-SeqExprCast-1216" result="pass"/><test-case name="K-SeqExprCast-1217" result="pass"/><test-case name="K-SeqExprCast-1218" result="pass"/><test-case name="K-SeqExprCast-1219" result="pass"/><test-case name="K-SeqExprCast-1220" result="pass"/><test-case name="K-SeqExprCast-1221" result="pass"/><test-case name="K-SeqExprCast-1222" result="pass"/><test-case name="K-SeqExprCast-1223" result="pass"/><test-case name="K-SeqExprCast-1224" result="pass"/><test-case name="K-SeqExprCast-1225" result="pass"/><test-case name="K-SeqExprCast-1226" result="pass"/><test-case name="K-SeqExprCast-1227" result="pass"/><test-case name="K-SeqExprCast-1228" result="pass"/><test-case name="K-SeqExprCast-1229" result="pass"/><test-case name="K-SeqExprCast-1230" result="pass"/><test-case name="K-SeqExprCast-1231" result="pass"/><test-case name="K-SeqExprCast-1232" result="pass"/><test-case name="K-SeqExprCast-1233" result="pass"/><test-case name="K-SeqExprCast-1234" result="pass"/><test-case name="K-SeqExprCast-1235" result="pass"/><test-case name="K-SeqExprCast-1236" result="pass"/><test-case name="K-SeqExprCast-1237" result="pass"/><test-case name="K-SeqExprCast-1238" result="pass"/><test-case name="K-SeqExprCast-1239" result="pass"/><test-case name="K-SeqExprCast-1240" result="pass"/><test-case name="K-SeqExprCast-1241" result="pass"/><test-case name="K-SeqExprCast-1242" result="pass"/><test-case name="K-SeqExprCast-1243" result="pass"/><test-case name="K-SeqExprCast-1244" result="pass"/><test-case name="K-SeqExprCast-1245" result="pass"/><test-case name="K-SeqExprCast-1246" result="pass"/><test-case name="K-SeqExprCast-1247" result="pass"/><test-case name="K-SeqExprCast-1248" result="pass"/><test-case name="K-SeqExprCast-1249" result="pass"/><test-case name="K-SeqExprCast-1250" result="pass"/><test-case name="K-SeqExprCast-1251" result="pass"/><test-case name="K-SeqExprCast-1252" result="pass"/><test-case name="K-SeqExprCast-1253" result="pass"/><test-case name="K-SeqExprCast-1254" result="pass"/><test-case name="K-SeqExprCast-1255" result="pass"/><test-case name="K-SeqExprCast-1256" result="pass"/><test-case name="K-SeqExprCast-1257" result="pass"/><test-case name="K-SeqExprCast-1258" result="pass"/><test-case name="K-SeqExprCast-1259" result="pass"/><test-case name="K-SeqExprCast-1260" result="pass"/><test-case name="K-SeqExprCast-1261" result="pass"/><test-case name="K-SeqExprCast-1262" result="pass"/><test-case name="K-SeqExprCast-1263" result="pass"/><test-case name="K-SeqExprCast-1264" result="pass"/><test-case name="K-SeqExprCast-1265" result="pass"/><test-case name="K-SeqExprCast-1266" result="pass"/><test-case name="K-SeqExprCast-1267" result="pass"/><test-case name="K-SeqExprCast-1268" result="pass"/><test-case name="K-SeqExprCast-1269" result="pass"/><test-case name="K-SeqExprCast-1270" result="pass"/><test-case name="K-SeqExprCast-1271" result="pass"/><test-case name="K-SeqExprCast-1272" result="pass"/><test-case name="K-SeqExprCast-1273" result="pass"/><test-case name="K-SeqExprCast-1274" result="pass"/><test-case name="K-SeqExprCast-1275" result="pass"/><test-case name="K-SeqExprCast-1276" result="pass"/><test-case name="K-SeqExprCast-1277" result="pass"/><test-case name="K-SeqExprCast-1278" result="pass"/><test-case name="K-SeqExprCast-1279" result="pass"/><test-case name="K-SeqExprCast-1280" result="pass"/><test-case name="K-SeqExprCast-1281" result="pass"/><test-case name="K-SeqExprCast-1282" result="pass"/><test-case name="K-SeqExprCast-1283" result="pass"/><test-case name="K-SeqExprCast-1284" result="pass"/><test-case name="K-SeqExprCast-1285" result="pass"/><test-case name="K-SeqExprCast-1286" result="pass"/><test-case name="K-SeqExprCast-1287" result="pass"/><test-case name="K-SeqExprCast-1288" result="pass"/><test-case name="K-SeqExprCast-1289" result="pass"/><test-case name="K-SeqExprCast-1290" result="pass"/><test-case name="K-SeqExprCast-1291" result="pass"/><test-case name="K-SeqExprCast-1292" result="pass"/><test-case name="K-SeqExprCast-1293" result="pass"/><test-case name="K-SeqExprCast-1294" result="pass"/><test-case name="K-SeqExprCast-1295" result="pass"/><test-case name="K-SeqExprCast-1296" result="pass"/><test-case name="K-SeqExprCast-1297" result="pass"/><test-case name="K-SeqExprCast-1298" result="pass"/><test-case name="K-SeqExprCast-1299" result="pass"/><test-case name="K-SeqExprCast-1300" result="pass"/><test-case name="K-SeqExprCast-1301" result="pass"/><test-case name="K-SeqExprCast-1302" result="pass"/><test-case name="K-SeqExprCast-1303" result="pass"/><test-case name="K-SeqExprCast-1304" result="pass"/><test-case name="K-SeqExprCast-1305" result="pass"/><test-case name="K-SeqExprCast-1306" result="pass"/><test-case name="K-SeqExprCast-1307" result="pass"/><test-case name="K-SeqExprCast-1308" result="pass"/><test-case name="K-SeqExprCast-1309" result="pass"/><test-case name="K-SeqExprCast-1310" result="pass"/><test-case name="K-SeqExprCast-1311" result="pass"/><test-case name="K-SeqExprCast-1312" result="pass"/><test-case name="K-SeqExprCast-1313" result="pass"/><test-case name="K-SeqExprCast-1314" result="pass"/><test-case name="K-SeqExprCast-1315" result="pass"/><test-case name="K-SeqExprCast-1316" result="pass"/><test-case name="K-SeqExprCast-1317" result="pass"/><test-case name="K-SeqExprCast-1318" result="pass"/><test-case name="K-SeqExprCast-1319" result="pass"/><test-case name="K-SeqExprCast-1320" result="pass"/><test-case name="K-SeqExprCast-1321" result="pass"/><test-case name="K-SeqExprCast-1322" result="pass"/><test-case name="K-SeqExprCast-1323" result="pass"/><test-case name="K-SeqExprCast-1324" result="pass"/><test-case name="K-SeqExprCast-1325" result="pass"/><test-case name="K-SeqExprCast-1326" result="pass"/><test-case name="K-SeqExprCast-1327" result="pass"/><test-case name="K-SeqExprCast-1328" result="pass"/><test-case name="K-SeqExprCast-1329" result="pass"/><test-case name="K-SeqExprCast-1330" result="pass"/><test-case name="K-SeqExprCast-1331" result="pass"/><test-case name="K-SeqExprCast-1332" result="pass"/><test-case name="K-SeqExprCast-1333" result="pass"/><test-case name="K-SeqExprCast-1334" result="pass"/><test-case name="K-SeqExprCast-1335" result="pass"/><test-case name="K-SeqExprCast-1336" result="pass"/><test-case name="K-SeqExprCast-1337" result="pass"/><test-case name="K-SeqExprCast-1338" result="pass"/><test-case name="K-SeqExprCast-1339" result="pass"/><test-case name="K-SeqExprCast-1340" result="pass"/><test-case name="K-SeqExprCast-1341" result="pass"/><test-case name="K-SeqExprCast-1342" result="pass"/><test-case name="K-SeqExprCast-1343" result="pass"/><test-case name="K-SeqExprCast-1344" result="pass"/><test-case name="K-SeqExprCast-1345" result="pass"/><test-case name="K-SeqExprCast-1346" result="pass"/><test-case name="K-SeqExprCast-1347" result="pass"/><test-case name="K-SeqExprCast-1348" result="pass"/><test-case name="K-SeqExprCast-1349" result="pass"/><test-case name="K-SeqExprCast-1350" result="pass"/><test-case name="K-SeqExprCast-1351" result="pass"/><test-case name="K-SeqExprCast-1352" result="pass"/><test-case name="K-SeqExprCast-1353" result="pass"/><test-case name="K-SeqExprCast-1354" result="pass"/><test-case name="K-SeqExprCast-1355" result="pass"/><test-case name="K-SeqExprCast-1356" result="pass"/><test-case name="K-SeqExprCast-1357" result="pass"/><test-case name="K-SeqExprCast-1358" result="pass"/><test-case name="K-SeqExprCast-1359" result="pass"/><test-case name="K-SeqExprCast-1360" result="pass"/><test-case name="K-SeqExprCast-1361" result="pass"/><test-case name="K-SeqExprCast-1362" result="pass"/><test-case name="K-SeqExprCast-1363" result="pass"/><test-case name="K-SeqExprCast-1364" result="pass"/><test-case name="K-SeqExprCast-1365" result="pass"/><test-case name="K-SeqExprCast-1366" result="pass"/><test-case name="K-SeqExprCast-1367" result="pass"/><test-case name="K-SeqExprCast-1368" result="pass"/><test-case name="K-SeqExprCast-1369" result="pass"/><test-case name="K-SeqExprCast-1370" result="pass"/><test-case name="K-SeqExprCast-1371" result="pass"/><test-case name="K-SeqExprCast-1372" result="pass"/><test-case name="K-SeqExprCast-1373" result="pass"/><test-case name="K-SeqExprCast-1374" result="pass"/><test-case name="K-SeqExprCast-1375" result="pass"/><test-case name="K-SeqExprCast-1376" result="pass"/><test-case name="K-SeqExprCast-1377" result="pass"/><test-case name="K-SeqExprCast-1378" result="pass"/><test-case name="K-SeqExprCast-1379" result="pass"/><test-case name="K-SeqExprCast-1380" result="pass"/><test-case name="K-SeqExprCast-1381" result="pass"/><test-case name="K-SeqExprCast-1382" result="pass"/><test-case name="K-SeqExprCast-1383" result="pass"/><test-case name="K-SeqExprCast-1384" result="pass"/><test-case name="K-SeqExprCast-1385" result="pass"/><test-case name="K-SeqExprCast-1386" result="pass"/><test-case name="K-SeqExprCast-1387" result="pass"/><test-case name="K-SeqExprCast-1388" result="pass"/><test-case name="K-SeqExprCast-1389" result="pass"/><test-case name="K-SeqExprCast-1390" result="pass"/><test-case name="K-SeqExprCast-1391" result="pass"/><test-case name="K-SeqExprCast-1392" result="pass"/><test-case name="K-SeqExprCast-1393" result="pass"/><test-case name="K-SeqExprCast-1394" result="pass"/><test-case name="K-SeqExprCast-1395" result="pass"/><test-case name="K-SeqExprCast-1396" result="pass"/><test-case name="K-SeqExprCast-1397" result="pass"/><test-case name="K-SeqExprCast-1398" result="pass"/><test-case name="K-SeqExprCast-1399" result="pass"/><test-case name="K-SeqExprCast-1400" result="pass"/><test-case name="K-SeqExprCast-1401" result="pass"/><test-case name="K-SeqExprCast-1402" result="pass"/><test-case name="K-SeqExprCast-1403" result="pass"/><test-case name="K-SeqExprCast-1404" result="pass"/><test-case name="K-SeqExprCast-1405" result="pass"/><test-case name="K-SeqExprCast-1406" result="pass"/><test-case name="K-SeqExprCast-1407" result="pass"/><test-case name="K-SeqExprCast-1408" result="pass"/><test-case name="K-SeqExprCast-1409" result="pass"/><test-case name="K-SeqExprCast-1410" result="pass"/><test-case name="K-SeqExprCast-1411" result="pass"/><test-case name="K-SeqExprCast-1412" result="pass"/><test-case name="K-SeqExprCast-1413" result="pass"/><test-case name="K-SeqExprCast-1414" result="pass"/><test-case name="K-SeqExprCast-1415" result="pass"/><test-case name="K-SeqExprCast-1416" result="pass"/><test-case name="K-SeqExprCast-1417" result="pass"/><test-case name="K-SeqExprCast-1418" result="pass"/><test-case name="K-SeqExprCast-1419" result="pass"/><test-case name="K-SeqExprCast-1420" result="pass"/><test-case name="K-SeqExprCast-1421" result="pass"/><test-case name="K-SeqExprCast-1422" result="pass"/><test-case name="K-SeqExprCast-1423" result="pass"/><test-case name="K-SeqExprCast-1424" result="pass"/><test-case name="K-SeqExprCast-1425" result="pass"/><test-case name="K-SeqExprCast-1426" result="pass"/><test-case name="K-SeqExprCast-1427" result="pass"/><test-case name="K-SeqExprCast-1428" result="pass"/><test-case name="K-SeqExprCast-1429" result="pass"/><test-case name="K-SeqExprCast-1430" result="pass"/><test-case name="K-SeqExprCast-1431" result="pass"/><test-case name="K-SeqExprCast-1432" result="pass"/><test-case name="K-SeqExprCast-1433" result="pass"/><test-case name="K-SeqExprCast-1434" result="pass"/><test-case name="K-SeqExprCast-1435" result="pass"/><test-case name="K-SeqExprCast-1436" result="pass"/><test-case name="K-SeqExprCast-1437" result="pass"/><test-case name="K-SeqExprCast-1438" result="pass"/><test-case name="K-SeqExprCast-1439" result="pass"/><test-case name="K-SeqExprCast-1440" result="pass"/><test-case name="K-SeqExprCast-1441" result="pass"/><test-case name="K-SeqExprCast-1442" result="pass"/><test-case name="K-SeqExprCast-1443" result="pass"/><test-case name="K-SeqExprCast-1444" result="pass"/><test-case name="K-SeqExprCast-1445" result="pass"/><test-case name="K-SeqExprCast-1446" result="pass"/><test-case name="K-SeqExprCast-1447" result="pass"/><test-case name="K-SeqExprCast-1448" result="pass"/><test-case name="K-SeqExprCast-1449" result="pass"/><test-case name="K-SeqExprCast-1450" result="pass"/><test-case name="K-SeqExprCast-1451" result="pass"/><test-case name="K-SeqExprCast-1452" result="pass"/><test-case name="K-SeqExprCast-1453" result="pass"/><test-case name="K-SeqExprCast-1454" result="pass"/><test-case name="K-SeqExprCast-1455" result="pass"/><test-case name="K-SeqExprCast-1456" result="pass"/><test-case name="K-SeqExprCast-1457" result="pass"/><test-case name="K-SeqExprCast-1458" result="pass"/><test-case name="K-SeqExprCast-1459" result="pass"/><test-case name="K-SeqExprCast-1460" result="pass"/><test-case name="K-SeqExprCast-1461" result="pass"/><test-case name="K-SeqExprCast-1462" result="pass"/><test-case name="K-SeqExprCast-1463" result="pass"/><test-case name="K-SeqExprCast-1464" result="pass"/><test-case name="K-SeqExprCast-1465" result="pass"/><test-case name="K-SeqExprCast-1466" result="pass"/><test-case name="K-SeqExprCast-1467" result="pass"/><test-case name="K-SeqExprCast-1468" result="pass"/><test-case name="K-SeqExprCast-1469" result="pass"/><test-case name="K-SeqExprCast-1470" result="pass"/><test-case name="K-SeqExprCast-1471" result="pass"/><test-case name="K-SeqExprCast-1472" result="pass"/><test-case name="K-SeqExprCast-1473" result="pass"/><test-case name="K-SeqExprCast-1474" result="pass"/><test-case name="K-SeqExprCast-1475" result="pass"/><test-case name="K-SeqExprCast-1476" result="pass"/><test-case name="K-SeqExprCast-1477" result="pass"/><test-case name="K-SeqExprCast-1478" result="pass"/><test-case name="K-SeqExprCast-1479" result="pass"/><test-case name="K-SeqExprCast-1480" result="pass"/><test-case name="K-SeqExprCast-1481" result="pass"/><test-case name="K-SeqExprCast-1482" result="pass"/><test-case name="K-SeqExprCast-1483" result="pass"/><test-case name="K-SeqExprCast-1484" result="pass"/><test-case name="K-SeqExprCast-1485" result="pass"/><test-case name="K-SeqExprCast-1486" result="pass"/><test-case name="K-SeqExprCast-1487" result="pass"/><test-case name="K-SeqExprCast-1488" result="pass"/><test-case name="K-SeqExprCast-1489" result="pass"/><test-case name="K-SeqExprCast-1490" result="pass"/><test-case name="K-SeqExprCast-1491" result="pass"/><test-case name="K2-SeqExprCast-1" result="pass"/><test-case name="K2-SeqExprCast-2" result="pass"/><test-case name="K2-SeqExprCast-3" result="pass"/><test-case name="K2-SeqExprCast-4" result="pass"/><test-case name="K2-SeqExprCast-5" result="pass"/><test-case name="K2-SeqExprCast-6" result="pass"/><test-case name="K2-SeqExprCast-7" result="pass"/><test-case name="K2-SeqExprCast-8" result="pass"/><test-case name="K2-SeqExprCast-9" result="pass"/><test-case name="K2-SeqExprCast-10" result="pass"/><test-case name="K2-SeqExprCast-11" result="pass"/><test-case name="K2-SeqExprCast-12" result="pass"/><test-case name="K2-SeqExprCast-13" result="pass"/><test-case name="K2-SeqExprCast-14" result="pass"/><test-case name="K2-SeqExprCast-15" result="pass"/><test-case name="K2-SeqExprCast-16" result="pass"/><test-case name="K2-SeqExprCast-17" result="pass"/><test-case name="K2-SeqExprCast-18" result="pass"/><test-case name="K2-SeqExprCast-19" result="pass"/><test-case name="K2-SeqExprCast-20" result="pass"/><test-case name="K2-SeqExprCast-21" result="pass"/><test-case name="K2-SeqExprCast-22" result="pass"/><test-case name="K2-SeqExprCast-23" result="pass"/><test-case name="K2-SeqExprCast-24" result="pass"/><test-case name="K2-SeqExprCast-25" result="pass"/><test-case name="K2-SeqExprCast-26" result="pass"/><test-case name="K2-SeqExprCast-27" result="pass"/><test-case name="K2-SeqExprCast-28" result="pass"/><test-case name="K2-SeqExprCast-29" result="pass"/><test-case name="K2-SeqExprCast-30" result="pass"/><test-case name="K2-SeqExprCast-31" result="pass"/><test-case name="K2-SeqExprCast-32" result="pass"/><test-case name="K2-SeqExprCast-33" result="pass"/><test-case name="K2-SeqExprCast-34" result="pass"/><test-case name="K2-SeqExprCast-35" result="pass"/><test-case name="K2-SeqExprCast-36" result="pass"/><test-case name="K2-SeqExprCast-37" result="pass"/><test-case name="K2-SeqExprCast-38" result="pass"/><test-case name="K2-SeqExprCast-39" result="pass"/><test-case name="K2-SeqExprCast-40" result="pass"/><test-case name="K2-SeqExprCast-41" result="pass"/><test-case name="K2-SeqExprCast-42" result="pass"/><test-case name="K2-SeqExprCast-43" result="pass"/><test-case name="K2-SeqExprCast-44" result="pass"/><test-case name="K2-SeqExprCast-45" result="pass"/><test-case name="K2-SeqExprCast-46" result="pass"/><test-case name="K2-SeqExprCast-47" result="pass"/><test-case name="K2-SeqExprCast-48" result="pass"/><test-case name="K2-SeqExprCast-49" result="pass"/><test-case name="K2-SeqExprCast-50" result="pass"/><test-case name="K2-SeqExprCast-51" result="pass"/><test-case name="K2-SeqExprCast-52" result="pass"/><test-case name="K2-SeqExprCast-53" result="pass"/><test-case name="K2-SeqExprCast-54" result="pass"/><test-case name="K2-SeqExprCast-55" result="pass"/><test-case name="K2-SeqExprCast-56" result="pass"/><test-case name="K2-SeqExprCast-57" result="pass"/><test-case name="K2-SeqExprCast-58" result="pass"/><test-case name="K2-SeqExprCast-59" result="pass"/><test-case name="K2-SeqExprCast-60" result="pass"/><test-case name="K2-SeqExprCast-61" result="pass"/><test-case name="K2-SeqExprCast-62" result="pass"/><test-case name="K2-SeqExprCast-63" result="pass"/><test-case name="K2-SeqExprCast-64" result="pass"/><test-case name="K2-SeqExprCast-65" result="pass"/><test-case name="K2-SeqExprCast-66" result="pass"/><test-case name="K2-SeqExprCast-67" result="pass"/><test-case name="K2-SeqExprCast-68" result="pass"/><test-case name="K2-SeqExprCast-69" result="pass"/><test-case name="K2-SeqExprCast-70" result="pass"/><test-case name="K2-SeqExprCast-71" result="pass"/><test-case name="K2-SeqExprCast-72" result="pass"/><test-case name="K2-SeqExprCast-73" result="pass"/><test-case name="K2-SeqExprCast-74" result="pass"/><test-case name="K2-SeqExprCast-75" result="pass"/><test-case name="K2-SeqExprCast-76" result="pass"/><test-case name="K2-SeqExprCast-77" result="pass"/><test-case name="K2-SeqExprCast-78" result="pass"/><test-case name="K2-SeqExprCast-79" result="pass"/><test-case name="K2-SeqExprCast-80" result="pass"/><test-case name="K2-SeqExprCast-81" result="pass"/><test-case name="K2-SeqExprCast-82" result="pass"/><test-case name="K2-SeqExprCast-83" result="pass"/><test-case name="K2-SeqExprCast-84" result="pass"/><test-case name="K2-SeqExprCast-85" result="pass"/><test-case name="K2-SeqExprCast-86" result="pass"/><test-case name="K2-SeqExprCast-87" result="pass"/><test-case name="K2-SeqExprCast-88" result="pass"/><test-case name="K2-SeqExprCast-89" result="pass"/><test-case name="K2-SeqExprCast-90" result="pass"/><test-case name="K2-SeqExprCast-91" result="pass"/><test-case name="K2-SeqExprCast-92" result="pass"/><test-case name="K2-SeqExprCast-93" result="pass"/><test-case name="K2-SeqExprCast-94" result="pass"/><test-case name="K2-SeqExprCast-95" result="pass"/><test-case name="K2-SeqExprCast-96" result="pass"/><test-case name="K2-SeqExprCast-97" result="pass"/><test-case name="K2-SeqExprCast-98" result="pass"/><test-case name="K2-SeqExprCast-99" result="pass"/><test-case name="K2-SeqExprCast-100" result="pass"/><test-case name="K2-SeqExprCast-101" result="pass"/><test-case name="K2-SeqExprCast-102" result="pass"/><test-case name="K2-SeqExprCast-103" result="pass"/><test-case name="K2-SeqExprCast-104" result="pass"/><test-case name="K2-SeqExprCast-105" result="pass"/><test-case name="K2-SeqExprCast-106" result="pass"/><test-case name="K2-SeqExprCast-107" result="pass"/><test-case name="K2-SeqExprCast-108" result="pass"/><test-case name="K2-SeqExprCast-109" result="pass"/><test-case name="K2-SeqExprCast-110" result="pass"/><test-case name="K2-SeqExprCast-111" result="pass"/><test-case name="K2-SeqExprCast-112" result="pass"/><test-case name="K2-SeqExprCast-113" result="pass"/><test-case name="K2-SeqExprCast-114" result="pass"/><test-case name="K2-SeqExprCast-115" result="pass"/><test-case name="K2-SeqExprCast-116" result="pass"/><test-case name="K2-SeqExprCast-117" result="pass"/><test-case name="K2-SeqExprCast-118" result="pass"/><test-case name="K2-SeqExprCast-119" result="pass"/><test-case name="K2-SeqExprCast-120" result="pass"/><test-case name="K2-SeqExprCast-121" result="pass"/><test-case name="K2-SeqExprCast-122" result="pass"/><test-case name="K2-SeqExprCast-123" result="pass"/><test-case name="K2-SeqExprCast-124" result="pass"/><test-case name="K2-SeqExprCast-125" result="pass"/><test-case name="K2-SeqExprCast-126" result="pass"/><test-case name="K2-SeqExprCast-127" result="pass"/><test-case name="K2-SeqExprCast-128" result="pass"/><test-case name="K2-SeqExprCast-129" result="pass"/><test-case name="K2-SeqExprCast-130" result="pass"/><test-case name="K2-SeqExprCast-131" result="pass"/><test-case name="K2-SeqExprCast-132" result="pass"/><test-case name="K2-SeqExprCast-133" result="pass"/><test-case name="K2-SeqExprCast-134" result="pass"/><test-case name="K2-SeqExprCast-135" result="pass"/><test-case name="K2-SeqExprCast-136" result="pass"/><test-case name="K2-SeqExprCast-137" result="pass"/><test-case name="K2-SeqExprCast-138" result="pass"/><test-case name="K2-SeqExprCast-139" result="pass"/><test-case name="K2-SeqExprCast-140" result="pass"/><test-case name="K2-SeqExprCast-141" result="pass"/><test-case name="K2-SeqExprCast-142" result="pass"/><test-case name="K2-SeqExprCast-143" result="pass"/><test-case name="K2-SeqExprCast-144" result="pass"/><test-case name="K2-SeqExprCast-145" result="pass"/><test-case name="K2-SeqExprCast-146" result="pass"/><test-case name="K2-SeqExprCast-147" result="pass"/><test-case name="K2-SeqExprCast-148" result="pass"/><test-case name="K2-SeqExprCast-149" result="pass"/><test-case name="K2-SeqExprCast-150" result="pass"/><test-case name="K2-SeqExprCast-151" result="pass"/><test-case name="K2-SeqExprCast-152" result="pass"/><test-case name="K2-SeqExprCast-153" result="pass"/><test-case name="K2-SeqExprCast-154" result="pass"/><test-case name="K2-SeqExprCast-155" result="pass"/><test-case name="K2-SeqExprCast-156" result="pass"/><test-case name="K2-SeqExprCast-157" result="pass"/><test-case name="K2-SeqExprCast-158" result="pass"/><test-case name="K2-SeqExprCast-159" result="pass"/><test-case name="K2-SeqExprCast-160" result="pass"/><test-case name="K2-SeqExprCast-161" result="pass"/><test-case name="K2-SeqExprCast-162" result="pass"/><test-case name="K2-SeqExprCast-163" result="pass"/><test-case name="K2-SeqExprCast-164" result="pass"/><test-case name="K2-SeqExprCast-165" result="pass"/><test-case name="K2-SeqExprCast-166" result="pass"/><test-case name="K2-SeqExprCast-167" result="pass"/><test-case name="K2-SeqExprCast-168" result="pass"/><test-case name="K2-SeqExprCast-169" result="pass"/><test-case name="K2-SeqExprCast-170" result="pass"/><test-case name="K2-SeqExprCast-171" result="pass"/><test-case name="K2-SeqExprCast-172" result="pass"/><test-case name="K2-SeqExprCast-173" result="pass"/><test-case name="K2-SeqExprCast-174" result="pass"/><test-case name="K2-SeqExprCast-175" result="pass"/><test-case name="K2-SeqExprCast-176" result="pass"/><test-case name="K2-SeqExprCast-177" result="pass"/><test-case name="K2-SeqExprCast-178" result="pass"/><test-case name="K2-SeqExprCast-179" result="pass"/><test-case name="K2-SeqExprCast-180" result="pass"/><test-case name="K2-SeqExprCast-181" result="pass"/><test-case name="K2-SeqExprCast-182" result="pass"/><test-case name="K2-SeqExprCast-183" result="pass"/><test-case name="K2-SeqExprCast-184" result="pass"/><test-case name="K2-SeqExprCast-185" result="pass"/><test-case name="K2-SeqExprCast-186" result="pass"/><test-case name="K2-SeqExprCast-187" result="pass"/><test-case name="K2-SeqExprCast-188" result="pass"/><test-case name="K2-SeqExprCast-189" result="pass"/><test-case name="K2-SeqExprCast-190" result="pass"/><test-case name="K2-SeqExprCast-191" result="pass"/><test-case name="K2-SeqExprCast-192" result="pass"/><test-case name="K2-SeqExprCast-193" result="pass"/><test-case name="K2-SeqExprCast-194" result="pass"/><test-case name="K2-SeqExprCast-195" result="pass"/><test-case name="K2-SeqExprCast-196" result="pass"/><test-case name="K2-SeqExprCast-197" result="pass"/><test-case name="K2-SeqExprCast-198" result="pass"/><test-case name="K2-SeqExprCast-199" result="pass"/><test-case name="K2-SeqExprCast-200" result="pass"/><test-case name="K2-SeqExprCast-201" result="pass"/><test-case name="K2-SeqExprCast-202" result="pass"/><test-case name="K2-SeqExprCast-203" result="pass"/><test-case name="K2-SeqExprCast-204" result="pass"/><test-case name="K2-SeqExprCast-205" result="pass"/><test-case name="K2-SeqExprCast-206" result="pass"/><test-case name="K2-SeqExprCast-207" result="pass"/><test-case name="K2-SeqExprCast-208" result="pass"/><test-case name="K2-SeqExprCast-209" result="fail"/><test-case name="K2-SeqExprCast-210" result="fail"/><test-case name="K2-SeqExprCast-211" result="pass"/><test-case name="K2-SeqExprCast-212" result="pass"/><test-case name="K2-SeqExprCast-213" result="pass"/><test-case name="K2-SeqExprCast-214" result="pass"/><test-case name="K2-SeqExprCast-215" result="pass"/><test-case name="K2-SeqExprCast-216" result="pass"/><test-case name="K2-SeqExprCast-217" result="pass"/><test-case name="K2-SeqExprCast-218" result="pass"/><test-case name="K2-SeqExprCast-219" result="pass"/><test-case name="K2-SeqExprCast-220" result="pass"/><test-case name="K2-SeqExprCast-221" result="pass"/><test-case name="K2-SeqExprCast-222" result="pass"/><test-case name="K2-SeqExprCast-223" result="pass"/><test-case name="K2-SeqExprCast-224" result="pass"/><test-case name="K2-SeqExprCast-225" result="pass"/><test-case name="K2-SeqExprCast-226" result="pass"/><test-case name="K2-SeqExprCast-227" result="pass"/><test-case name="K2-SeqExprCast-228" result="pass"/><test-case name="K2-SeqExprCast-229" result="pass"/><test-case name="K2-SeqExprCast-230" result="pass"/><test-case name="K2-SeqExprCast-231" result="pass"/><test-case name="K2-SeqExprCast-232" result="pass"/><test-case name="K2-SeqExprCast-233" result="pass"/><test-case name="K2-SeqExprCast-234" result="pass"/><test-case name="K2-SeqExprCast-235" result="pass"/><test-case name="K2-SeqExprCast-236" result="pass"/><test-case name="K2-SeqExprCast-237" result="pass"/><test-case name="K2-SeqExprCast-238" result="pass"/><test-case name="K2-SeqExprCast-239" result="pass"/><test-case name="K2-SeqExprCast-240" result="pass"/><test-case name="K2-SeqExprCast-241" result="pass"/><test-case name="K2-SeqExprCast-242" result="pass"/><test-case name="K2-SeqExprCast-243" result="pass"/><test-case name="K2-SeqExprCast-244" result="pass"/><test-case name="K2-SeqExprCast-245" result="pass"/><test-case name="K2-SeqExprCast-246" result="pass"/><test-case name="K2-SeqExprCast-247" result="pass"/><test-case name="K2-SeqExprCast-248" result="pass"/><test-case name="K2-SeqExprCast-249" result="pass"/><test-case name="K2-SeqExprCast-250" result="pass"/><test-case name="K2-SeqExprCast-251" result="pass"/><test-case name="K2-SeqExprCast-252" result="pass"/><test-case name="K2-SeqExprCast-253" result="pass"/><test-case name="K2-SeqExprCast-254" result="pass"/><test-case name="K2-SeqExprCast-255" result="pass"/><test-case name="K2-SeqExprCast-256" result="pass"/><test-case name="K2-SeqExprCast-257" result="pass"/><test-case name="K2-SeqExprCast-258" result="pass"/><test-case name="K2-SeqExprCast-259" result="pass"/><test-case name="K2-SeqExprCast-260" result="pass"/><test-case name="K2-SeqExprCast-261" result="pass"/><test-case name="K2-SeqExprCast-262" result="pass"/><test-case name="K2-SeqExprCast-263" result="pass"/><test-case name="K2-SeqExprCast-264" result="pass"/><test-case name="K2-SeqExprCast-265" result="pass"/><test-case name="K2-SeqExprCast-266" result="pass"/><test-case name="K2-SeqExprCast-267" result="pass"/><test-case name="K2-SeqExprCast-268" result="pass"/><test-case name="K2-SeqExprCast-269" result="pass"/><test-case name="K2-SeqExprCast-270" result="pass"/><test-case name="K2-SeqExprCast-271" result="pass"/><test-case name="K2-SeqExprCast-272" result="pass"/><test-case name="K2-SeqExprCast-273" result="pass"/><test-case name="K2-SeqExprCast-274" result="pass"/><test-case name="K2-SeqExprCast-275" result="pass"/><test-case name="K2-SeqExprCast-276" result="pass"/><test-case name="K2-SeqExprCast-277" result="pass"/><test-case name="K2-SeqExprCast-278" result="pass"/><test-case name="K2-SeqExprCast-279" result="pass"/><test-case name="K2-SeqExprCast-280" result="pass"/><test-case name="K2-SeqExprCast-281" result="pass"/><test-case name="K2-SeqExprCast-282" result="pass"/><test-case name="K2-SeqExprCast-283" result="pass"/><test-case name="K2-SeqExprCast-284" result="pass"/><test-case name="K2-SeqExprCast-285" result="pass"/><test-case name="K2-SeqExprCast-286" result="pass"/><test-case name="K2-SeqExprCast-287" result="pass"/><test-case name="K2-SeqExprCast-288" result="pass"/><test-case name="K2-SeqExprCast-289" result="pass"/><test-case name="K2-SeqExprCast-290" result="pass"/><test-case name="K2-SeqExprCast-291" result="pass"/><test-case name="K2-SeqExprCast-292" result="pass"/><test-case name="K2-SeqExprCast-293" result="pass"/><test-case name="K2-SeqExprCast-294" result="pass"/><test-case name="K2-SeqExprCast-295" result="pass"/><test-case name="K2-SeqExprCast-296" result="pass"/><test-case name="K2-SeqExprCast-297" result="pass"/><test-case name="K2-SeqExprCast-298" result="pass"/><test-case name="K2-SeqExprCast-299" result="pass"/><test-case name="K2-SeqExprCast-300" result="pass"/><test-case name="K2-SeqExprCast-301" result="pass"/><test-case name="K2-SeqExprCast-302" result="pass"/><test-case name="K2-SeqExprCast-303" result="pass"/><test-case name="K2-SeqExprCast-304" result="pass"/><test-case name="K2-SeqExprCast-305" result="pass"/><test-case name="K2-SeqExprCast-306" result="pass"/><test-case name="K2-SeqExprCast-307" result="pass"/><test-case name="K2-SeqExprCast-308" result="pass"/><test-case name="K2-SeqExprCast-309" result="pass"/><test-case name="K2-SeqExprCast-310" result="pass"/><test-case name="K2-SeqExprCast-311" result="pass"/><test-case name="K2-SeqExprCast-312" result="pass"/><test-case name="K2-SeqExprCast-313" result="pass"/><test-case name="K2-SeqExprCast-314" result="pass"/><test-case name="K2-SeqExprCast-315" result="pass"/><test-case name="K2-SeqExprCast-316" result="pass"/><test-case name="K2-SeqExprCast-317" result="pass"/><test-case name="K2-SeqExprCast-318" result="pass"/><test-case name="K2-SeqExprCast-319" result="pass"/><test-case name="K2-SeqExprCast-320" result="pass"/><test-case name="K2-SeqExprCast-321" result="pass"/><test-case name="K2-SeqExprCast-322" result="pass"/><test-case name="K2-SeqExprCast-323" result="pass"/><test-case name="K2-SeqExprCast-324" result="pass"/><test-case name="K2-SeqExprCast-325" result="pass"/><test-case name="K2-SeqExprCast-326" result="pass"/><test-case name="K2-SeqExprCast-327" result="pass"/><test-case name="K2-SeqExprCast-328" result="pass"/><test-case name="K2-SeqExprCast-329" result="pass"/><test-case name="K2-SeqExprCast-330" result="pass"/><test-case name="K2-SeqExprCast-331" result="pass"/><test-case name="K2-SeqExprCast-332" result="pass"/><test-case name="K2-SeqExprCast-333" result="pass"/><test-case name="K2-SeqExprCast-334" result="pass"/><test-case name="K2-SeqExprCast-335" result="pass"/><test-case name="K2-SeqExprCast-336" result="pass"/><test-case name="K2-SeqExprCast-337" result="pass"/><test-case name="K2-SeqExprCast-338" result="pass"/><test-case name="K2-SeqExprCast-339" result="pass"/><test-case name="K2-SeqExprCast-340" result="pass"/><test-case name="K2-SeqExprCast-341" result="pass"/><test-case name="K2-SeqExprCast-342" result="pass"/><test-case name="K2-SeqExprCast-343" result="pass"/><test-case name="K2-SeqExprCast-344" result="pass"/><test-case name="K2-SeqExprCast-345" result="pass"/><test-case name="K2-SeqExprCast-346" result="pass"/><test-case name="K2-SeqExprCast-347" result="pass"/><test-case name="K2-SeqExprCast-348" result="pass"/><test-case name="K2-SeqExprCast-349" result="pass"/><test-case name="K2-SeqExprCast-350" result="pass"/><test-case name="K2-SeqExprCast-351" result="pass"/><test-case name="K2-SeqExprCast-352" result="pass"/><test-case name="K2-SeqExprCast-353" result="pass"/><test-case name="K2-SeqExprCast-354" result="pass"/><test-case name="K2-SeqExprCast-355" result="pass"/><test-case name="K2-SeqExprCast-356" result="pass"/><test-case name="K2-SeqExprCast-357" result="pass"/><test-case name="K2-SeqExprCast-358" result="pass"/><test-case name="K2-SeqExprCast-359" result="pass"/><test-case name="K2-SeqExprCast-360" result="pass"/><test-case name="K2-SeqExprCast-361" result="pass"/><test-case name="K2-SeqExprCast-362" result="pass"/><test-case name="K2-SeqExprCast-363" result="pass"/><test-case name="K2-SeqExprCast-364" result="pass"/><test-case name="K2-SeqExprCast-365" result="pass"/><test-case name="K2-SeqExprCast-366" result="pass"/><test-case name="K2-SeqExprCast-367" result="pass"/><test-case name="K2-SeqExprCast-368" result="pass"/><test-case name="K2-SeqExprCast-369" result="pass"/><test-case name="K2-SeqExprCast-370" result="pass"/><test-case name="K2-SeqExprCast-371" result="pass"/><test-case name="K2-SeqExprCast-372" result="pass"/><test-case name="K2-SeqExprCast-373" result="pass"/><test-case name="K2-SeqExprCast-374" result="pass"/><test-case name="K2-SeqExprCast-375" result="pass"/><test-case name="K2-SeqExprCast-376" result="pass"/><test-case name="K2-SeqExprCast-377" result="pass"/><test-case name="K2-SeqExprCast-378" result="pass"/><test-case name="K2-SeqExprCast-379" result="pass"/><test-case name="K2-SeqExprCast-380" result="pass"/><test-case name="K2-SeqExprCast-381" result="pass"/><test-case name="K2-SeqExprCast-382" result="pass"/><test-case name="K2-SeqExprCast-383" result="pass"/><test-case name="K2-SeqExprCast-384" result="pass"/><test-case name="K2-SeqExprCast-385" result="pass"/><test-case name="K2-SeqExprCast-386" result="pass"/><test-case name="K2-SeqExprCast-387" result="pass"/><test-case name="K2-SeqExprCast-388" result="pass"/><test-case name="K2-SeqExprCast-389" result="pass"/><test-case name="K2-SeqExprCast-390" result="pass"/><test-case name="K2-SeqExprCast-391" result="pass"/><test-case name="K2-SeqExprCast-392" result="pass"/><test-case name="K2-SeqExprCast-393" result="pass"/><test-case name="K2-SeqExprCast-394" result="pass"/><test-case name="K2-SeqExprCast-395" result="pass"/><test-case name="K2-SeqExprCast-396" result="pass"/><test-case name="K2-SeqExprCast-397" result="pass"/><test-case name="K2-SeqExprCast-398" result="pass"/><test-case name="K2-SeqExprCast-399" result="pass"/><test-case name="K2-SeqExprCast-400" result="pass"/><test-case name="K2-SeqExprCast-401" result="pass"/><test-case name="K2-SeqExprCast-402" result="pass"/><test-case name="K2-SeqExprCast-403" result="pass"/><test-case name="K2-SeqExprCast-404" result="pass"/><test-case name="K2-SeqExprCast-405" result="pass"/><test-case name="K2-SeqExprCast-406" result="pass"/><test-case name="K2-SeqExprCast-407" result="pass"/><test-case name="K2-SeqExprCast-408" result="pass"/><test-case name="K2-SeqExprCast-409" result="pass"/><test-case name="K2-SeqExprCast-410" result="pass"/><test-case name="K2-SeqExprCast-411" result="pass"/><test-case name="K2-SeqExprCast-412" result="pass"/><test-case name="K2-SeqExprCast-413" result="pass"/><test-case name="K2-SeqExprCast-414" result="pass"/><test-case name="K2-SeqExprCast-415" result="pass"/><test-case name="K2-SeqExprCast-416" result="pass"/><test-case name="K2-SeqExprCast-417" result="pass"/><test-case name="K2-SeqExprCast-418" result="pass"/><test-case name="K2-SeqExprCast-419" result="pass"/><test-case name="K2-SeqExprCast-420" result="pass"/><test-case name="K2-SeqExprCast-421" result="pass"/><test-case name="K2-SeqExprCast-422" result="fail"/><test-case name="K2-SeqExprCast-423" result="pass"/><test-case name="K2-SeqExprCast-424" result="pass"/><test-case name="K2-SeqExprCast-425" result="pass"/><test-case name="K2-SeqExprCast-426" result="pass"/><test-case name="K2-SeqExprCast-427" result="pass"/><test-case name="K2-SeqExprCast-428" result="pass"/><test-case name="K2-SeqExprCast-429" result="pass"/><test-case name="K2-SeqExprCast-430" result="pass"/><test-case name="K2-SeqExprCast-431" result="pass"/><test-case name="K2-SeqExprCast-432" result="pass"/><test-case name="K2-SeqExprCast-433" result="pass"/><test-case name="K2-SeqExprCast-434" result="pass"/><test-case name="K2-SeqExprCast-435" result="pass"/><test-case name="K2-SeqExprCast-436" result="pass"/><test-case name="K2-SeqExprCast-437" result="pass"/><test-case name="K2-SeqExprCast-438" result="pass"/><test-case name="K2-SeqExprCast-439" result="pass"/><test-case name="K2-SeqExprCast-440" result="pass"/><test-case name="K2-SeqExprCast-441" result="pass"/><test-case name="K2-SeqExprCast-442" result="pass"/><test-case name="K2-SeqExprCast-443" result="pass"/><test-case name="K2-SeqExprCast-444" result="pass"/><test-case name="K2-SeqExprCast-445" result="pass"/><test-case name="K2-SeqExprCast-446" result="pass"/><test-case name="K2-SeqExprCast-447" result="pass"/><test-case name="K2-SeqExprCast-448" result="pass"/><test-case name="K2-SeqExprCast-449" result="pass"/><test-case name="K2-SeqExprCast-450" result="pass"/><test-case name="K2-SeqExprCast-451" result="pass"/><test-case name="K2-SeqExprCast-452" result="pass"/><test-case name="K2-SeqExprCast-453" result="pass"/><test-case name="K2-SeqExprCast-454" result="pass"/><test-case name="K2-SeqExprCast-455" result="pass"/><test-case name="K2-SeqExprCast-456" result="pass"/><test-case name="K2-SeqExprCast-457" result="pass"/><test-case name="K2-SeqExprCast-458" result="pass"/><test-case name="K2-SeqExprCast-459" result="pass"/><test-case name="K2-SeqExprCast-460" result="pass"/><test-case name="K2-SeqExprCast-461" result="pass"/><test-case name="K2-SeqExprCast-462" result="pass"/><test-case name="K2-SeqExprCast-463" result="pass"/><test-case name="K2-SeqExprCast-464" result="pass"/><test-case name="K2-SeqExprCast-465" result="pass"/><test-case name="K2-SeqExprCast-466" result="pass"/><test-case name="K2-SeqExprCast-467" result="pass"/><test-case name="K2-SeqExprCast-468" result="pass"/><test-case name="K2-SeqExprCast-469" result="pass"/><test-case name="K2-SeqExprCast-470" result="pass"/><test-case name="K2-SeqExprCast-471" result="pass"/><test-case name="K2-SeqExprCast-472" result="pass"/><test-case name="K2-SeqExprCast-473" result="pass"/><test-case name="K2-SeqExprCast-474" result="pass"/><test-case name="K2-SeqExprCast-475" result="pass"/><test-case name="K2-SeqExprCast-476" result="pass"/><test-case name="K2-SeqExprCast-477" result="pass"/><test-case name="K2-SeqExprCast-478" result="pass"/><test-case name="K2-SeqExprCast-479" result="pass"/><test-case name="K2-SeqExprCast-480" result="pass"/><test-case name="K2-SeqExprCast-481" result="pass"/><test-case name="K2-SeqExprCast-482" result="pass"/><test-case name="K2-SeqExprCast-483" result="pass"/><test-case name="K2-SeqExprCast-484" result="pass"/><test-case name="K2-SeqExprCast-485" result="pass"/><test-case name="K2-SeqExprCast-486" result="pass"/><test-case name="K2-SeqExprCast-487" result="pass"/><test-case name="K2-SeqExprCast-488" result="pass"/><test-case name="K2-SeqExprCast-489" result="fail"/><test-case name="K2-SeqExprCast-490" result="fail"/><test-case name="K2-SeqExprCast-491" result="pass"/><test-case name="K2-SeqExprCast-492" result="pass"/><test-case name="K2-SeqExprCast-493" result="pass"/><test-case name="K2-SeqExprCast-494" result="pass"/><test-case name="K2-SeqExprCast-495" result="pass"/><test-case name="K2-SeqExprCast-496" result="pass"/><test-case name="K2-SeqExprCast-497" result="pass"/><test-case name="K2-SeqExprCast-498" result="pass"/><test-case name="K2-SeqExprCast-499" result="pass"/><test-case name="K2-SeqExprCast-500" result="pass"/><test-case name="K2-SeqExprCast-501" result="pass"/><test-case name="K2-SeqExprCast-502" result="fail"/><test-case name="K2-SeqExprCast-503" result="fail"/><test-case name="K2-SeqExprCast-504" result="pass"/><test-case name="K2-SeqExprCast-505" result="pass"/><test-case name="K2-SeqExprCast-506" result="pass"/><test-case name="CastableAs001" result="pass"/><test-case name="CastableAs002" result="pass"/><test-case name="CastableAs003" result="pass"/><test-case name="CastableAs004" result="pass"/><test-case name="CastableAs005" result="pass"/><test-case name="CastableAs006" result="pass"/><test-case name="CastableAs007" result="pass"/><test-case name="CastableAs008" result="pass"/><test-case name="CastableAs009" result="pass"/><test-case name="CastableAs010" result="pass"/><test-case name="CastableAs011" result="pass"/><test-case name="CastableAs012" result="pass"/><test-case name="CastableAs013" result="pass"/><test-case name="CastableAs014" result="pass"/><test-case name="CastableAs015" result="pass"/><test-case name="CastableAs016" result="pass"/><test-case name="CastableAs017" result="pass"/><test-case name="CastableAs018" result="pass"/><test-case name="CastableAs019" result="pass"/><test-case name="CastableAs020" result="pass"/><test-case name="CastableAs021" result="pass"/><test-case name="CastableAs022" result="pass"/><test-case name="CastableAs023" result="pass"/><test-case name="CastableAs024" result="pass"/><test-case name="CastableAs025" result="pass"/><test-case name="CastableAs026" result="pass"/><test-case name="CastableAs027" result="pass"/><test-case name="CastableAs028" result="pass"/><test-case name="CastableAs029" result="pass"/><test-case name="CastableAs030" result="pass"/><test-case name="CastableAs031" result="pass"/><test-case name="CastableAs032" result="pass"/><test-case name="CastableAs033" result="pass"/><test-case name="CastableAs034" result="pass"/><test-case name="CastableAs035" result="pass"/><test-case name="CastableAs036" result="pass"/><test-case name="CastableAs037" result="pass"/><test-case name="CastableAs038" result="pass"/><test-case name="CastableAs039" result="pass"/><test-case name="CastableAs040" result="pass"/><test-case name="CastableAs041" result="pass"/><test-case name="CastableAs042" result="pass"/><test-case name="CastableAs043" result="pass"/><test-case name="CastableAs044" result="pass"/><test-case name="CastableAs045" result="pass"/><test-case name="CastableAs046" result="pass"/><test-case name="CastableAs047" result="pass"/><test-case name="CastableAs048" result="pass"/><test-case name="CastableAs049" result="pass"/><test-case name="CastableAs050" result="pass"/><test-case name="CastableAs051" result="pass"/><test-case name="CastableAs052" result="pass"/><test-case name="CastableAs053" result="pass"/><test-case name="CastableAs054" result="pass"/><test-case name="CastableAs055" result="pass"/><test-case name="CastableAs056" result="pass"/><test-case name="CastableAs057" result="pass"/><test-case name="CastableAs058" result="pass"/><test-case name="CastableAs059" result="pass"/><test-case name="CastableAs060" result="pass"/><test-case name="CastableAs061" result="pass"/><test-case name="CastableAs062" result="pass"/><test-case name="CastableAs063" result="pass"/><test-case name="CastableAs064" result="pass"/><test-case name="CastableAs065" result="pass"/><test-case name="CastableAs066" result="pass"/><test-case name="CastableAs067" result="pass"/><test-case name="CastableAs068" result="pass"/><test-case name="CastableAs069" result="pass"/><test-case name="CastableAs070" result="pass"/><test-case name="CastableAs071" result="pass"/><test-case name="CastableAs072" result="pass"/><test-case name="CastableAs073" result="pass"/><test-case name="CastableAs074" result="pass"/><test-case name="CastableAs075" result="pass"/><test-case name="CastableAs076" result="pass"/><test-case name="CastableAs077" result="pass"/><test-case name="CastableAs078" result="pass"/><test-case name="CastableAs079" result="pass"/><test-case name="CastableAs080" result="pass"/><test-case name="CastableAs081" result="pass"/><test-case name="CastableAs082" result="pass"/><test-case name="CastableAs083" result="pass"/><test-case name="CastableAs084" result="pass"/><test-case name="CastableAs085" result="pass"/><test-case name="CastableAs086" result="pass"/><test-case name="CastableAs087" result="pass"/><test-case name="CastableAs088" result="pass"/><test-case name="CastableAs089" result="pass"/><test-case name="CastableAs090" result="pass"/><test-case name="CastableAs091" result="pass"/><test-case name="CastableAs092" result="pass"/><test-case name="CastableAs093" result="pass"/><test-case name="CastableAs094" result="pass"/><test-case name="CastableAs095" result="pass"/><test-case name="CastableAs096" result="pass"/><test-case name="CastableAs097" result="pass"/><test-case name="CastableAs098" result="pass"/><test-case name="CastableAs099" result="pass"/><test-case name="CastableAs100" result="pass"/><test-case name="CastableAs101" result="pass"/><test-case name="CastableAs102" result="pass"/><test-case name="CastableAs103" result="pass"/><test-case name="CastableAs104" result="pass"/><test-case name="CastableAs105" result="pass"/><test-case name="CastableAs106" result="pass"/><test-case name="CastableAs107" result="pass"/><test-case name="CastableAs108" result="pass"/><test-case name="CastableAs109" result="pass"/><test-case name="CastableAs110" result="pass"/><test-case name="CastableAs111" result="pass"/><test-case name="CastableAs112" result="pass"/><test-case name="CastableAs113" result="pass"/><test-case name="CastableAs114" result="pass"/><test-case name="CastableAs115" result="pass"/><test-case name="CastableAs116" result="pass"/><test-case name="CastableAs117" result="pass"/><test-case name="CastableAs118" result="pass"/><test-case name="CastableAs119" result="pass"/><test-case name="CastableAs120" result="pass"/><test-case name="CastableAs121" result="pass"/><test-case name="CastableAs122" result="pass"/><test-case name="CastableAs123" result="pass"/><test-case name="CastableAs124" result="pass"/><test-case name="CastableAs125" result="pass"/><test-case name="CastableAs126" result="pass"/><test-case name="CastableAs127" result="pass"/><test-case name="CastableAs128" result="pass"/><test-case name="CastableAs129" result="pass"/><test-case name="CastableAs130" result="pass"/><test-case name="CastableAs131" result="pass"/><test-case name="CastableAs132" result="pass"/><test-case name="CastableAs133" result="pass"/><test-case name="CastableAs134" result="pass"/><test-case name="CastableAs135" result="pass"/><test-case name="CastableAs136" result="pass"/><test-case name="CastableAs137" result="pass"/><test-case name="CastableAs138" result="pass"/><test-case name="CastableAs139" result="pass"/><test-case name="CastableAs140" result="pass"/><test-case name="CastableAs141" result="pass"/><test-case name="CastableAs142" result="pass"/><test-case name="CastableAs143" result="pass"/><test-case name="CastableAs144" result="pass"/><test-case name="CastableAs145" result="pass"/><test-case name="CastableAs146" result="pass"/><test-case name="CastableAs147" result="pass"/><test-case name="CastableAs148" result="pass"/><test-case name="CastableAs149" result="pass"/><test-case name="CastableAs150" result="pass"/><test-case name="CastableAs151" result="pass"/><test-case name="CastableAs152" result="pass"/><test-case name="CastableAs153" result="pass"/><test-case name="CastableAs154" result="pass"/><test-case name="CastableAs155" result="pass"/><test-case name="CastableAs156" result="pass"/><test-case name="CastableAs157" result="pass"/><test-case name="CastableAs158" result="pass"/><test-case name="CastableAs159" result="pass"/><test-case name="CastableAs160" result="pass"/><test-case name="CastableAs161" result="pass"/><test-case name="CastableAs162" result="pass"/><test-case name="CastableAs163" result="pass"/><test-case name="CastableAs164" result="pass"/><test-case name="CastableAs165" result="pass"/><test-case name="CastableAs166" result="pass"/><test-case name="CastableAs167" result="pass"/><test-case name="CastableAs168" result="pass"/><test-case name="CastableAs169" result="pass"/><test-case name="CastableAs170" result="pass"/><test-case name="CastableAs171" result="pass"/><test-case name="CastableAs172" result="pass"/><test-case name="CastableAs173" result="pass"/><test-case name="CastableAs174" result="pass"/><test-case name="CastableAs175" result="pass"/><test-case name="CastableAs176" result="pass"/><test-case name="CastableAs177" result="pass"/><test-case name="CastableAs178" result="pass"/><test-case name="CastableAs179" result="pass"/><test-case name="CastableAs180" result="pass"/><test-case name="CastableAs181" result="pass"/><test-case name="CastableAs182" result="pass"/><test-case name="CastableAs183" result="pass"/><test-case name="CastableAs184" result="pass"/><test-case name="CastableAs185" result="pass"/><test-case name="CastableAs186" result="pass"/><test-case name="CastableAs187" result="pass"/><test-case name="CastableAs188" result="pass"/><test-case name="CastableAs189" result="pass"/><test-case name="CastableAs190" result="pass"/><test-case name="CastableAs191" result="pass"/><test-case name="CastableAs192" result="pass"/><test-case name="CastableAs193" result="pass"/><test-case name="CastableAs194" result="pass"/><test-case name="CastableAs195" result="pass"/><test-case name="CastableAs196" result="pass"/><test-case name="CastableAs197" result="pass"/><test-case name="CastableAs198" result="pass"/><test-case name="CastableAs199" result="pass"/><test-case name="CastableAs200" result="pass"/><test-case name="CastableAs201" result="pass"/><test-case name="CastableAs202" result="pass"/><test-case name="CastableAs203" result="pass"/><test-case name="CastableAs204" result="fail"/><test-case name="CastableAs205" result="pass"/><test-case name="CastableAs206" result="pass"/><test-case name="CastableAs207" result="pass"/><test-case name="CastableAs208" result="pass"/><test-case name="CastableAs209" result="pass"/><test-case name="CastableAs210" result="pass"/><test-case name="CastableAs211" result="fail"/><test-case name="CastableAs212" result="pass"/><test-case name="CastableAs213" result="pass"/><test-case name="CastableAs214" result="pass"/><test-case name="CastableAs215" result="pass"/><test-case name="CastableAs216" result="pass"/><test-case name="CastableAs217" result="pass"/><test-case name="CastableAs218" result="pass"/><test-case name="CastableAs219" result="pass"/><test-case name="CastableAs220" result="pass"/><test-case name="CastableAs221" result="pass"/><test-case name="CastableAs222" result="pass"/><test-case name="CastableAs223" result="pass"/><test-case name="CastableAs224" result="pass"/><test-case name="CastableAs225" result="pass"/><test-case name="CastableAs226" result="pass"/><test-case name="CastableAs227" result="pass"/><test-case name="CastableAs228" result="pass"/><test-case name="CastableAs229" result="pass"/><test-case name="CastableAs230" result="pass"/><test-case name="CastableAs231" result="pass"/><test-case name="CastableAs232" result="pass"/><test-case name="CastableAs233" result="pass"/><test-case name="CastableAs234" result="pass"/><test-case name="CastableAs235" result="pass"/><test-case name="CastableAs236" result="pass"/><test-case name="CastableAs237" result="pass"/><test-case name="CastableAs238" result="pass"/><test-case name="CastableAs239" result="pass"/><test-case name="CastableAs240" result="pass"/><test-case name="CastableAs241" result="pass"/><test-case name="CastableAs242" result="pass"/><test-case name="CastableAs243" result="pass"/><test-case name="CastableAs244" result="pass"/><test-case name="CastableAs245" result="pass"/><test-case name="CastableAs246" result="pass"/><test-case name="CastableAs247" result="pass"/><test-case name="CastableAs248" result="pass"/><test-case name="CastableAs249" result="pass"/><test-case name="CastableAs250" result="pass"/><test-case name="CastableAs251" result="pass"/><test-case name="CastableAs252" result="pass"/><test-case name="CastableAs253" result="pass"/><test-case name="CastableAs254" result="pass"/><test-case name="CastableAs255" result="pass"/><test-case name="CastableAs256" result="pass"/><test-case name="CastableAs257" result="pass"/><test-case name="CastableAs258" result="pass"/><test-case name="CastableAs259" result="pass"/><test-case name="CastableAs260" result="pass"/><test-case name="CastableAs261" result="pass"/><test-case name="CastableAs262" result="pass"/><test-case name="CastableAs263" result="pass"/><test-case name="CastableAs264" result="pass"/><test-case name="CastableAs265" result="pass"/><test-case name="CastableAs266" result="pass"/><test-case name="CastableAs267" result="pass"/><test-case name="CastableAs268" result="pass"/><test-case name="CastableAs269" result="pass"/><test-case name="CastableAs270" result="pass"/><test-case name="CastableAs271" result="pass"/><test-case name="CastableAs272" result="pass"/><test-case name="CastableAs273" result="pass"/><test-case name="CastableAs274" result="pass"/><test-case name="CastableAs275" result="pass"/><test-case name="CastableAs276" result="pass"/><test-case name="CastableAs277" result="pass"/><test-case name="CastableAs278" result="pass"/><test-case name="CastableAs279" result="pass"/><test-case name="CastableAs280" result="pass"/><test-case name="CastableAs281" result="pass"/><test-case name="CastableAs282" result="pass"/><test-case name="CastableAs283" result="pass"/><test-case name="CastableAs284" result="pass"/><test-case name="CastableAs285" result="pass"/><test-case name="CastableAs286" result="pass"/><test-case name="CastableAs287" result="pass"/><test-case name="CastableAs288" result="pass"/><test-case name="CastableAs289" result="pass"/><test-case name="CastableAs290" result="pass"/><test-case name="CastableAs291" result="pass"/><test-case name="CastableAs292" result="pass"/><test-case name="CastableAs293" result="pass"/><test-case name="CastableAs294" result="pass"/><test-case name="CastableAs295" result="pass"/><test-case name="CastableAs296" result="pass"/><test-case name="CastableAs297" result="pass"/><test-case name="CastableAs298" result="pass"/><test-case name="CastableAs299" result="pass"/><test-case name="CastableAs300" result="pass"/><test-case name="CastableAs301" result="pass"/><test-case name="CastableAs302" result="pass"/><test-case name="CastableAs303" result="pass"/><test-case name="CastableAs304" result="pass"/><test-case name="CastableAs305" result="pass"/><test-case name="CastableAs306" result="pass"/><test-case name="CastableAs307" result="pass"/><test-case name="CastableAs308" result="pass"/><test-case name="CastableAs309" result="pass"/><test-case name="CastableAs310" result="pass"/><test-case name="CastableAs311" result="pass"/><test-case name="CastableAs312" result="pass"/><test-case name="CastableAs313" result="pass"/><test-case name="CastableAs314" result="pass"/><test-case name="CastableAs315" result="pass"/><test-case name="CastableAs316" result="pass"/><test-case name="CastableAs317" result="pass"/><test-case name="CastableAs318" result="pass"/><test-case name="CastableAs319" result="pass"/><test-case name="CastableAs320" result="pass"/><test-case name="CastableAs321" result="pass"/><test-case name="CastableAs322" result="pass"/><test-case name="CastableAs323" result="pass"/><test-case name="CastableAs324" result="pass"/><test-case name="CastableAs325" result="pass"/><test-case name="CastableAs326" result="pass"/><test-case name="CastableAs327" result="pass"/><test-case name="CastableAs328" result="pass"/><test-case name="CastableAs329" result="pass"/><test-case name="CastableAs330" result="pass"/><test-case name="CastableAs331" result="pass"/><test-case name="CastableAs332" result="pass"/><test-case name="CastableAs333" result="pass"/><test-case name="CastableAs334" result="pass"/><test-case name="CastableAs335" result="pass"/><test-case name="CastableAs336" result="pass"/><test-case name="CastableAs337" result="pass"/><test-case name="CastableAs338" result="pass"/><test-case name="CastableAs339" result="pass"/><test-case name="CastableAs340" result="pass"/><test-case name="CastableAs341" result="pass"/><test-case name="CastableAs342" result="pass"/><test-case name="CastableAs343" result="pass"/><test-case name="CastableAs344" result="pass"/><test-case name="CastableAs345" result="pass"/><test-case name="CastableAs346" result="pass"/><test-case name="CastableAs347" result="pass"/><test-case name="CastableAs348" result="pass"/><test-case name="CastableAs349" result="pass"/><test-case name="CastableAs350" result="pass"/><test-case name="CastableAs351" result="pass"/><test-case name="CastableAs352" result="pass"/><test-case name="CastableAs353" result="pass"/><test-case name="CastableAs354" result="pass"/><test-case name="CastableAs355" result="pass"/><test-case name="CastableAs356" result="pass"/><test-case name="CastableAs357" result="pass"/><test-case name="CastableAs358" result="pass"/><test-case name="CastableAs359" result="pass"/><test-case name="CastableAs360" result="pass"/><test-case name="CastableAs361" result="pass"/><test-case name="CastableAs362" result="pass"/><test-case name="CastableAs363" result="pass"/><test-case name="CastableAs364" result="pass"/><test-case name="CastableAs365" result="pass"/><test-case name="CastableAs366" result="pass"/><test-case name="CastableAs367" result="pass"/><test-case name="CastableAs368" result="pass"/><test-case name="CastableAs369" result="pass"/><test-case name="CastableAs370" result="pass"/><test-case name="CastableAs371" result="pass"/><test-case name="CastableAs372" result="pass"/><test-case name="CastableAs373" result="pass"/><test-case name="CastableAs374" result="pass"/><test-case name="CastableAs375" result="pass"/><test-case name="CastableAs376" result="pass"/><test-case name="CastableAs377" result="pass"/><test-case name="CastableAs378" result="pass"/><test-case name="CastableAs379" result="pass"/><test-case name="CastableAs380" result="pass"/><test-case name="CastableAs381" result="pass"/><test-case name="CastableAs382" result="pass"/><test-case name="CastableAs383" result="pass"/><test-case name="CastableAs384" result="pass"/><test-case name="CastableAs385" result="pass"/><test-case name="CastableAs386" result="pass"/><test-case name="CastableAs387" result="pass"/><test-case name="CastableAs388" result="pass"/><test-case name="CastableAs389" result="pass"/><test-case name="CastableAs390" result="pass"/><test-case name="CastableAs391" result="pass"/><test-case name="CastableAs392" result="pass"/><test-case name="CastableAs393" result="pass"/><test-case name="CastableAs394" result="pass"/><test-case name="CastableAs395" result="pass"/><test-case name="CastableAs396" result="pass"/><test-case name="CastableAs397" result="pass"/><test-case name="CastableAs398" result="pass"/><test-case name="CastableAs399" result="pass"/><test-case name="CastableAs400" result="pass"/><test-case name="CastableAs401" result="pass"/><test-case name="CastableAs402" result="pass"/><test-case name="CastableAs403" result="pass"/><test-case name="CastableAs404" result="pass"/><test-case name="CastableAs405" result="pass"/><test-case name="CastableAs406" result="pass"/><test-case name="CastableAs407" result="pass"/><test-case name="CastableAs408" result="pass"/><test-case name="CastableAs409" result="pass"/><test-case name="CastableAs410" result="pass"/><test-case name="CastableAs411" result="pass"/><test-case name="CastableAs412" result="pass"/><test-case name="CastableAs413" result="pass"/><test-case name="CastableAs414" result="pass"/><test-case name="CastableAs415" result="pass"/><test-case name="CastableAs416" result="pass"/><test-case name="CastableAs417" result="pass"/><test-case name="CastableAs418" result="pass"/><test-case name="CastableAs419" result="pass"/><test-case name="CastableAs420" result="pass"/><test-case name="CastableAs421" result="pass"/><test-case name="CastableAs422" result="pass"/><test-case name="CastableAs423" result="pass"/><test-case name="CastableAs424" result="pass"/><test-case name="CastableAs425" result="pass"/><test-case name="CastableAs426" result="pass"/><test-case name="CastableAs427" result="pass"/><test-case name="CastableAs428" result="pass"/><test-case name="CastableAs429" result="pass"/><test-case name="CastableAs430" result="pass"/><test-case name="CastableAs431" result="pass"/><test-case name="CastableAs432" result="pass"/><test-case name="CastableAs433" result="pass"/><test-case name="CastableAs434" result="pass"/><test-case name="CastableAs435" result="pass"/><test-case name="CastableAs436" result="pass"/><test-case name="CastableAs437" result="pass"/><test-case name="CastableAs438" result="pass"/><test-case name="CastableAs439" result="pass"/><test-case name="CastableAs440" result="pass"/><test-case name="CastableAs441" result="pass"/><test-case name="CastableAs442" result="pass"/><test-case name="CastableAs443" result="pass"/><test-case name="CastableAs444" result="pass"/><test-case name="CastableAs445" result="pass"/><test-case name="CastableAs446" result="pass"/><test-case name="CastableAs447" result="pass"/><test-case name="CastableAs448" result="pass"/><test-case name="CastableAs449" result="pass"/><test-case name="CastableAs450" result="pass"/><test-case name="CastableAs451" result="pass"/><test-case name="CastableAs452" result="pass"/><test-case name="CastableAs453" result="pass"/><test-case name="CastableAs454" result="pass"/><test-case name="CastableAs455" result="pass"/><test-case name="CastableAs456" result="pass"/><test-case name="CastableAs457" result="pass"/><test-case name="CastableAs458" result="pass"/><test-case name="CastableAs459" result="pass"/><test-case name="CastableAs460" result="pass"/><test-case name="CastableAs461" result="pass"/><test-case name="CastableAs462" result="pass"/><test-case name="CastableAs463" result="pass"/><test-case name="CastableAs464" result="pass"/><test-case name="CastableAs465" result="pass"/><test-case name="CastableAs466" result="pass"/><test-case name="CastableAs467" result="pass"/><test-case name="CastableAs468" result="pass"/><test-case name="CastableAs469" result="pass"/><test-case name="CastableAs470" result="pass"/><test-case name="CastableAs471" result="pass"/><test-case name="CastableAs472" result="pass"/><test-case name="CastableAs473" result="pass"/><test-case name="CastableAs474" result="pass"/><test-case name="CastableAs475" result="pass"/><test-case name="CastableAs476" result="pass"/><test-case name="CastableAs477" result="pass"/><test-case name="CastableAs478" result="pass"/><test-case name="CastableAs479" result="pass"/><test-case name="CastableAs480" result="pass"/><test-case name="CastableAs481" result="pass"/><test-case name="CastableAs482" result="pass"/><test-case name="CastableAs483" result="pass"/><test-case name="CastableAs484" result="pass"/><test-case name="CastableAs485" result="pass"/><test-case name="CastableAs486" result="pass"/><test-case name="CastableAs487" result="pass"/><test-case name="CastableAs488" result="pass"/><test-case name="CastableAs489" result="pass"/><test-case name="CastableAs490" result="pass"/><test-case name="CastableAs491" result="pass"/><test-case name="CastableAs492" result="pass"/><test-case name="CastableAs493" result="pass"/><test-case name="CastableAs494" result="pass"/><test-case name="CastableAs495" result="pass"/><test-case name="CastableAs496" result="pass"/><test-case name="CastableAs497" result="pass"/><test-case name="CastableAs498" result="pass"/><test-case name="CastableAs499" result="pass"/><test-case name="CastableAs500" result="pass"/><test-case name="CastableAs501" result="pass"/><test-case name="CastableAs502" result="pass"/><test-case name="CastableAs503" result="pass"/><test-case name="CastableAs504" result="pass"/><test-case name="CastableAs505" result="pass"/><test-case name="CastableAs506" result="pass"/><test-case name="CastableAs507" result="pass"/><test-case name="CastableAs508" result="pass"/><test-case name="CastableAs509" result="pass"/><test-case name="CastableAs510" result="pass"/><test-case name="CastableAs511" result="pass"/><test-case name="CastableAs512" result="pass"/><test-case name="CastableAs513" result="pass"/><test-case name="CastableAs514" result="pass"/><test-case name="CastableAs515" result="pass"/><test-case name="CastableAs516" result="pass"/><test-case name="CastableAs517" result="pass"/><test-case name="CastableAs518" result="pass"/><test-case name="CastableAs519" result="pass"/><test-case name="CastableAs520" result="pass"/><test-case name="CastableAs521" result="pass"/><test-case name="CastableAs522" result="pass"/><test-case name="CastableAs523" result="pass"/><test-case name="CastableAs524" result="pass"/><test-case name="CastableAs525" result="pass"/><test-case name="CastableAs526" result="pass"/><test-case name="CastableAs527" result="pass"/><test-case name="CastableAs528" result="pass"/><test-case name="CastableAs529" result="pass"/><test-case name="CastableAs530" result="pass"/><test-case name="CastableAs531" result="pass"/><test-case name="CastableAs532" result="pass"/><test-case name="CastableAs533" result="pass"/><test-case name="CastableAs534" result="pass"/><test-case name="CastableAs535" result="pass"/><test-case name="CastableAs536" result="pass"/><test-case name="CastableAs537" result="pass"/><test-case name="CastableAs538" result="pass"/><test-case name="CastableAs539" result="pass"/><test-case name="CastableAs540" result="pass"/><test-case name="CastableAs541" result="pass"/><test-case name="CastableAs542" result="pass"/><test-case name="CastableAs543" result="pass"/><test-case name="CastableAs544" result="pass"/><test-case name="CastableAs545" result="pass"/><test-case name="CastableAs546" result="pass"/><test-case name="CastableAs547" result="pass"/><test-case name="CastableAs548" result="pass"/><test-case name="CastableAs549" result="pass"/><test-case name="CastableAs550" result="pass"/><test-case name="CastableAs551" result="pass"/><test-case name="CastableAs552" result="pass"/><test-case name="CastableAs553" result="pass"/><test-case name="CastableAs554" result="pass"/><test-case name="CastableAs555" result="pass"/><test-case name="CastableAs556" result="pass"/><test-case name="CastableAs557" result="pass"/><test-case name="CastableAs558" result="pass"/><test-case name="CastableAs559" result="pass"/><test-case name="CastableAs560" result="pass"/><test-case name="CastableAs561" result="pass"/><test-case name="CastableAs562" result="pass"/><test-case name="CastableAs563" result="pass"/><test-case name="CastableAs564" result="pass"/><test-case name="CastableAs565" result="pass"/><test-case name="CastableAs566" result="pass"/><test-case name="CastableAs567" result="pass"/><test-case name="CastableAs568" result="pass"/><test-case name="CastableAs569" result="pass"/><test-case name="CastableAs570" result="pass"/><test-case name="CastableAs571" result="pass"/><test-case name="CastableAs572" result="pass"/><test-case name="CastableAs573" result="pass"/><test-case name="CastableAs574" result="pass"/><test-case name="CastableAs575" result="pass"/><test-case name="CastableAs576" result="pass"/><test-case name="CastableAs577" result="pass"/><test-case name="CastableAs578" result="pass"/><test-case name="CastableAs579" result="pass"/><test-case name="CastableAs580" result="pass"/><test-case name="CastableAs581" result="pass"/><test-case name="CastableAs582" result="pass"/><test-case name="CastableAs583" result="pass"/><test-case name="CastableAs584" result="pass"/><test-case name="CastableAs585" result="pass"/><test-case name="CastableAs586" result="pass"/><test-case name="CastableAs587" result="pass"/><test-case name="CastableAs588" result="pass"/><test-case name="CastableAs589" result="pass"/><test-case name="CastableAs590" result="pass"/><test-case name="CastableAs591" result="pass"/><test-case name="CastableAs592" result="pass"/><test-case name="CastableAs593" result="pass"/><test-case name="CastableAs594" result="pass"/><test-case name="CastableAs595" result="pass"/><test-case name="CastableAs596" result="pass"/><test-case name="CastableAs597" result="pass"/><test-case name="CastableAs598" result="pass"/><test-case name="CastableAs599" result="pass"/><test-case name="CastableAs600" result="pass"/><test-case name="CastableAs601" result="pass"/><test-case name="CastableAs602" result="pass"/><test-case name="CastableAs603" result="pass"/><test-case name="CastableAs604" result="pass"/><test-case name="CastableAs605" result="pass"/><test-case name="CastableAs606" result="pass"/><test-case name="CastableAs607" result="pass"/><test-case name="CastableAs608" result="pass"/><test-case name="CastableAs609" result="pass"/><test-case name="CastableAs610" result="pass"/><test-case name="CastableAs611" result="pass"/><test-case name="CastableAs612" result="pass"/><test-case name="CastableAs613" result="pass"/><test-case name="CastableAs614" result="pass"/><test-case name="CastableAs615" result="pass"/><test-case name="CastableAs616" result="pass"/><test-case name="CastableAs617" result="pass"/><test-case name="CastableAs618" result="pass"/><test-case name="CastableAs619" result="pass"/><test-case name="CastableAs620" result="pass"/><test-case name="CastableAs621" result="pass"/><test-case name="CastableAs622" result="pass"/><test-case name="CastableAs623" result="pass"/><test-case name="CastableAs624" result="pass"/><test-case name="CastableAs625" result="pass"/><test-case name="CastableAs626" result="pass"/><test-case name="CastableAs627" result="pass"/><test-case name="CastableAs628" result="pass"/><test-case name="CastableAs629" result="pass"/><test-case name="CastableAs630" result="pass"/><test-case name="CastableAs631" result="pass"/><test-case name="CastableAs632" result="pass"/><test-case name="CastableAs633" result="pass"/><test-case name="CastableAs634" result="pass"/><test-case name="CastableAs635" result="pass"/><test-case name="CastableAs636" result="pass"/><test-case name="CastableAs637" result="pass"/><test-case name="CastableAs638" result="pass"/><test-case name="CastableAs639" result="pass"/><test-case name="CastableAs640" result="pass"/><test-case name="CastableAs641" result="pass"/><test-case name="CastableAs642" result="pass"/><test-case name="CastableAs643" result="pass"/><test-case name="CastableAs644" result="pass"/><test-case name="CastableAs645" result="pass"/><test-case name="CastableAs646" result="pass"/><test-case name="CastableAs647" result="pass"/><test-case name="CastableAs648" result="fail"/><test-case name="K-SeqExprCastable-1" result="pass"/><test-case name="K-SeqExprCastable-2" result="pass"/><test-case name="K-SeqExprCastable-3" result="pass"/><test-case name="K-SeqExprCastable-4" result="pass"/><test-case name="K-SeqExprCastable-5" result="pass"/><test-case name="K-SeqExprCastable-6" result="pass"/><test-case name="K-SeqExprCastable-7" result="pass"/><test-case name="K-SeqExprCastable-8" result="pass"/><test-case name="K-SeqExprCastable-9" result="pass"/><test-case name="K-SeqExprCastable-10" result="pass"/><test-case name="K-SeqExprCastable-11" result="pass"/><test-case name="K-SeqExprCastable-12" result="pass"/><test-case name="K-SeqExprCastable-13" result="pass"/><test-case name="K-SeqExprCastable-14" result="pass"/><test-case name="K-SeqExprCastable-15" result="pass"/><test-case name="K-SeqExprCastable-16" result="pass"/><test-case name="K-SeqExprCastable-17" result="pass"/><test-case name="K-SeqExprCastable-18" result="pass"/><test-case name="K-SeqExprCastable-19" result="pass"/><test-case name="K-SeqExprCastable-20" result="pass"/><test-case name="K-SeqExprCastable-21" result="pass"/><test-case name="K-SeqExprCastable-22" result="pass"/><test-case name="K-SeqExprCastable-23" result="pass"/><test-case name="K-SeqExprCastable-24" result="pass"/><test-case name="K-SeqExprCastable-25" result="pass"/><test-case name="K-SeqExprCastable-26" result="pass"/><test-case name="K-SeqExprCastable-27" result="pass"/><test-case name="K-SeqExprCastable-28" result="pass"/><test-case name="K-SeqExprCastable-29" result="pass"/><test-case name="K-SeqExprCastable-30" result="pass"/><test-case name="K-SeqExprCastable-31" result="pass"/><test-case name="K-SeqExprCastable-32" result="pass"/><test-case name="K-SeqExprCastable-33" result="pass"/><test-case name="K-SeqExprCastable-34" result="pass"/><test-case name="K-SeqExprCastable-35" result="pass"/><test-case name="K-SeqExprCastable-36" result="pass"/><test-case name="K-SeqExprCastable-37" result="pass"/><test-case name="K-SeqExprCastable-38" result="pass"/><test-case name="K2-SeqExprCastable-1" result="pass"/><test-case name="K2-SeqExprCastable-2" result="pass"/><test-case name="K2-SeqExprCastable-3" result="pass"/><test-case name="K2-SeqExprCastable-4" result="pass"/><test-case name="K2-SeqExprCastable-5" result="pass"/><test-case name="K2-SeqExprCastable-6" result="fail"/><test-case name="K2-SeqExprCastable-7" result="fail"/><test-case name="K2-SeqExprCastable-8" result="pass"/><test-case name="treat-as-1" result="pass"/><test-case name="treat-as-2" result="pass"/><test-case name="treat-as-3" result="pass"/><test-case name="treat-as-4" result="pass"/><test-case name="treat-as-5" result="pass"/><test-case name="treat-as-6" result="pass"/><test-case name="treat-as-7" result="pass"/><test-case name="treat-as-8" result="pass"/><test-case name="treat-as-9" result="pass"/><test-case name="treat-as-10" result="pass"/><test-case name="treat-as-11" result="pass"/><test-case name="treat-as-12" result="pass"/><test-case name="treat-as-13" result="pass"/><test-case name="treat-as-14" result="pass"/><test-case name="treat-as-15" result="pass"/><test-case name="treat-as-16" result="pass"/><test-case name="treat-as-17" result="pass"/><test-case name="treat-as-18" result="pass"/><test-case name="treat-as-19" result="pass"/><test-case name="treat-as-20" result="pass"/><test-case name="treat-as-21" result="pass"/><test-case name="treat-as-22" result="pass"/><test-case name="treat-as-23" result="pass"/><test-case name="treat-as-24" result="pass"/><test-case name="treat-as-25" result="pass"/><test-case name="K-SeqExprTreat-1" result="pass"/><test-case name="K-SeqExprTreat-2" result="pass"/><test-case name="K-SeqExprTreat-3" result="pass"/><test-case name="K-SeqExprTreat-4" result="pass"/><test-case name="K-SeqExprTreat-5" result="pass"/><test-case name="K-SeqExprTreat-6" result="pass"/><test-case name="K-SeqExprTreat-7" result="pass"/><test-case name="K-SeqExprTreat-8" result="pass"/><test-case name="K-SeqExprTreat-9" result="pass"/><test-case name="K-SeqExprTreat-10" result="pass"/><test-case name="K-SeqExprTreat-11" result="pass"/><test-case name="K-SeqExprTreat-12" result="pass"/><test-case name="K-SeqExprTreat-13" result="pass"/><test-case name="K-SeqExprTreat-14" result="pass"/><test-case name="K-SeqExprTreat-15" result="pass"/><test-case name="K-SeqExprTreat-16" result="pass"/><test-case name="K-SeqExprTreat-17" result="pass"/><test-case name="K2-SeqExprTreat-1" result="fail"/><test-case name="K2-SeqExprTreat-2" result="pass"/><test-case name="K2-SeqExprTreat-3" result="pass"/><test-case name="K2-SeqExprTreat-4" result="pass"/><test-case name="version_declaration-001" result="pass"/><test-case name="version_declaration-002" result="pass"/><test-case name="version_declaration-003" result="pass"/><test-case name="version_declaration-004" result="pass"/><test-case name="version_declaration-006" result="pass"/><test-case name="version_declaration-007" result="pass"/><test-case name="version_declaration-008" result="pass"/><test-case name="version_declaration-009" result="pass"/><test-case name="version_declaration-010" result="pass"/><test-case name="prolog-version-1" result="pass"/><test-case name="prolog-version-2" result="pass"/><test-case name="prolog-version-3" result="pass"/><test-case name="prolog-version-4" result="pass"/><test-case name="prolog-version-5" result="pass"/><test-case name="prolog-version-6" result="pass"/><test-case name="prolog-version-7" result="pass"/><test-case name="prolog-version-9" result="pass"/><test-case name="prolog-version-10" result="pass"/><test-case name="prolog-version-11" result="pass"/><test-case name="prolog-version-12" result="pass"/><test-case name="K-VersionProlog-1" result="pass"/><test-case name="K-VersionProlog-2" result="pass"/><test-case name="K-VersionProlog-3" result="pass"/><test-case name="K-VersionProlog-4" result="pass"/><test-case name="K-VersionProlog-5" result="pass"/><test-case name="K2-VersionProlog-1" result="pass"/><test-case name="K2-VersionProlog-2" result="pass"/><test-case name="K2-VersionProlog-3" result="pass"/><test-case name="K2-VersionProlog-4" result="pass"/><test-case name="K2-VersionProlog-5" result="pass"/><test-case name="boundary-space-001" result="pass"/><test-case name="boundary-space-002" result="pass"/><test-case name="boundary-space-003" result="pass"/><test-case name="boundary-space-004" result="pass"/><test-case name="boundary-space-005" result="pass"/><test-case name="boundary-space-006" result="pass"/><test-case name="boundary-space-007" result="pass"/><test-case name="boundary-space-008" result="pass"/><test-case name="boundary-space-009" result="pass"/><test-case name="boundary-space-010" result="pass"/><test-case name="boundary-space-011" result="pass"/><test-case name="boundary-space-012" result="pass"/><test-case name="boundary-space-013" result="pass"/><test-case name="boundary-space-014" result="pass"/><test-case name="boundary-space-015" result="pass"/><test-case name="boundary-space-016" result="pass"/><test-case name="boundary-space-017" result="pass"/><test-case name="boundary-space-018" result="pass"/><test-case name="boundary-space-019" result="pass"/><test-case name="boundary-space-020" result="pass"/><test-case name="boundary-space-021" result="pass"/><test-case name="boundary-space-022" result="pass"/><test-case name="boundaryspacedeclerr-1" result="pass"/><test-case name="K-BoundarySpaceProlog-1" result="pass"/><test-case name="K-BoundarySpaceProlog-2" result="pass"/><test-case name="K-BoundarySpaceProlog-3" result="pass"/><test-case name="K-BoundarySpaceProlog-4" result="pass"/><test-case name="K2-BoundarySpaceProlog-1" result="pass"/><test-case name="defaultcolldecl-1" result="pass"/><test-case name="defaultcolldecl-2" result="pass"/><test-case name="K-CollationProlog-1" result="pass"/><test-case name="K-CollationProlog-2" result="pass"/><test-case name="K-CollationProlog-3" result="pass"/><test-case name="K-CollationProlog-4" result="pass"/><test-case name="K-CollationProlog-5" result="pass"/><test-case name="K2-CollationProlog-1" result="pass"/><test-case name="copynamespace-1" result="pass"/><test-case name="copynamespace-2" result="pass"/><test-case name="copynamespace-3" result="pass"/><test-case name="copynamespace-4" result="pass"/><test-case name="copynamespace-5" result="pass"/><test-case name="copynamespace-6" result="pass"/><test-case name="copynamespace-7" result="pass"/><test-case name="copynamespace-8" result="pass"/><test-case name="copynamespace-9" result="pass"/><test-case name="copynamespace-10" result="pass"/><test-case name="copynamespace-11" result="pass"/><test-case name="copynamespace-12" result="pass"/><test-case name="copynamespace-13" result="pass"/><test-case name="copynamespace-14" result="pass"/><test-case name="copynamespace-15" result="pass"/><test-case name="copynamespace-16" result="pass"/><test-case name="copynamespace-17" result="pass"/><test-case name="copynamespace-18" result="pass"/><test-case name="copynamespace-19" result="pass"/><test-case name="copynamespace-20" result="pass"/><test-case name="copynamespace-21" result="pass"/><test-case name="copynamespace-22" result="pass"/><test-case name="K-CopyNamespacesProlog-1" result="pass"/><test-case name="K-CopyNamespacesProlog-2" result="pass"/><test-case name="K-CopyNamespacesProlog-3" result="pass"/><test-case name="K-CopyNamespacesProlog-4" result="pass"/><test-case name="K-CopyNamespacesProlog-5" result="pass"/><test-case name="K2-CopyNamespacesProlog-1" result="pass"/><test-case name="K2-CopyNamespacesProlog-2" result="pass"/><test-case name="K2-CopyNamespacesProlog-3" result="pass"/><test-case name="K2-CopyNamespacesProlog-4" result="pass"/><test-case name="K2-CopyNamespacesProlog-5" result="fail"/><test-case name="K2-CopyNamespacesProlog-6" result="pass"/><test-case name="K2-CopyNamespacesProlog-7" result="pass"/><test-case name="K2-CopyNamespacesProlog-8" result="pass"/><test-case name="K2-CopyNamespacesProlog-9" result="fail"/><test-case name="base-URI-1" result="pass"/><test-case name="base-URI-2" result="pass"/><test-case name="base-URI-3" result="pass"/><test-case name="base-URI-4" result="pass"/><test-case name="base-URI-5" result="pass"/><test-case name="base-URI-6" result="pass"/><test-case name="base-URI-7" result="pass"/><test-case name="base-URI-8" result="pass"/><test-case name="base-URI-9" result="pass"/><test-case name="base-URI-10" result="pass"/><test-case name="base-URI-11" result="pass"/><test-case name="base-URI-12" result="pass"/><test-case name="base-URI-13" result="pass"/><test-case name="base-URI-14" result="pass"/><test-case name="base-URI-15" result="fail"/><test-case name="base-URI-18" result="pass"/><test-case name="base-URI-19" result="pass"/><test-case name="base-URI-20" result="pass"/><test-case name="base-URI-21" result="fail"/><test-case name="base-URI-22" result="pass"/><test-case name="base-URI-23" result="pass"/><test-case name="base-URI-24" result="pass"/><test-case name="base-uri-25" result="pass"/><test-case name="base-uri-26" result="pass"/><test-case name="base-uri-27" result="pass"/><test-case name="base-uri-28" result="pass"/><test-case name="base-uri-29" result="pass"/><test-case name="K-BaseURIProlog-1" result="pass"/><test-case name="K-BaseURIProlog-2" result="pass"/><test-case name="K-BaseURIProlog-3" result="pass"/><test-case name="K2-BaseURIProlog-1" result="pass"/><test-case name="K2-BaseURIProlog-2" result="pass"/><test-case name="K2-BaseURIProlog-3" result="fail"/><test-case name="K2-BaseURIProlog-4" result="pass"/><test-case name="K2-BaseURIProlog-5" result="pass"/><test-case name="K2-BaseURIProlog-6" result="pass"/><test-case name="K2-BaseURIProlog-7" result="pass"/><test-case name="constprolog-1" result="pass"/><test-case name="constprolog-2" result="pass"/><test-case name="constprolog-3" result="pass"/><test-case name="constprolog-4" result="pass"/><test-case name="constprolog-5" result="pass"/><test-case name="constprolog-6" result="pass"/><test-case name="constprolog-7" result="pass"/><test-case name="constprolog-8" result="pass"/><test-case name="constprolog-9" result="pass"/><test-case name="constprolog-10" result="pass"/><test-case name="constprolog-11" result="pass"/><test-case name="constprolog-12" result="pass"/><test-case name="constprolog-13" result="pass"/><test-case name="constprolog-14" result="pass"/><test-case name="constprolog-15" result="pass"/><test-case name="constprolog-16" result="pass"/><test-case name="constprolog-17" result="pass"/><test-case name="constprolog-18" result="pass"/><test-case name="constprolog-19" result="pass"/><test-case name="constprolog-20" result="pass"/><test-case name="constprolog-21" result="pass"/><test-case name="K-ConstructionProlog-1" result="pass"/><test-case name="K-ConstructionProlog-2" result="pass"/><test-case name="K-ConstructionProlog-3" result="pass"/><test-case name="K-ConstructionProlog-4" result="pass"/><test-case name="K2-ConstructionProlog-1" result="pass"/><test-case name="default_namespace-001" result="pass"/><test-case name="default_namespace-002" result="pass"/><test-case name="default_namespace-003" result="pass"/><test-case name="default_namespace-004" result="pass"/><test-case name="default_namespace-005" result="pass"/><test-case name="default_namespace-006" result="pass"/><test-case name="default_namespace-007" result="pass"/><test-case name="default_namespace-008" result="pass"/><test-case name="default_namespace-009" result="pass"/><test-case name="default_namespace-010" result="pass"/><test-case name="default_namespace-011" result="pass"/><test-case name="default_namespace-012" result="pass"/><test-case name="default_namespace-013" result="pass"/><test-case name="default_namespace-014" result="pass"/><test-case name="default_namespace-015" result="pass"/><test-case name="default_namespace-016" result="pass"/><test-case name="default_namespace-017" result="pass"/><test-case name="default_namespace-018" result="pass"/><test-case name="default_namespace-019" result="pass"/><test-case name="default_namespace-020" result="pass"/><test-case name="default_namespace-021" result="pass"/><test-case name="default_namespace-022" result="pass"/><test-case name="defaultnamespacedeclerr-1" result="pass"/><test-case name="defaultnamespacedeclerr-2" result="pass"/><test-case name="K-DefaultNamespaceProlog-1" result="pass"/><test-case name="K-DefaultNamespaceProlog-2" result="pass"/><test-case name="K-DefaultNamespaceProlog-3" result="pass"/><test-case name="K-DefaultNamespaceProlog-4" result="pass"/><test-case name="K-DefaultNamespaceProlog-5" result="pass"/><test-case name="K-DefaultNamespaceProlog-6" result="pass"/><test-case name="K-DefaultNamespaceProlog-7" result="pass"/><test-case name="K-DefaultNamespaceProlog-8" result="pass"/><test-case name="K-DefaultNamespaceProlog-9" result="pass"/><test-case name="K-DefaultNamespaceProlog-10" result="pass"/><test-case name="K-DefaultNamespaceProlog-11" result="pass"/><test-case name="K2-DefaultNamespaceProlog-1" result="pass"/><test-case name="K2-DefaultNamespaceProlog-2" result="pass"/><test-case name="K2-DefaultNamespaceProlog-3" result="pass"/><test-case name="K2-DefaultNamespaceProlog-4" result="pass"/><test-case name="K2-DefaultNamespaceProlog-5" result="pass"/><test-case name="K2-DefaultNamespaceProlog-6" result="pass"/><test-case name="K2-DefaultNamespaceProlog-7" result="pass"/><test-case name="K2-DefaultNamespaceProlog-8" result="pass"/><test-case name="K2-DefaultNamespaceProlog-9" result="pass"/><test-case name="K2-DefaultNamespaceProlog-10" result="pass"/><test-case name="K2-DefaultNamespaceProlog-11" result="pass"/><test-case name="K2-DefaultNamespaceProlog-12" result="pass"/><test-case name="K2-DefaultNamespaceProlog-13" result="pass"/><test-case name="K2-DefaultNamespaceProlog-14" result="pass"/><test-case name="K2-DefaultNamespaceProlog-15" result="pass"/><test-case name="K2-DefaultNamespaceProlog-16" result="pass"/><test-case name="K2-DefaultNamespaceProlog-17" result="pass"/><test-case name="K2-DefaultNamespaceProlog-18" result="pass"/><test-case name="orderDecl-1" result="pass"/><test-case name="orderDecl-2" result="pass"/><test-case name="orderdecl-3" result="pass"/><test-case name="orderDecl-4" result="pass"/><test-case name="orderdecl-5" result="pass"/><test-case name="orderdecl-6" result="pass"/><test-case name="orderDecl-7" result="pass"/><test-case name="orderDecl-8" result="pass"/><test-case name="orderDecl-9" result="pass"/><test-case name="orderDecl-10" result="pass"/><test-case name="orderDecl-11" result="pass"/><test-case name="orderDecl-12" result="pass"/><test-case name="orderDecl-13" result="pass"/><test-case name="orderdecl-14" result="pass"/><test-case name="orderDecl-15" result="pass"/><test-case name="orderDecl-16" result="pass"/><test-case name="orderDecl-17" result="pass"/><test-case name="orderDecl-18" result="pass"/><test-case name="orderDecl-20" result="pass"/><test-case name="orderDecl-21" result="pass"/><test-case name="orderDecl-22" result="pass"/><test-case name="orderDecl-23" result="pass"/><test-case name="K-DefaultOrderingProlog-1" result="pass"/><test-case name="K-DefaultOrderingProlog-2" result="pass"/><test-case name="K-DefaultOrderingProlog-3" result="pass"/><test-case name="K2-DefaultOrderingProlog-1" result="pass"/><test-case name="K2-DefaultOrderingProlog-2" result="pass"/><test-case name="emptyorderdecl-1" result="pass"/><test-case name="emptyorderdecl-2" result="pass"/><test-case name="emptyorderdecl-3" result="pass"/><test-case name="emptyorderdecl-4" result="pass"/><test-case name="emptyorderdecl-5" result="pass"/><test-case name="emptyorderdecl-6" result="pass"/><test-case name="emptyorderdecl-7" result="pass"/><test-case name="emptyorderdecl-8" result="pass"/><test-case name="emptyorderdecl-9" result="pass"/><test-case name="emptyorderdecl-10" result="pass"/><test-case name="emptyorderdecl-11" result="pass"/><test-case name="emptyorderdecl-12" result="pass"/><test-case name="emptyorderdecl-13" result="pass"/><test-case name="emptyorderdecl-14" result="pass"/><test-case name="emptyorderdecl-15" result="pass"/><test-case name="emptyorderdecl-16" result="pass"/><test-case name="emptyorderdecl-17" result="pass"/><test-case name="emptyorderdecl-18" result="pass"/><test-case name="emptyorderdecl-19" result="pass"/><test-case name="emptyorderdecl-20" result="pass"/><test-case name="emptyorderdecl-21" result="pass"/><test-case name="emptyorderdecl-22" result="pass"/><test-case name="emptyorderdecl-23" result="pass"/><test-case name="emptyorderdecl-24" result="pass"/><test-case name="emptyorderdecl-25" result="pass"/><test-case name="emptyorderdecl-26" result="pass"/><test-case name="emptyorderdecl-27" result="pass"/><test-case name="emptyorderdecl-28" result="pass"/><test-case name="emptyorderdecl-29" result="pass"/><test-case name="K-EmptyOrderProlog-1" result="pass"/><test-case name="K-EmptyOrderProlog-2" result="pass"/><test-case name="K-EmptyOrderProlog-3" result="pass"/><test-case name="namespaceDecl-1" result="pass"/><test-case name="namespaceDecl-2" result="pass"/><test-case name="namespaceDecl-3" result="pass"/><test-case name="namespaceDecl-4" result="pass"/><test-case name="namespaceDecl-5" result="pass"/><test-case name="namespaceDecl-6" result="pass"/><test-case name="namespaceDecl-7" result="pass"/><test-case name="namespaceDecl-8" result="pass"/><test-case name="namespaceDecl-9" result="pass"/><test-case name="namespaceDecl-10" result="pass"/><test-case name="namespaceDecl-11" result="pass"/><test-case name="namespaceDecl-12" result="pass"/><test-case name="namespaceDecl-13" result="pass"/><test-case name="namespaceDecl-14" result="pass"/><test-case name="namespaceDecl-15" result="pass"/><test-case name="namespaceDecl-16" result="pass"/><test-case name="namespaceDecl-17" result="pass"/><test-case name="namespaceDecl-18" result="pass"/><test-case name="namespaceDecl-19" result="pass"/><test-case name="namespaceDecl-20" result="pass"/><test-case name="namespaceDecl-21" result="pass"/><test-case name="namespaceDecl-22" result="pass"/><test-case name="namespaceDecl-23" result="pass"/><test-case name="namespaceDecl-24" result="pass"/><test-case name="K-NamespaceProlog-1" result="pass"/><test-case name="K-NamespaceProlog-2" result="pass"/><test-case name="K-NamespaceProlog-3" result="pass"/><test-case name="K2-NamespaceProlog-1" result="pass"/><test-case name="K2-NamespaceProlog-2" result="pass"/><test-case name="K2-NamespaceProlog-3" result="pass"/><test-case name="K2-NamespaceProlog-4" result="pass"/><test-case name="K2-NamespaceProlog-5" result="pass"/><test-case name="K2-NamespaceProlog-6" result="pass"/><test-case name="K2-NamespaceProlog-7" result="pass"/><test-case name="K2-NamespaceProlog-8" result="pass"/><test-case name="K2-NamespaceProlog-9" result="pass"/><test-case name="K2-NamespaceProlog-10" result="pass"/><test-case name="K2-NamespaceProlog-11" result="pass"/><test-case name="K2-NamespaceProlog-12" result="pass"/><test-case name="K2-NamespaceProlog-13" result="pass"/><test-case name="K2-NamespaceProlog-14" result="pass"/><test-case name="K2-NamespaceProlog-15" result="pass"/><test-case name="K2-NamespaceProlog-16" result="pass"/><test-case name="extvardeclwithouttype-1" result="pass"/><test-case name="extvardeclwithouttype-2" result="pass"/><test-case name="extvardeclwithouttype-3" result="pass"/><test-case name="extvardeclwithouttype-4" result="pass"/><test-case name="extvardeclwithouttype-5" result="pass"/><test-case name="extvardeclwithouttype-6" result="pass"/><test-case name="extvardeclwithouttype-7" result="fail"/><test-case name="extvardeclwithouttype-8" result="pass"/><test-case name="extvardeclwithouttype-9" result="pass"/><test-case name="extvardeclwithouttype-10" result="pass"/><test-case name="extvardeclwithouttype-11" result="pass"/><test-case name="extvardeclwithouttype-12" result="pass"/><test-case name="extvardeclwithouttype-13" result="pass"/><test-case name="extvardeclwithouttype-14" result="pass"/><test-case name="extvardeclwithouttype-15" result="pass"/><test-case name="extvardeclwithouttype-16" result="pass"/><test-case name="extvardeclwithouttype-17" result="pass"/><test-case name="extvardeclwithouttype-18" result="fail"/><test-case name="extvardeclwithouttype-19" result="pass"/><test-case name="extvardeclwithouttype-20" result="pass"/><test-case name="extvardeclwithouttype-21" result="pass"/><test-case name="extvardeclwithouttype-22" result="pass"/><test-case name="extvardeclwithouttype-23" result="pass"/><test-case name="K2-ExternalVariablesWithout-1" result="pass"/><test-case name="K2-ExternalVariablesWithout-2" result="pass"/><test-case name="K2-ExternalVariablesWithout-3" result="pass"/><test-case name="K2-ExternalVariablesWithout-4" result="pass"/><test-case name="K2-ExternalVariablesWithout-5" result="pass"/><test-case name="K2-ExternalVariablesWithout-6" result="pass"/><test-case name="K2-ExternalVariablesWithout-7" result="pass"/><test-case name="K2-ExternalVariablesWithout-8" result="pass"/><test-case name="K2-ExternalVariablesWithout-9" result="pass"/><test-case name="K2-ExternalVariablesWithout-10" result="pass"/><test-case name="K2-ExternalVariablesWithout-11" result="pass"/><test-case name="K2-ExternalVariablesWithout-12" result="pass"/><test-case name="K2-ExternalVariablesWithout-13" result="pass"/><test-case name="K2-ExternalVariablesWithout-14" result="pass"/><test-case name="K2-ExternalVariablesWithout-15" result="pass"/><test-case name="K2-ExternalVariablesWithout-16" result="pass"/><test-case name="K2-ExternalVariablesWithout-17" result="pass"/><test-case name="K2-ExternalVariablesWithout-18" result="fail"/><test-case name="K2-ExternalVariablesWithout-19" result="pass"/><test-case name="K2-ExternalVariablesWithout-20" result="pass"/><test-case name="K2-ExternalVariablesWithout-21" result="pass"/><test-case name="K2-ExternalVariablesWithout-22" result="fail"/><test-case name="extvardeclwithtype-1" result="pass"/><test-case name="extvardeclwithtype-2" result="fail"/><test-case name="extvardeclwithtype-3" result="pass"/><test-case name="extvardeclwithtype-4" result="pass"/><test-case name="extvardeclwithtype-5" result="pass"/><test-case name="extvardeclwithtype-6" result="fail"/><test-case name="extvardeclwithtype-7" result="fail"/><test-case name="extvardeclwithtype-8" result="pass"/><test-case name="extvardeclwithtype-9" result="pass"/><test-case name="extvardeclwithtype-10" result="pass"/><test-case name="extvardeclwithtype-11" result="pass"/><test-case name="extvardeclwithtype-12" result="pass"/><test-case name="extvardeclwithtype-13" result="pass"/><test-case name="extvardeclwithtype-14" result="pass"/><test-case name="extvardeclwithtype-15" result="pass"/><test-case name="extvardeclwithtype-16" result="pass"/><test-case name="extvardeclwithtype-17" result="pass"/><test-case name="extvardeclwithtype-18" result="fail"/><test-case name="extvardeclwithtype-19" result="fail"/><test-case name="extvardeclwithtype-20" result="pass"/><test-case name="extvardeclwithtype-21" result="pass"/><test-case name="extvardeclwithtype-22" result="pass"/><test-case name="extvardeclwithtype-23" result="fail"/><test-case name="K2-ExternalVariablesWith-1" result="pass"/><test-case name="K2-ExternalVariablesWith-2" result="pass"/><test-case name="K2-ExternalVariablesWith-3" result="pass"/><test-case name="K2-ExternalVariablesWith-4" result="pass"/><test-case name="K2-ExternalVariablesWith-5" result="pass"/><test-case name="K2-ExternalVariablesWith-6" result="pass"/><test-case name="K2-ExternalVariablesWith-7" result="pass"/><test-case name="K2-ExternalVariablesWith-8" result="pass"/><test-case name="K2-ExternalVariablesWith-9" result="pass"/><test-case name="K2-ExternalVariablesWith-10" result="pass"/><test-case name="K2-ExternalVariablesWith-11" result="pass"/><test-case name="K2-ExternalVariablesWith-12" result="pass"/><test-case name="K2-ExternalVariablesWith-13" result="pass"/><test-case name="K2-ExternalVariablesWith-14" result="pass"/><test-case name="K2-ExternalVariablesWith-15" result="pass"/><test-case name="K2-ExternalVariablesWith-16" result="pass"/><test-case name="K2-ExternalVariablesWith-17" result="pass"/><test-case name="K2-ExternalVariablesWith-18" result="pass"/><test-case name="K2-ExternalVariablesWith-19" result="pass"/><test-case name="K2-ExternalVariablesWith-20" result="pass"/><test-case name="K2-ExternalVariablesWith-21" result="pass"/><test-case name="VarDecl001" result="pass"/><test-case name="VarDecl002" result="pass"/><test-case name="VarDecl003" result="pass"/><test-case name="VarDecl004" result="pass"/><test-case name="VarDecl005" result="pass"/><test-case name="VarDecl006" result="pass"/><test-case name="VarDecl007" result="pass"/><test-case name="VarDecl008" result="pass"/><test-case name="VarDecl009" result="pass"/><test-case name="VarDecl010" result="pass"/><test-case name="VarDecl011" result="pass"/><test-case name="VarDecl012" result="pass"/><test-case name="VarDecl013" result="pass"/><test-case name="VarDecl014" result="pass"/><test-case name="VarDecl015" result="pass"/><test-case name="VarDecl016" result="pass"/><test-case name="VarDecl017" result="pass"/><test-case name="VarDecl018" result="pass"/><test-case name="VarDecl019" result="pass"/><test-case name="VarDecl020" result="fail"/><test-case name="VarDecl021" result="pass"/><test-case name="VarDecl022" result="pass"/><test-case name="VarDecl023" result="pass"/><test-case name="VarDecl024" result="pass"/><test-case name="VarDecl025" result="pass"/><test-case name="VarDecl026" result="pass"/><test-case name="VarDecl027" result="pass"/><test-case name="VarDecl028" result="pass"/><test-case name="VarDecl029" result="pass"/><test-case name="VarDecl030" result="pass"/><test-case name="VarDecl031" result="pass"/><test-case name="VarDecl032" result="pass"/><test-case name="VarDecl033" result="pass"/><test-case name="VarDecl034" result="pass"/><test-case name="VarDecl035" result="pass"/><test-case name="VarDecl036" result="pass"/><test-case name="VarDecl037" result="pass"/><test-case name="VarDecl038" result="pass"/><test-case name="VarDecl039" result="pass"/><test-case name="VarDecl040" result="fail"/><test-case name="VarDecl041" result="pass"/><test-case name="VarDecl042" result="fail"/><test-case name="VarDecl043" result="pass"/><test-case name="VarDecl044" result="pass"/><test-case name="VarDecl045" result="pass"/><test-case name="VarDecl046" result="pass"/><test-case name="VarDecl047" result="pass"/><test-case name="VarDecl048" result="pass"/><test-case name="VarDecl049" result="pass"/><test-case name="VarDecl050" result="pass"/><test-case name="VarDecl051" result="pass"/><test-case name="VarDecl052" result="pass"/><test-case name="VarDecl053" result="pass"/><test-case name="VarDecl054" result="pass"/><test-case name="VarDecl055" result="pass"/><test-case name="VarDecl056" result="pass"/><test-case name="VarDecl057" result="pass"/><test-case name="VarDecl058" result="pass"/><test-case name="VarDecl059" result="pass"/><test-case name="VarDecl060" result="pass"/><test-case name="VarDecl061" result="pass"/><test-case name="VarDecl062" result="pass"/><test-case name="vardeclerr" result="pass"/><test-case name="internalvar-2" result="pass"/><test-case name="K2-InternalVariablesWithout-1" result="pass"/><test-case name="K2-InternalVariablesWithout-2" result="pass"/><test-case name="K2-InternalVariablesWithout-3" result="pass"/><test-case name="K2-InternalVariablesWithout-4" result="pass"/><test-case name="K2-InternalVariablesWithout-5" result="pass"/><test-case name="K2-InternalVariablesWithout-6" result="pass"/><test-case name="K2-InternalVariablesWithout-7" result="pass"/><test-case name="K2-InternalVariablesWithout-8" result="pass"/><test-case name="K2-InternalVariablesWithout-9" result="pass"/><test-case name="K2-InternalVariablesWithout-10" result="pass"/><test-case name="K2-InternalVariablesWithout-11" result="pass"/><test-case name="K2-InternalVariablesWithout-12" result="pass"/><test-case name="K2-InternalVariablesWithout-13" result="pass"/><test-case name="K2-InternalVariablesWithout-14" result="pass"/><test-case name="K2-InternalVariablesWithout-15" result="fail"/><test-case name="vardeclwithtype-1" result="pass"/><test-case name="vardeclwithtype-2" result="pass"/><test-case name="vardeclwithtype-3" result="pass"/><test-case name="vardeclwithtype-4" result="pass"/><test-case name="vardeclwithtype-5" result="pass"/><test-case name="vardeclwithtype-6" result="pass"/><test-case name="vardeclwithtype-7" result="pass"/><test-case name="vardeclwithtype-8" result="pass"/><test-case name="vardeclwithtype-9" result="pass"/><test-case name="vardeclwithtype-10" result="pass"/><test-case name="vardeclwithtype-11" result="pass"/><test-case name="vardeclwithtype-12" result="pass"/><test-case name="vardeclwithtype-13" result="pass"/><test-case name="vardeclwithtype-14" result="pass"/><test-case name="vardeclwithtype-15" result="pass"/><test-case name="vardeclwithtype-16" result="pass"/><test-case name="vardeclwithtype-17" result="pass"/><test-case name="vardeclwithtype-18" result="pass"/><test-case name="vardeclwithtype-19" result="pass"/><test-case name="vardeclwithtype-20" result="pass"/><test-case name="vardeclwithtype-21" result="pass"/><test-case name="vardeclwithtype-22" result="pass"/><test-case name="internalvar-1" result="pass"/><test-case name="K-InternalVariablesWith-1" result="pass"/><test-case name="K-InternalVariablesWith-2" result="pass"/><test-case name="K-InternalVariablesWith-3" result="pass"/><test-case name="K-InternalVariablesWith-4" result="pass"/><test-case name="K-InternalVariablesWith-5" result="pass"/><test-case name="K-InternalVariablesWith-6" result="pass"/><test-case name="K-InternalVariablesWith-7" result="pass"/><test-case name="K-InternalVariablesWith-8" result="pass"/><test-case name="K-InternalVariablesWith-9" result="pass"/><test-case name="K-InternalVariablesWith-10" result="pass"/><test-case name="K-InternalVariablesWith-11" result="pass"/><test-case name="K-InternalVariablesWith-12" result="pass"/><test-case name="K-InternalVariablesWith-13" result="pass"/><test-case name="K-InternalVariablesWith-14" result="pass"/><test-case name="K-InternalVariablesWith-15" result="pass"/><test-case name="K-InternalVariablesWith-16" result="pass"/><test-case name="K-InternalVariablesWith-17" result="pass"/><test-case name="K-InternalVariablesWith-18" result="pass"/><test-case name="K-InternalVariablesWith-19" result="pass"/><test-case name="K-InternalVariablesWith-20" result="pass"/><test-case name="K2-InternalVariablesWith-1" result="pass"/><test-case name="function-declaration-001" result="pass"/><test-case name="function-declaration-002" result="pass"/><test-case name="function-declaration-003" result="pass"/><test-case name="function-declaration-004" result="pass"/><test-case name="function-declaration-005" result="pass"/><test-case name="function-declaration-006" result="pass"/><test-case name="function-declaration-007" result="pass"/><test-case name="function-declaration-008" result="pass"/><test-case name="function-declaration-009" result="pass"/><test-case name="function-declaration-010" result="pass"/><test-case name="function-declaration-011" result="pass"/><test-case name="function-declaration-012" result="pass"/><test-case name="function-declaration-013" result="pass"/><test-case name="function-declaration-014" result="pass"/><test-case name="function-declaration-015" result="pass"/><test-case name="function-declaration-016" result="pass"/><test-case name="function-declaration-017" result="pass"/><test-case name="function-declaration-018" result="pass"/><test-case name="function-declaration-019" result="pass"/><test-case name="function-declaration-020" result="pass"/><test-case name="function-declaration-021" result="pass"/><test-case name="function-declaration-022" result="pass"/><test-case name="function-declaration-023" result="pass"/><test-case name="function-declaration-024" result="pass"/><test-case name="function-declaration-025" result="pass"/><test-case name="function-declaration-026" result="fail"/><test-case name="K-FunctionProlog-1" result="pass"/><test-case name="K-FunctionProlog-2" result="pass"/><test-case name="K-FunctionProlog-3" result="pass"/><test-case name="K-FunctionProlog-4" result="pass"/><test-case name="K-FunctionProlog-5" result="pass"/><test-case name="K-FunctionProlog-6" result="pass"/><test-case name="K-FunctionProlog-7" result="pass"/><test-case name="K-FunctionProlog-8" result="pass"/><test-case name="K-FunctionProlog-9" result="pass"/><test-case name="K-FunctionProlog-10" result="pass"/><test-case name="K-FunctionProlog-11" result="pass"/><test-case name="K-FunctionProlog-12" result="pass"/><test-case name="K-FunctionProlog-13" result="pass"/><test-case name="K-FunctionProlog-14" result="pass"/><test-case name="K-FunctionProlog-15" result="pass"/><test-case name="K-FunctionProlog-16" result="pass"/><test-case name="K-FunctionProlog-17" result="pass"/><test-case name="K-FunctionProlog-18" result="pass"/><test-case name="K-FunctionProlog-19" result="pass"/><test-case name="K-FunctionProlog-20" result="pass"/><test-case name="K-FunctionProlog-21" result="pass"/><test-case name="K-FunctionProlog-22" result="pass"/><test-case name="K-FunctionProlog-23" result="pass"/><test-case name="K-FunctionProlog-24" result="pass"/><test-case name="K-FunctionProlog-25" result="pass"/><test-case name="K-FunctionProlog-26" result="pass"/><test-case name="K-FunctionProlog-27" result="pass"/><test-case name="K-FunctionProlog-28" result="pass"/><test-case name="K-FunctionProlog-29" result="pass"/><test-case name="K-FunctionProlog-30" result="pass"/><test-case name="K-FunctionProlog-31" result="pass"/><test-case name="K-FunctionProlog-32" result="pass"/><test-case name="K-FunctionProlog-33" result="pass"/><test-case name="K-FunctionProlog-34" result="pass"/><test-case name="K-FunctionProlog-35" result="pass"/><test-case name="K-FunctionProlog-36" result="pass"/><test-case name="K-FunctionProlog-37" result="pass"/><test-case name="K-FunctionProlog-38" result="pass"/><test-case name="K-FunctionProlog-39" result="pass"/><test-case name="K-FunctionProlog-40" result="pass"/><test-case name="K-FunctionProlog-41" result="pass"/><test-case name="K-FunctionProlog-42" result="pass"/><test-case name="K-FunctionProlog-43" result="pass"/><test-case name="K-FunctionProlog-44" result="pass"/><test-case name="K-FunctionProlog-45" result="pass"/><test-case name="K-FunctionProlog-46" result="pass"/><test-case name="K-FunctionProlog-47" result="pass"/><test-case name="K-FunctionProlog-48" result="pass"/><test-case name="K-FunctionProlog-49" result="pass"/><test-case name="K-FunctionProlog-50" result="pass"/><test-case name="K-FunctionProlog-51" result="pass"/><test-case name="K-FunctionProlog-52" result="pass"/><test-case name="K-FunctionProlog-53" result="pass"/><test-case name="K-FunctionProlog-54" result="pass"/><test-case name="K-FunctionProlog-55" result="pass"/><test-case name="K-FunctionProlog-56" result="pass"/><test-case name="K-FunctionProlog-57" result="pass"/><test-case name="K-FunctionProlog-58" result="pass"/><test-case name="K-FunctionProlog-59" result="pass"/><test-case name="K-FunctionProlog-60" result="pass"/><test-case name="K-FunctionProlog-61" result="pass"/><test-case name="K-FunctionProlog-62" result="pass"/><test-case name="K-FunctionProlog-63" result="pass"/><test-case name="K-FunctionProlog-64" result="pass"/><test-case name="K-FunctionProlog-65" result="pass"/><test-case name="K-FunctionProlog-66" result="pass"/><test-case name="K-FunctionProlog-67" result="pass"/><test-case name="K-FunctionProlog-68" result="pass"/><test-case name="K2-FunctionProlog-1" result="pass"/><test-case name="K2-FunctionProlog-2" result="pass"/><test-case name="K2-FunctionProlog-3" result="pass"/><test-case name="K2-FunctionProlog-4" result="pass"/><test-case name="K2-FunctionProlog-5" result="pass"/><test-case name="K2-FunctionProlog-6" result="pass"/><test-case name="K2-FunctionProlog-7" result="pass"/><test-case name="K2-FunctionProlog-8" result="pass"/><test-case name="K2-FunctionProlog-9" result="pass"/><test-case name="K2-FunctionProlog-10" result="pass"/><test-case name="K2-FunctionProlog-11" result="pass"/><test-case name="K2-FunctionProlog-12" result="pass"/><test-case name="K2-FunctionProlog-13" result="pass"/><test-case name="K2-FunctionProlog-14" result="pass"/><test-case name="K2-FunctionProlog-15" result="pass"/><test-case name="K2-FunctionProlog-16" result="pass"/><test-case name="K2-FunctionProlog-17" result="pass"/><test-case name="K2-FunctionProlog-18" result="pass"/><test-case name="K2-FunctionProlog-19" result="pass"/><test-case name="K2-FunctionProlog-20" result="pass"/><test-case name="K2-FunctionProlog-21" result="pass"/><test-case name="K2-FunctionProlog-22" result="pass"/><test-case name="K2-FunctionProlog-23" result="pass"/><test-case name="K2-FunctionProlog-24" result="fail"/><test-case name="K2-FunctionProlog-25" result="pass"/><test-case name="K2-FunctionProlog-26" result="pass"/><test-case name="K2-FunctionProlog-27" result="pass"/><test-case name="K2-FunctionProlog-28" result="pass"/><test-case name="K2-FunctionProlog-29" result="pass"/><test-case name="K2-FunctionProlog-30" result="pass"/><test-case name="K2-FunctionProlog-31" result="pass"/><test-case name="K2-FunctionProlog-32" result="pass"/><test-case name="K2-FunctionProlog-33" result="pass"/><test-case name="K2-FunctionProlog-34" result="pass"/><test-case name="K2-FunctionProlog-35" result="pass"/><test-case name="K2-FunctionProlog-36" result="pass"/><test-case name="K2-FunctionProlog-37" result="pass"/><test-case name="K2-FunctionProlog-38" result="pass"/><test-case name="K2-FunctionProlog-39" result="pass"/><test-case name="K2-FunctionProlog-40" result="pass"/><test-case name="optiondeclprolog-1" result="pass"/><test-case name="optiondeclprolog-2" result="pass"/><test-case name="K-OptionDeclarationProlog-1" result="pass"/><test-case name="K-OptionDeclarationProlog-2" result="pass"/><test-case name="K-OptionDeclarationProlog-3" result="pass"/><test-case name="K-OptionDeclarationProlog-4" result="pass"/><test-case name="K-OptionDeclarationProlog-5" result="pass"/><test-case name="K-OptionDeclarationProlog-6" result="pass"/><test-case name="XQueryComment001" result="pass"/><test-case name="XQueryComment002" result="pass"/><test-case name="XQueryComment003" result="pass"/><test-case name="XQueryComment004" result="pass"/><test-case name="XQueryComment005" result="pass"/><test-case name="XQueryComment006" result="pass"/><test-case name="XQueryComment007" result="pass"/><test-case name="XQueryComment008" result="pass"/><test-case name="XQueryComment009" result="pass"/><test-case name="XQueryComment010" result="pass"/><test-case name="XQueryComment011" result="pass"/><test-case name="XQueryComment012" result="pass"/><test-case name="XQueryComment013" result="pass"/><test-case name="XQueryComment014" result="pass"/><test-case name="XQueryComment015" result="pass"/><test-case name="XQueryComment016" result="pass"/><test-case name="XQueryComment017" result="pass"/><test-case name="XQueryComment018" result="pass"/><test-case name="XQueryComment019" result="pass"/><test-case name="XQueryComment020" result="pass"/><test-case name="K-XQueryComment-1" result="pass"/><test-case name="K-XQueryComment-2" result="pass"/><test-case name="K-XQueryComment-3" result="pass"/><test-case name="K-XQueryComment-4" result="pass"/><test-case name="K-XQueryComment-5" result="pass"/><test-case name="K-XQueryComment-6" result="pass"/><test-case name="K-XQueryComment-7" result="pass"/><test-case name="K-XQueryComment-8" result="pass"/><test-case name="K-XQueryComment-9" result="pass"/><test-case name="K-XQueryComment-10" result="pass"/><test-case name="K-XQueryComment-11" result="pass"/><test-case name="K-XQueryComment-12" result="pass"/><test-case name="K-XQueryComment-13" result="pass"/><test-case name="K-XQueryComment-14" result="pass"/><test-case name="K-XQueryComment-15" result="pass"/><test-case name="K-XQueryComment-16" result="pass"/><test-case name="K-XQueryComment-17" result="pass"/><test-case name="K-XQueryComment-18" result="pass"/><test-case name="K-XQueryComment-19" result="pass"/><test-case name="K-XQueryComment-20" result="pass"/><test-case name="K2-XQueryComment-1" result="pass"/><test-case name="K2-XQueryComment-2" result="pass"/><test-case name="K2-XQueryComment-3" result="pass"/><test-case name="K2-XQueryComment-4" result="pass"/><test-case name="K2-XQueryComment-5" result="pass"/><test-case name="extexpr-1" result="pass"/><test-case name="extexpr-2" result="pass"/><test-case name="extexpr-3" result="pass"/><test-case name="extexpr-4" result="pass"/><test-case name="extexpr-5" result="pass"/><test-case name="extexpr-6" result="pass"/><test-case name="extexpr-7" result="pass"/><test-case name="extexpr-8" result="pass"/><test-case name="extexpr-9" result="pass"/><test-case name="extexpr-10" result="pass"/><test-case name="extexpr-11" result="pass"/><test-case name="extexpr-12" result="pass"/><test-case name="extexpr-13" result="pass"/><test-case name="extexpr-14" result="pass"/><test-case name="extexpr-15" result="pass"/><test-case name="extexpr-16" result="pass"/><test-case name="extexpr-17" result="pass"/><test-case name="extexpr-18" result="pass"/><test-case name="extexpr-19" result="pass"/><test-case name="extexpr-20" result="pass"/><test-case name="extexpr-21" result="pass"/><test-case name="extexpr-22" result="pass"/><test-case name="extexpr-23" result="pass"/><test-case name="extexpr-24" result="pass"/><test-case name="extexpr-25" result="pass"/><test-case name="extexpr-26" result="pass"/><test-case name="K-ExtensionExpression-1" result="pass"/><test-case name="K-ExtensionExpression-2" result="pass"/><test-case name="K-ExtensionExpression-3" result="pass"/><test-case name="K-ExtensionExpression-4" result="pass"/><test-case name="K-ExtensionExpression-5" result="pass"/><test-case name="K-ExtensionExpression-6" result="pass"/><test-case name="K-ExtensionExpression-7" result="pass"/><test-case name="K-ExtensionExpression-8" result="pass"/><test-case name="K2-ExtensionExpression-1" result="pass"/><test-case name="K2-ExtensionExpression-2" result="pass"/><test-case name="K2-ExtensionExpression-3" result="pass"/><test-case name="K2-ExtensionExpression-4" result="pass"/><test-case name="K2-ExtensionExpression-5" result="pass"/><test-case name="K2-ExtensionExpression-6" result="pass"/><test-case name="K2-ExtensionExpression-7" result="pass"/><test-case name="K2-ExtensionExpression-8" result="pass"/><test-case name="K2-ExtensionExpression-9" result="pass"/><test-case name="K2-ExtensionExpression-10" result="pass"/><test-case name="K2-ExtensionExpression-11" result="pass"/><test-case name="K2-ExtensionExpression-12" result="pass"/><test-case name="K2-ExtensionExpression-13" result="pass"/><test-case name="K2-ExtensionExpression-14" result="pass"/><test-case name="K2-ExtensionExpression-15" result="pass"/><test-case name="K2-ExtensionExpression-16" result="pass"/><test-case name="K2-ExtensionExpression-17" result="pass"/><test-case name="fn-node-name-1" result="pass"/><test-case name="fn-node-name-2" result="pass"/><test-case name="fn-node-name-3" result="pass"/><test-case name="fn-node-name-4" result="pass"/><test-case name="fn-node-name-5" result="pass"/><test-case name="fn-node-name-6" result="pass"/><test-case name="fn-node-name-7" result="pass"/><test-case name="fn-node-name-8" result="pass"/><test-case name="fn-node-name-9" result="pass"/><test-case name="fn-node-name-10" result="pass"/><test-case name="fn-node-name-11" result="pass"/><test-case name="fn-node-name-12" result="pass"/><test-case name="fn-node-name-13" result="pass"/><test-case name="fn-node-name-14" result="pass"/><test-case name="fn-node-name-15" result="pass"/><test-case name="fn-node-name-16" result="pass"/><test-case name="fn-node-name-17" result="pass"/><test-case name="fn-node-name-18" result="pass"/><test-case name="fn-node-name-19" result="pass"/><test-case name="fn-node-name-20" result="pass"/><test-case name="fn-node-name-21" result="pass"/><test-case name="fn-node-name-22" result="pass"/><test-case name="fn-node-name-23" result="pass"/><test-case name="fn-node-name-24" result="pass"/><test-case name="K-NodeNameFunc-1" result="pass"/><test-case name="K-NodeNameFunc-2" result="pass"/><test-case name="K-NodeNameFunc-3" result="pass"/><test-case name="K2-NodeNameFunc-1" result="pass"/><test-case name="K2-NodeNameFunc-2" result="pass"/><test-case name="K2-NodeNameFunc-3" result="pass"/><test-case name="fn-nilled-1" result="pass"/><test-case name="fn-nilled-2" result="pass"/><test-case name="fn-nilled-3" result="pass"/><test-case name="fn-nilled-4" result="pass"/><test-case name="fn-nilled-5" result="pass"/><test-case name="fn-nilled-6" result="pass"/><test-case name="fn-nilled-7" result="pass"/><test-case name="fn-nilled-8" result="pass"/><test-case name="fn-nilled-9" result="pass"/><test-case name="fn-nilled-10" result="pass"/><test-case name="fn-nilled-11" result="pass"/><test-case name="fn-nilled-12" result="pass"/><test-case name="fn-nilled-13" result="pass"/><test-case name="fn-nilled-14" result="pass"/><test-case name="fn-nilled-15" result="pass"/><test-case name="fn-nilled-16" result="pass"/><test-case name="fn-nilled-17" result="pass"/><test-case name="fn-nilled-18" result="pass"/><test-case name="fn-nilled-19" result="pass"/><test-case name="fn-nilled-20" result="pass"/><test-case name="fn-nilled-21" result="pass"/><test-case name="fn-nilled-22" result="pass"/><test-case name="K-NilledFunc-1" result="pass"/><test-case name="K-NilledFunc-2" result="pass"/><test-case name="K-NilledFunc-3" result="pass"/><test-case name="K-NilledFunc-4" result="pass"/><test-case name="fn-stringint1args-1" result="pass"/><test-case name="fn-stringint1args-2" result="pass"/><test-case name="fn-stringint1args-3" result="pass"/><test-case name="fn-stringintg1args-1" result="pass"/><test-case name="fn-stringintg1args-2" result="pass"/><test-case name="fn-stringintg1args-3" result="pass"/><test-case name="fn-stringdec1args-1" result="fail"/><test-case name="fn-stringdec1args-2" result="fail"/><test-case name="fn-stringdec1args-3" result="fail"/><test-case name="fn-stringdbl1args-1" result="pass"/><test-case name="fn-stringdbl1args-2" result="pass"/><test-case name="fn-stringdbl1args-3" result="pass"/><test-case name="fn-stringflt1args-1" result="pass"/><test-case name="fn-stringflt1args-2" result="pass"/><test-case name="fn-stringflt1args-3" result="pass"/><test-case name="fn-stringlng1args-1" result="pass"/><test-case name="fn-stringlng1args-2" result="pass"/><test-case name="fn-stringlng1args-3" result="pass"/><test-case name="fn-stringusht1args-1" result="pass"/><test-case name="fn-stringusht1args-2" result="pass"/><test-case name="fn-stringusht1args-3" result="pass"/><test-case name="fn-stringnint1args-1" result="pass"/><test-case name="fn-stringnint1args-2" result="pass"/><test-case name="fn-stringnint1args-3" result="pass"/><test-case name="fn-stringpint1args-1" result="pass"/><test-case name="fn-stringpint1args-2" result="pass"/><test-case name="fn-stringpint1args-3" result="pass"/><test-case name="fn-stringulng1args-1" result="pass"/><test-case name="fn-stringulng1args-2" result="pass"/><test-case name="fn-stringulng1args-3" result="pass"/><test-case name="fn-stringnpi1args-1" result="pass"/><test-case name="fn-stringnpi1args-2" result="pass"/><test-case name="fn-stringnpi1args-3" result="pass"/><test-case name="fn-stringnni1args-1" result="pass"/><test-case name="fn-stringnni1args-2" result="pass"/><test-case name="fn-stringnni1args-3" result="pass"/><test-case name="fn-stringsht1args-1" result="pass"/><test-case name="fn-stringsht1args-2" result="pass"/><test-case name="fn-stringsht1args-3" result="pass"/><test-case name="fn-string-1" result="pass"/><test-case name="fn-string-2" result="pass"/><test-case name="fn-string-3" result="pass"/><test-case name="K-StringFunc-1" result="pass"/><test-case name="K-StringFunc-2" result="pass"/><test-case name="K-StringFunc-3" result="pass"/><test-case name="K-StringFunc-4" result="pass"/><test-case name="K-StringFunc-5" result="pass"/><test-case name="K-StringFunc-6" result="pass"/><test-case name="fn-dataint1args-1" result="pass"/><test-case name="fn-dataint1args-2" result="pass"/><test-case name="fn-dataint1args-3" result="pass"/><test-case name="fn-dataintg1args-1" result="pass"/><test-case name="fn-dataintg1args-2" result="pass"/><test-case name="fn-dataintg1args-3" result="pass"/><test-case name="fn-datadec1args-1" result="fail"/><test-case name="fn-datadec1args-2" result="fail"/><test-case name="fn-datadec1args-3" result="fail"/><test-case name="fn-datadbl1args-1" result="pass"/><test-case name="fn-datadbl1args-2" result="pass"/><test-case name="fn-datadbl1args-3" result="pass"/><test-case name="fn-dataflt1args-1" result="pass"/><test-case name="fn-dataflt1args-2" result="pass"/><test-case name="fn-dataflt1args-3" result="pass"/><test-case name="fn-datalng1args-1" result="pass"/><test-case name="fn-datalng1args-2" result="pass"/><test-case name="fn-datalng1args-3" result="pass"/><test-case name="fn-datausht1args-1" result="pass"/><test-case name="fn-datausht1args-2" result="pass"/><test-case name="fn-datausht1args-3" result="pass"/><test-case name="fn-datanint1args-1" result="pass"/><test-case name="fn-datanint1args-2" result="pass"/><test-case name="fn-datanint1args-3" result="pass"/><test-case name="fn-datapint1args-1" result="pass"/><test-case name="fn-datapint1args-2" result="pass"/><test-case name="fn-datapint1args-3" result="pass"/><test-case name="fn-dataulng1args-1" result="pass"/><test-case name="fn-dataulng1args-2" result="pass"/><test-case name="fn-dataulng1args-3" result="pass"/><test-case name="fn-datanpi1args-1" result="pass"/><test-case name="fn-datanpi1args-2" result="pass"/><test-case name="fn-datanpi1args-3" result="pass"/><test-case name="fn-datanni1args-1" result="pass"/><test-case name="fn-datanni1args-2" result="pass"/><test-case name="fn-datanni1args-3" result="pass"/><test-case name="fn-datasht1args-1" result="pass"/><test-case name="fn-datasht1args-2" result="pass"/><test-case name="fn-datasht1args-3" result="pass"/><test-case name="K-DataFunc-1" result="pass"/><test-case name="K-DataFunc-2" result="pass"/><test-case name="K-DataFunc-3" result="pass"/><test-case name="K-DataFunc-4" result="pass"/><test-case name="K2-DataFunc-1" result="pass"/><test-case name="K2-DataFunc-2" result="pass"/><test-case name="fn-base-uri-1" result="pass"/><test-case name="fn-base-uri-2" result="pass"/><test-case name="fn-base-uri-3" result="pass"/><test-case name="fn-base-uri-4" result="pass"/><test-case name="fn-base-uri-5" result="pass"/><test-case name="fn-base-uri-6" result="pass"/><test-case name="fn-base-uri-7" result="pass"/><test-case name="fn-base-uri-8" result="pass"/><test-case name="fn-base-uri-9" result="pass"/><test-case name="fn-base-uri-10" result="pass"/><test-case name="fn-base-uri-11" result="pass"/><test-case name="fn-base-uri-12" result="pass"/><test-case name="fn-base-uri-13" result="pass"/><test-case name="fn-base-uri-14" result="pass"/><test-case name="fn-base-uri-15" result="pass"/><test-case name="fn-base-uri-16" result="pass"/><test-case name="fn-base-uri-17" result="pass"/><test-case name="fn-base-uri-18" result="pass"/><test-case name="fn-base-uri-19" result="pass"/><test-case name="fn-base-uri-20" result="pass"/><test-case name="fn-base-uri-21" result="pass"/><test-case name="fn-base-uri-22" result="pass"/><test-case name="fn-base-uri-23" result="pass"/><test-case name="K-BaseURIFunc-1" result="pass"/><test-case name="K-BaseURIFunc-2" result="pass"/><test-case name="K2-BaseURIFunc-1" result="pass"/><test-case name="K2-BaseURIFunc-2" result="pass"/><test-case name="K2-BaseURIFunc-3" result="pass"/><test-case name="K2-BaseURIFunc-4" result="pass"/><test-case name="K2-BaseURIFunc-5" result="pass"/><test-case name="K2-BaseURIFunc-6" result="pass"/><test-case name="K2-BaseURIFunc-7" result="pass"/><test-case name="K2-BaseURIFunc-8" result="pass"/><test-case name="K2-BaseURIFunc-9" result="pass"/><test-case name="K2-BaseURIFunc-10" result="pass"/><test-case name="K2-BaseURIFunc-11" result="pass"/><test-case name="K2-BaseURIFunc-12" result="pass"/><test-case name="K2-BaseURIFunc-13" result="pass"/><test-case name="K2-BaseURIFunc-14" result="pass"/><test-case name="K2-BaseURIFunc-15" result="pass"/><test-case name="K2-BaseURIFunc-16" result="pass"/><test-case name="K2-BaseURIFunc-17" result="pass"/><test-case name="K2-BaseURIFunc-18" result="pass"/><test-case name="K2-BaseURIFunc-19" result="pass"/><test-case name="K2-BaseURIFunc-20" result="pass"/><test-case name="K2-BaseURIFunc-21" result="pass"/><test-case name="K2-BaseURIFunc-22" result="pass"/><test-case name="K2-BaseURIFunc-23" result="pass"/><test-case name="K2-BaseURIFunc-24" result="pass"/><test-case name="K2-BaseURIFunc-25" result="pass"/><test-case name="K2-BaseURIFunc-26" result="pass"/><test-case name="K2-BaseURIFunc-27" result="pass"/><test-case name="K2-BaseURIFunc-28" result="pass"/><test-case name="K2-BaseURIFunc-29" result="pass"/><test-case name="K2-BaseURIFunc-30" result="fail"/><test-case name="K2-BaseURIFunc-31" result="pass"/><test-case name="K2-BaseURIFunc-32" result="pass"/><test-case name="K2-BaseURIFunc-33" result="pass"/><test-case name="fn-static-base-1" result="pass"/><test-case name="fn-static-base-2" result="pass"/><test-case name="fn-static-base-3" result="pass"/><test-case name="fn-static-base-4" result="pass"/><test-case name="fn-static-base-5" result="pass"/><test-case name="fn-static-base-6" result="pass"/><test-case name="fn-static-base-7" result="pass"/><test-case name="fn-static-base-8" result="pass"/><test-case name="fn-static-base-9" result="pass"/><test-case name="fn-static-base-10" result="pass"/><test-case name="fn-static-base-11" result="pass"/><test-case name="fn-static-base-12" result="pass"/><test-case name="fn-static-base-13" result="pass"/><test-case name="fn-static-base-14" result="pass"/><test-case name="K-StaticBaseURIFunc-1" result="pass"/><test-case name="K-StaticBaseURIFunc-2" result="pass"/><test-case name="K-StaticBaseURIFunc-3" result="pass"/><test-case name="fn-document-uri-1" result="pass"/><test-case name="fn-document-uri-2" result="pass"/><test-case name="fn-document-uri-3" result="pass"/><test-case name="fn-document-uri-4" result="pass"/><test-case name="fn-document-uri-5" result="pass"/><test-case name="fn-document-uri-6" result="pass"/><test-case name="fn-document-uri-7" result="pass"/><test-case name="fn-document-uri-8" result="pass"/><test-case name="fn-document-uri-9" result="pass"/><test-case name="fn-document-uri-10" result="pass"/><test-case name="fn-document-uri-11" result="pass"/><test-case name="fn-document-uri-12" result="pass"/><test-case name="fn-document-uri-13" result="pass"/><test-case name="fn-document-uri-14" result="pass"/><test-case name="fn-document-uri-15" result="pass"/><test-case name="fn-document-uri-16" result="pass"/><test-case name="fn-document-uri-17" result="pass"/><test-case name="fn-document-uri-18" result="pass"/><test-case name="fn-document-uri-19" result="pass"/><test-case name="fn-document-uri-20" result="pass"/><test-case name="fn-document-uri-21" result="pass"/><test-case name="K-DocumentURIFunc-1" result="pass"/><test-case name="K-DocumentURIFunc-2" result="pass"/><test-case name="K-DocumentURIFunc-3" result="pass"/><test-case name="K2-DocumentURIFunc-1" result="pass"/><test-case name="K2-DocumentURIFunc-2" result="pass"/><test-case name="K2-DocumentURIFunc-3" result="pass"/><test-case name="K2-DocumentURIFunc-4" result="pass"/><test-case name="K2-DocumentURIFunc-5" result="pass"/><test-case name="K2-DocumentURIFunc-6" result="pass"/><test-case name="K2-DocumentURIFunc-7" result="pass"/><test-case name="K2-DocumentURIFunc-8" result="pass"/><test-case name="K2-DocumentURIFunc-9" result="pass"/><test-case name="K2-DocumentURIFunc-10" result="pass"/><test-case name="K2-DocumentURIFunc-11" result="pass"/><test-case name="fn-error-1" result="pass"/><test-case name="fn-error-2" result="pass"/><test-case name="fn-error-3" result="pass"/><test-case name="fn-error-4" result="pass"/><test-case name="fn-error-5" result="pass"/><test-case name="fn-error-6" result="pass"/><test-case name="fn-error-7" result="pass"/><test-case name="fn-error-8" result="pass"/><test-case name="fn-error-9" result="pass"/><test-case name="fn-error-10" result="pass"/><test-case name="fn-error-11" result="pass"/><test-case name="fn-error-12" result="pass"/><test-case name="fn-error-13" result="pass"/><test-case name="fn-error-14" result="pass"/><test-case name="fn-error-15" result="pass"/><test-case name="fn-error-16" result="pass"/><test-case name="fn-error-17" result="pass"/><test-case name="fn-error-18" result="pass"/><test-case name="fn-error-19" result="pass"/><test-case name="fn-error-20" result="pass"/><test-case name="fn-error-22" result="pass"/><test-case name="fn-error-23" result="pass"/><test-case name="fn-error-25" result="pass"/><test-case name="fn-error-26" result="pass"/><test-case name="fn-error-27" result="pass"/><test-case name="fn-error-28" result="pass"/><test-case name="fn-error-29" result="pass"/><test-case name="fn-error-30" result="pass"/><test-case name="fn-error-31" result="pass"/><test-case name="fn-error-32" result="pass"/><test-case name="fn-error-33" result="pass"/><test-case name="fn-error-34" result="pass"/><test-case name="fn-error-35" result="pass"/><test-case name="fn-error-36" result="pass"/><test-case name="fn-error-37" result="pass"/><test-case name="fn-error-38" result="pass"/><test-case name="fn-error-39" result="pass"/><test-case name="fn-error-40" result="pass"/><test-case name="fn-error-41" result="pass"/><test-case name="fn-error-42" result="pass"/><test-case name="fn-error-43" result="pass"/><test-case name="fn-error-44" result="pass"/><test-case name="fn-error-45" result="pass"/><test-case name="fn-error-46" result="pass"/><test-case name="fn-error-47" result="pass"/><test-case name="fn-error-48" result="pass"/><test-case name="fn-error-49" result="pass"/><test-case name="fn-error-50" result="pass"/><test-case name="fn-error-51" result="pass"/><test-case name="K-ErrorFunc-1" result="pass"/><test-case name="K-ErrorFunc-2" result="pass"/><test-case name="K-ErrorFunc-3" result="pass"/><test-case name="K-ErrorFunc-4" result="pass"/><test-case name="K-ErrorFunc-5" result="pass"/><test-case name="K-ErrorFunc-6" result="pass"/><test-case name="K-ErrorFunc-7" result="pass"/><test-case name="K-ErrorFunc-8" result="pass"/><test-case name="K-ErrorFunc-9" result="pass"/><test-case name="K-ErrorFunc-10" result="pass"/><test-case name="K2-ErrorFunc-1" result="pass"/><test-case name="K2-ErrorFunc-2" result="pass"/><test-case name="K2-ErrorFunc-3" result="pass"/><test-case name="fn-trace-1" result="pass"/><test-case name="fn-trace-2" result="pass"/><test-case name="fn-trace-3" result="pass"/><test-case name="fn-trace-4" result="pass"/><test-case name="fn-trace-5" result="pass"/><test-case name="fn-trace-6" result="pass"/><test-case name="fn-trace-7" result="pass"/><test-case name="fn-trace-8" result="pass"/><test-case name="fn-trace-9" result="pass"/><test-case name="fn-trace-10" result="pass"/><test-case name="fn-trace-11" result="pass"/><test-case name="fn-trace-12" result="pass"/><test-case name="fn-trace-13" result="pass"/><test-case name="fn-trace-14" result="pass"/><test-case name="fn-trace-15" result="pass"/><test-case name="fn-trace-16" result="pass"/><test-case name="fn-trace-17" result="pass"/><test-case name="fn-trace-18" result="pass"/><test-case name="fn-trace-19" result="pass"/><test-case name="fn-trace-20" result="pass"/><test-case name="fn-trace-21" result="pass"/><test-case name="K-TraceFunc-1" result="pass"/><test-case name="K-TraceFunc-2" result="pass"/><test-case name="K-TraceFunc-3" result="pass"/><test-case name="K-TraceFunc-4" result="pass"/><test-case name="K-TraceFunc-5" result="pass"/><test-case name="K-TraceFunc-6" result="pass"/><test-case name="fn-dateTime-1" result="pass"/><test-case name="fn-dateTime-2" result="pass"/><test-case name="fn-dateTime-3" result="pass"/><test-case name="fn-dateTime-4" result="pass"/><test-case name="fn-dateTime-5" result="pass"/><test-case name="fn-dateTime-6" result="pass"/><test-case name="fn-dateTime-7" result="pass"/><test-case name="fn-dateTime-8" result="pass"/><test-case name="fn-dateTime-9" result="pass"/><test-case name="fn-dateTime-10" result="pass"/><test-case name="fn-dateTime-11" result="pass"/><test-case name="fn-dateTime-12" result="pass"/><test-case name="fn-dateTime-13" result="pass"/><test-case name="fn-dateTime-14" result="pass"/><test-case name="fn-dateTime-15" result="pass"/><test-case name="fn-dateTime-16" result="pass"/><test-case name="fn-dateTime-17" result="pass"/><test-case name="fn-dateTime-18" result="pass"/><test-case name="fn-dateTime-19" result="pass"/><test-case name="fn-dateTime-20" result="pass"/><test-case name="fn-dateTime-21" result="pass"/><test-case name="fn-dateTime-22" result="pass"/><test-case name="fn-dateTime-23" result="pass"/><test-case name="fn-dateTime-24" result="fail"/><test-case name="fn-dateTime-25" result="fail"/><test-case name="fn-dateTime-26" result="fail"/><test-case name="fn-dateTime-27" result="fail"/><test-case name="fn-dateTime-28" result="pass"/><test-case name="fn-dateTime-29" result="pass"/><test-case name="fn-dateTime-30" result="pass"/><test-case name="forg0008-1" result="pass"/><test-case name="K-DateTimeFunc-1" result="pass"/><test-case name="K-DateTimeFunc-2" result="pass"/><test-case name="K-DateTimeFunc-3" result="pass"/><test-case name="K-DateTimeFunc-4" result="pass"/><test-case name="K-DateTimeFunc-5" result="pass"/><test-case name="K-DateTimeFunc-6" result="fail"/><test-case name="K-DateTimeFunc-7" result="pass"/><test-case name="K-DateTimeFunc-8" result="pass"/><test-case name="K-DateTimeFunc-9" result="pass"/><test-case name="K-DateTimeFunc-10" result="pass"/><test-case name="K-DateTimeFunc-11" result="pass"/><test-case name="K-DateTimeFunc-12" result="pass"/><test-case name="K-DateTimeFunc-13" result="pass"/><test-case name="K-DateTimeFunc-14" result="pass"/><test-case name="K-DateTimeFunc-15" result="pass"/><test-case name="K-DateTimeFunc-16" result="pass"/><test-case name="K-DateTimeFunc-17" result="pass"/><test-case name="K-DateTimeFunc-18" result="pass"/><test-case name="K2-DateTimeFunc-1" result="pass"/><test-case name="fn-absint1args-1" result="pass"/><test-case name="fn-absint1args-2" result="pass"/><test-case name="fn-absint1args-3" result="pass"/><test-case name="fn-absintg1args-1" result="pass"/><test-case name="fn-absintg1args-2" result="pass"/><test-case name="fn-absintg1args-3" result="pass"/><test-case name="fn-absdec1args-1" result="fail"/><test-case name="fn-absdec1args-2" result="fail"/><test-case name="fn-absdec1args-3" result="fail"/><test-case name="fn-absdbl1args-1" result="pass"/><test-case name="fn-absdbl1args-2" result="pass"/><test-case name="fn-absdbl1args-3" result="pass"/><test-case name="fn-absflt1args-1" result="pass"/><test-case name="fn-absflt1args-2" result="pass"/><test-case name="fn-absflt1args-3" result="pass"/><test-case name="fn-abslng1args-1" result="pass"/><test-case name="fn-abslng1args-2" result="pass"/><test-case name="fn-abslng1args-3" result="pass"/><test-case name="fn-absusht1args-1" result="pass"/><test-case name="fn-absusht1args-2" result="pass"/><test-case name="fn-absusht1args-3" result="pass"/><test-case name="fn-absnint1args-1" result="pass"/><test-case name="fn-absnint1args-2" result="pass"/><test-case name="fn-absnint1args-3" result="pass"/><test-case name="fn-abspint1args-1" result="pass"/><test-case name="fn-abspint1args-2" result="pass"/><test-case name="fn-abspint1args-3" result="pass"/><test-case name="fn-absulng1args-1" result="pass"/><test-case name="fn-absulng1args-2" result="pass"/><test-case name="fn-absulng1args-3" result="pass"/><test-case name="fn-absnpi1args-1" result="pass"/><test-case name="fn-absnpi1args-2" result="pass"/><test-case name="fn-absnpi1args-3" result="pass"/><test-case name="fn-absnni1args-1" result="pass"/><test-case name="fn-absnni1args-2" result="pass"/><test-case name="fn-absnni1args-3" result="pass"/><test-case name="fn-abssht1args-1" result="pass"/><test-case name="fn-abssht1args-2" result="pass"/><test-case name="fn-abssht1args-3" result="pass"/><test-case name="fn-abs-more-args-001" result="pass"/><test-case name="fn-abs-more-args-002" result="pass"/><test-case name="fn-abs-more-args-003" result="pass"/><test-case name="fn-abs-more-args-004" result="pass"/><test-case name="fn-abs-more-args-005" result="pass"/><test-case name="fn-abs-more-args-006" result="pass"/><test-case name="fn-abs-more-args-007" result="pass"/><test-case name="fn-abs-more-args-008" result="pass"/><test-case name="fn-abs-more-args-009" result="pass"/><test-case name="fn-abs-more-args-010" result="pass"/><test-case name="fn-abs-more-args-011" result="pass"/><test-case name="fn-abs-more-args-012" result="pass"/><test-case name="fn-abs-more-args-013" result="pass"/><test-case name="fn-abs-more-args-014" result="pass"/><test-case name="fn-abs-more-args-015" result="pass"/><test-case name="fn-abs-more-args-016" result="pass"/><test-case name="fn-abs-more-args-017" result="pass"/><test-case name="fn-abs-more-args-018" result="pass"/><test-case name="fn-abs-more-args-019" result="pass"/><test-case name="fn-abs-more-args-020" result="pass"/><test-case name="fn-abs-more-args-021" result="pass"/><test-case name="fn-abs-more-args-022" result="pass"/><test-case name="fn-abs-more-args-023" result="pass"/><test-case name="fn-abs-more-args-024" result="pass"/><test-case name="fn-abs-more-args-025" result="pass"/><test-case name="fn-abs-more-args-026" result="pass"/><test-case name="fn-abs-more-args-027" result="pass"/><test-case name="fn-abs-more-args-028" result="pass"/><test-case name="fn-abs-more-args-029" result="pass"/><test-case name="fn-abs-more-args-030" result="pass"/><test-case name="fn-abs-more-args-031" result="pass"/><test-case name="fn-abs-more-args-032" result="pass"/><test-case name="fn-abs-more-args-033" result="pass"/><test-case name="fn-abs-more-args-034" result="pass"/><test-case name="fn-abs-more-args-035" result="pass"/><test-case name="fn-abs-more-args-036" result="pass"/><test-case name="fn-abs-more-args-037" result="pass"/><test-case name="fn-abs-more-args-038" result="pass"/><test-case name="fn-abs-more-args-039" result="pass"/><test-case name="fn-abs-more-args-040" result="pass"/><test-case name="fn-abs-more-args-041" result="pass"/><test-case name="fn-abs-more-args-042" result="pass"/><test-case name="fn-abs-more-args-043" result="pass"/><test-case name="fn-abs-more-args-044" result="pass"/><test-case name="fn-abs-more-args-045" result="pass"/><test-case name="fn-abs-more-args-046" result="pass"/><test-case name="fn-abs-more-args-047" result="pass"/><test-case name="fn-abs-more-args-048" result="pass"/><test-case name="fn-abs-more-args-049" result="pass"/><test-case name="fn-abs-more-args-050" result="pass"/><test-case name="fn-abs-more-args-051" result="pass"/><test-case name="fn-abs-more-args-052" result="pass"/><test-case name="fn-abs-more-args-053" result="pass"/><test-case name="fn-abs-more-args-054" result="pass"/><test-case name="fn-abs-more-args-055" result="pass"/><test-case name="fn-abs-more-args-056" result="pass"/><test-case name="fn-abs-more-args-057" result="pass"/><test-case name="fn-abs-more-args-058" result="pass"/><test-case name="fn-abs-more-args-059" result="pass"/><test-case name="fn-abs-more-args-060" result="pass"/><test-case name="fn-abs-more-args-061" result="pass"/><test-case name="fn-abs-more-args-062" result="pass"/><test-case name="fn-abs-more-args-063" result="pass"/><test-case name="fn-abs-more-args-064" result="pass"/><test-case name="fn-abs-more-args-065" result="pass"/><test-case name="fn-abs-more-args-066" result="pass"/><test-case name="fn-abs-more-args-067" result="pass"/><test-case name="fn-abs-more-args-068" result="pass"/><test-case name="fn-abs-more-args-069" result="pass"/><test-case name="fn-abs-more-args-070" result="pass"/><test-case name="fn-abs-more-args-071" result="pass"/><test-case name="fn-abs-more-args-072" result="pass"/><test-case name="fn-abs-more-args-073" result="pass"/><test-case name="fn-abs-more-args-074" result="pass"/><test-case name="fn-abs-more-args-075" result="pass"/><test-case name="fn-abs-more-args-076" result="pass"/><test-case name="fn-abs-more-args-077" result="pass"/><test-case name="fn-abs-more-args-078" result="pass"/><test-case name="fn-abs-more-args-079" result="pass"/><test-case name="fn-abs-more-args-080" result="pass"/><test-case name="fn-abs-more-args-081" result="pass"/><test-case name="fn-abs-more-args-082" result="pass"/><test-case name="fn-abs-more-args-083" result="pass"/><test-case name="fn-abs-more-args-084" result="pass"/><test-case name="fn-abs-more-args-085" result="pass"/><test-case name="fn-abs-more-args-086" result="pass"/><test-case name="K-ABSFunc-1" result="pass"/><test-case name="K-ABSFunc-2" result="pass"/><test-case name="K-ABSFunc-3" result="pass"/><test-case name="K-ABSFunc-4" result="pass"/><test-case name="K-ABSFunc-5" result="pass"/><test-case name="K-ABSFunc-6" result="pass"/><test-case name="K2-ABSFunc-1" result="pass"/><test-case name="K2-ABSFunc-2" result="pass"/><test-case name="K2-ABSFunc-3" result="pass"/><test-case name="K2-ABSFunc-4" result="pass"/><test-case name="K2-ABSFunc-5" result="pass"/><test-case name="K2-ABSFunc-6" result="pass"/><test-case name="K2-ABSFunc-7" result="pass"/><test-case name="K2-ABSFunc-8" result="pass"/><test-case name="K2-ABSFunc-9" result="pass"/><test-case name="K2-ABSFunc-10" result="pass"/><test-case name="K2-ABSFunc-11" result="pass"/><test-case name="K2-ABSFunc-12" result="pass"/><test-case name="K2-ABSFunc-13" result="pass"/><test-case name="K2-ABSFunc-14" result="pass"/><test-case name="K2-ABSFunc-15" result="pass"/><test-case name="K2-ABSFunc-16" result="pass"/><test-case name="K2-ABSFunc-17" result="pass"/><test-case name="K2-ABSFunc-18" result="pass"/><test-case name="K2-ABSFunc-19" result="pass"/><test-case name="K2-ABSFunc-20" result="pass"/><test-case name="K2-ABSFunc-21" result="pass"/><test-case name="K2-ABSFunc-22" result="pass"/><test-case name="K2-ABSFunc-23" result="pass"/><test-case name="K2-ABSFunc-24" result="pass"/><test-case name="K2-ABSFunc-25" result="pass"/><test-case name="K2-ABSFunc-26" result="pass"/><test-case name="K2-ABSFunc-27" result="pass"/><test-case name="K2-ABSFunc-28" result="pass"/><test-case name="K2-ABSFunc-29" result="pass"/><test-case name="K2-ABSFunc-30" result="pass"/><test-case name="K2-ABSFunc-31" result="pass"/><test-case name="K2-ABSFunc-32" result="pass"/><test-case name="K2-ABSFunc-33" result="pass"/><test-case name="K2-ABSFunc-34" result="pass"/><test-case name="K2-ABSFunc-35" result="pass"/><test-case name="K2-ABSFunc-36" result="pass"/><test-case name="K2-ABSFunc-37" result="pass"/><test-case name="K2-ABSFunc-38" result="pass"/><test-case name="K2-ABSFunc-39" result="pass"/><test-case name="K2-ABSFunc-40" result="pass"/><test-case name="K2-ABSFunc-41" result="pass"/><test-case name="K2-ABSFunc-42" result="pass"/><test-case name="K2-ABSFunc-43" result="pass"/><test-case name="K2-ABSFunc-44" result="pass"/><test-case name="K2-ABSFunc-45" result="pass"/><test-case name="K2-ABSFunc-46" result="pass"/><test-case name="K2-ABSFunc-47" result="pass"/><test-case name="K2-ABSFunc-48" result="pass"/><test-case name="K2-ABSFunc-49" result="pass"/><test-case name="K2-ABSFunc-50" result="pass"/><test-case name="fn-ceilingint1args-1" result="pass"/><test-case name="fn-ceilingint1args-2" result="pass"/><test-case name="fn-ceilingint1args-3" result="pass"/><test-case name="fn-ceilingintg1args-1" result="pass"/><test-case name="fn-ceilingintg1args-2" result="pass"/><test-case name="fn-ceilingintg1args-3" result="pass"/><test-case name="fn-ceilingdec1args-1" result="fail"/><test-case name="fn-ceilingdec1args-2" result="fail"/><test-case name="fn-ceilingdec1args-3" result="fail"/><test-case name="fn-ceilingdbl1args-1" result="pass"/><test-case name="fn-ceilingdbl1args-2" result="pass"/><test-case name="fn-ceilingdbl1args-3" result="pass"/><test-case name="fn-ceilingflt1args-1" result="pass"/><test-case name="fn-ceilingflt1args-2" result="pass"/><test-case name="fn-ceilingflt1args-3" result="pass"/><test-case name="fn-ceilinglng1args-1" result="pass"/><test-case name="fn-ceilinglng1args-2" result="pass"/><test-case name="fn-ceilinglng1args-3" result="pass"/><test-case name="fn-ceilingusht1args-1" result="pass"/><test-case name="fn-ceilingusht1args-2" result="pass"/><test-case name="fn-ceilingusht1args-3" result="pass"/><test-case name="fn-ceilingnint1args-1" result="pass"/><test-case name="fn-ceilingnint1args-2" result="pass"/><test-case name="fn-ceilingnint1args-3" result="pass"/><test-case name="fn-ceilingpint1args-1" result="pass"/><test-case name="fn-ceilingpint1args-2" result="pass"/><test-case name="fn-ceilingpint1args-3" result="pass"/><test-case name="fn-ceilingulng1args-1" result="pass"/><test-case name="fn-ceilingulng1args-2" result="pass"/><test-case name="fn-ceilingulng1args-3" result="pass"/><test-case name="fn-ceilingnpi1args-1" result="pass"/><test-case name="fn-ceilingnpi1args-2" result="pass"/><test-case name="fn-ceilingnpi1args-3" result="pass"/><test-case name="fn-ceilingnni1args-1" result="pass"/><test-case name="fn-ceilingnni1args-2" result="pass"/><test-case name="fn-ceilingnni1args-3" result="pass"/><test-case name="fn-ceilingsht1args-1" result="pass"/><test-case name="fn-ceilingsht1args-2" result="pass"/><test-case name="fn-ceilingsht1args-3" result="pass"/><test-case name="K-CeilingFunc-1" result="pass"/><test-case name="K-CeilingFunc-2" result="pass"/><test-case name="K-CeilingFunc-3" result="pass"/><test-case name="K-CeilingFunc-4" result="pass"/><test-case name="K-CeilingFunc-5" result="pass"/><test-case name="K-CeilingFunc-6" result="pass"/><test-case name="K2-CeilingFunc-1" result="pass"/><test-case name="K2-CeilingFunc-2" result="pass"/><test-case name="K2-CeilingFunc-3" result="pass"/><test-case name="K2-CeilingFunc-4" result="pass"/><test-case name="K2-CeilingFunc-5" result="pass"/><test-case name="K2-CeilingFunc-6" result="pass"/><test-case name="K2-CeilingFunc-7" result="pass"/><test-case name="K2-CeilingFunc-8" result="pass"/><test-case name="K2-CeilingFunc-9" result="pass"/><test-case name="K2-CeilingFunc-10" result="pass"/><test-case name="K2-CeilingFunc-11" result="pass"/><test-case name="K2-CeilingFunc-12" result="pass"/><test-case name="fn-floorint1args-1" result="pass"/><test-case name="fn-floorint1args-2" result="pass"/><test-case name="fn-floorint1args-3" result="pass"/><test-case name="fn-floorintg1args-1" result="pass"/><test-case name="fn-floorintg1args-2" result="pass"/><test-case name="fn-floorintg1args-3" result="pass"/><test-case name="fn-floordec1args-1" result="fail"/><test-case name="fn-floordec1args-2" result="fail"/><test-case name="fn-floordec1args-3" result="fail"/><test-case name="fn-floordbl1args-1" result="pass"/><test-case name="fn-floordbl1args-2" result="pass"/><test-case name="fn-floordbl1args-3" result="pass"/><test-case name="fn-floorflt1args-1" result="pass"/><test-case name="fn-floorflt1args-2" result="pass"/><test-case name="fn-floorflt1args-3" result="pass"/><test-case name="fn-floorlng1args-1" result="pass"/><test-case name="fn-floorlng1args-2" result="pass"/><test-case name="fn-floorlng1args-3" result="pass"/><test-case name="fn-floorusht1args-1" result="pass"/><test-case name="fn-floorusht1args-2" result="pass"/><test-case name="fn-floorusht1args-3" result="pass"/><test-case name="fn-floornint1args-1" result="pass"/><test-case name="fn-floornint1args-2" result="pass"/><test-case name="fn-floornint1args-3" result="pass"/><test-case name="fn-floorpint1args-1" result="pass"/><test-case name="fn-floorpint1args-2" result="pass"/><test-case name="fn-floorpint1args-3" result="pass"/><test-case name="fn-floorulng1args-1" result="pass"/><test-case name="fn-floorulng1args-2" result="pass"/><test-case name="fn-floorulng1args-3" result="pass"/><test-case name="fn-floornpi1args-1" result="pass"/><test-case name="fn-floornpi1args-2" result="pass"/><test-case name="fn-floornpi1args-3" result="pass"/><test-case name="fn-floornni1args-1" result="pass"/><test-case name="fn-floornni1args-2" result="pass"/><test-case name="fn-floornni1args-3" result="pass"/><test-case name="fn-floorsht1args-1" result="pass"/><test-case name="fn-floorsht1args-2" result="pass"/><test-case name="fn-floorsht1args-3" result="pass"/><test-case name="K-FloorFunc-1" result="pass"/><test-case name="K-FloorFunc-2" result="pass"/><test-case name="K-FloorFunc-3" result="pass"/><test-case name="K-FloorFunc-4" result="pass"/><test-case name="K-FloorFunc-5" result="pass"/><test-case name="K-FloorFunc-6" result="pass"/><test-case name="K2-FloorFunc-1" result="pass"/><test-case name="K2-FloorFunc-2" result="pass"/><test-case name="K2-FloorFunc-3" result="pass"/><test-case name="K2-FloorFunc-4" result="pass"/><test-case name="K2-FloorFunc-5" result="pass"/><test-case name="K2-FloorFunc-6" result="pass"/><test-case name="K2-FloorFunc-7" result="pass"/><test-case name="K2-FloorFunc-8" result="pass"/><test-case name="K2-FloorFunc-9" result="pass"/><test-case name="K2-FloorFunc-10" result="pass"/><test-case name="K2-FloorFunc-11" result="pass"/><test-case name="K2-FloorFunc-12" result="pass"/><test-case name="K2-FloorFunc-13" result="pass"/><test-case name="fn-roundint1args-1" result="pass"/><test-case name="fn-roundint1args-2" result="pass"/><test-case name="fn-roundint1args-3" result="pass"/><test-case name="fn-roundintg1args-1" result="pass"/><test-case name="fn-roundintg1args-2" result="pass"/><test-case name="fn-roundintg1args-3" result="pass"/><test-case name="fn-rounddec1args-1" result="fail"/><test-case name="fn-rounddec1args-2" result="fail"/><test-case name="fn-rounddec1args-3" result="fail"/><test-case name="fn-rounddbl1args-1" result="pass"/><test-case name="fn-rounddbl1args-2" result="pass"/><test-case name="fn-rounddbl1args-3" result="pass"/><test-case name="fn-roundflt1args-1" result="pass"/><test-case name="fn-roundflt1args-2" result="pass"/><test-case name="fn-roundflt1args-3" result="pass"/><test-case name="fn-roundlng1args-1" result="pass"/><test-case name="fn-roundlng1args-2" result="pass"/><test-case name="fn-roundlng1args-3" result="pass"/><test-case name="fn-roundusht1args-1" result="pass"/><test-case name="fn-roundusht1args-2" result="pass"/><test-case name="fn-roundusht1args-3" result="pass"/><test-case name="fn-roundnint1args-1" result="pass"/><test-case name="fn-roundnint1args-2" result="pass"/><test-case name="fn-roundnint1args-3" result="pass"/><test-case name="fn-roundpint1args-1" result="pass"/><test-case name="fn-roundpint1args-2" result="pass"/><test-case name="fn-roundpint1args-3" result="pass"/><test-case name="fn-roundulng1args-1" result="pass"/><test-case name="fn-roundulng1args-2" result="pass"/><test-case name="fn-roundulng1args-3" result="pass"/><test-case name="fn-roundnpi1args-1" result="pass"/><test-case name="fn-roundnpi1args-2" result="pass"/><test-case name="fn-roundnpi1args-3" result="pass"/><test-case name="fn-roundnni1args-1" result="pass"/><test-case name="fn-roundnni1args-2" result="pass"/><test-case name="fn-roundnni1args-3" result="pass"/><test-case name="fn-roundsht1args-1" result="pass"/><test-case name="fn-roundsht1args-2" result="pass"/><test-case name="fn-roundsht1args-3" result="pass"/><test-case name="K-RoundFunc-1" result="pass"/><test-case name="K-RoundFunc-2" result="pass"/><test-case name="K-RoundFunc-3" result="pass"/><test-case name="K-RoundFunc-4" result="pass"/><test-case name="K-RoundFunc-5" result="pass"/><test-case name="K-RoundFunc-6" result="pass"/><test-case name="K-RoundFunc-7" result="pass"/><test-case name="K-RoundFunc-8" result="pass"/><test-case name="K-RoundFunc-9" result="pass"/><test-case name="K2-RoundFunc-1" result="pass"/><test-case name="K2-RoundFunc-2" result="pass"/><test-case name="K2-RoundFunc-3" result="pass"/><test-case name="K2-RoundFunc-4" result="pass"/><test-case name="K2-RoundFunc-5" result="pass"/><test-case name="K2-RoundFunc-6" result="pass"/><test-case name="K2-RoundFunc-7" result="pass"/><test-case name="K2-RoundFunc-8" result="pass"/><test-case name="K2-RoundFunc-9" result="pass"/><test-case name="K2-RoundFunc-10" result="pass"/><test-case name="K2-RoundFunc-11" result="pass"/><test-case name="K2-RoundFunc-12" result="pass"/><test-case name="K2-RoundFunc-13" result="pass"/><test-case name="K2-RoundFunc-14" result="pass"/><test-case name="K2-RoundFunc-15" result="pass"/><test-case name="K2-RoundFunc-16" result="pass"/><test-case name="K2-RoundFunc-17" result="pass"/><test-case name="K2-RoundFunc-18" result="pass"/><test-case name="K2-RoundFunc-19" result="pass"/><test-case name="K2-RoundFunc-20" result="pass"/><test-case name="K2-RoundFunc-21" result="pass"/><test-case name="K2-RoundFunc-22" result="pass"/><test-case name="K2-RoundFunc-23" result="pass"/><test-case name="K2-RoundFunc-24" result="pass"/><test-case name="K2-RoundFunc-25" result="pass"/><test-case name="K2-RoundFunc-26" result="pass"/><test-case name="K2-RoundFunc-27" result="pass"/><test-case name="K2-RoundFunc-28" result="pass"/><test-case name="K2-RoundFunc-29" result="pass"/><test-case name="K2-RoundFunc-30" result="pass"/><test-case name="K2-RoundFunc-31" result="pass"/><test-case name="K2-RoundFunc-32" result="pass"/><test-case name="K2-RoundFunc-33" result="pass"/><test-case name="K2-RoundFunc-34" result="pass"/><test-case name="K2-RoundFunc-35" result="pass"/><test-case name="K2-RoundFunc-36" result="pass"/><test-case name="K2-RoundFunc-37" result="pass"/><test-case name="K2-RoundFunc-38" result="pass"/><test-case name="K2-RoundFunc-39" result="pass"/><test-case name="K2-RoundFunc-40" result="pass"/><test-case name="K2-RoundFunc-41" result="pass"/><test-case name="K2-RoundFunc-42" result="pass"/><test-case name="K2-RoundFunc-43" result="pass"/><test-case name="K2-RoundFunc-44" result="pass"/><test-case name="K2-RoundFunc-45" result="pass"/><test-case name="K2-RoundFunc-46" result="pass"/><test-case name="K2-RoundFunc-47" result="pass"/><test-case name="K2-RoundFunc-48" result="pass"/><test-case name="K2-RoundFunc-49" result="pass"/><test-case name="K2-RoundFunc-50" result="pass"/><test-case name="K2-RoundFunc-51" result="pass"/><test-case name="K2-RoundFunc-52" result="pass"/><test-case name="K2-RoundFunc-53" result="pass"/><test-case name="K2-RoundFunc-54" result="pass"/><test-case name="K2-RoundFunc-55" result="pass"/><test-case name="K2-RoundFunc-56" result="pass"/><test-case name="K2-RoundFunc-57" result="pass"/><test-case name="K2-RoundFunc-58" result="pass"/><test-case name="K2-RoundFunc-59" result="pass"/><test-case name="K2-RoundFunc-60" result="pass"/><test-case name="K2-RoundFunc-61" result="pass"/><test-case name="K2-RoundFunc-62" result="pass"/><test-case name="K2-RoundFunc-63" result="pass"/><test-case name="K2-RoundFunc-64" result="pass"/><test-case name="K2-RoundFunc-65" result="pass"/><test-case name="K2-RoundFunc-66" result="pass"/><test-case name="K2-RoundFunc-67" result="pass"/><test-case name="K2-RoundFunc-68" result="pass"/><test-case name="K2-RoundFunc-69" result="pass"/><test-case name="K2-RoundFunc-70" result="pass"/><test-case name="K2-RoundFunc-71" result="pass"/><test-case name="K2-RoundFunc-72" result="pass"/><test-case name="K2-RoundFunc-73" result="pass"/><test-case name="K2-RoundFunc-74" result="pass"/><test-case name="K2-RoundFunc-75" result="pass"/><test-case name="K2-RoundFunc-76" result="pass"/><test-case name="K2-RoundFunc-77" result="pass"/><test-case name="K2-RoundFunc-78" result="pass"/><test-case name="K2-RoundFunc-79" result="pass"/><test-case name="K2-RoundFunc-80" result="pass"/><test-case name="K2-RoundFunc-81" result="pass"/><test-case name="K2-RoundFunc-82" result="pass"/><test-case name="K2-RoundFunc-83" result="pass"/><test-case name="K2-RoundFunc-84" result="pass"/><test-case name="K2-RoundFunc-85" result="pass"/><test-case name="K2-RoundFunc-86" result="pass"/><test-case name="K2-RoundFunc-87" result="pass"/><test-case name="K2-RoundFunc-88" result="pass"/><test-case name="K2-RoundFunc-89" result="pass"/><test-case name="K2-RoundFunc-90" result="pass"/><test-case name="K2-RoundFunc-91" result="pass"/><test-case name="K2-RoundFunc-92" result="pass"/><test-case name="K2-RoundFunc-93" result="pass"/><test-case name="K2-RoundFunc-94" result="pass"/><test-case name="K2-RoundFunc-95" result="pass"/><test-case name="K2-RoundFunc-96" result="pass"/><test-case name="K2-RoundFunc-97" result="pass"/><test-case name="K2-RoundFunc-98" result="pass"/><test-case name="K2-RoundFunc-99" result="pass"/><test-case name="K2-RoundFunc-100" result="pass"/><test-case name="K2-RoundFunc-101" result="pass"/><test-case name="K2-RoundFunc-102" result="pass"/><test-case name="K2-RoundFunc-103" result="pass"/><test-case name="K2-RoundFunc-104" result="pass"/><test-case name="K2-RoundFunc-105" result="pass"/><test-case name="K2-RoundFunc-106" result="pass"/><test-case name="K2-RoundFunc-107" result="pass"/><test-case name="K2-RoundFunc-108" result="pass"/><test-case name="K2-RoundFunc-109" result="pass"/><test-case name="K2-RoundFunc-110" result="pass"/><test-case name="K2-RoundFunc-111" result="pass"/><test-case name="K2-RoundFunc-112" result="pass"/><test-case name="K2-RoundFunc-113" result="pass"/><test-case name="K2-RoundFunc-114" result="pass"/><test-case name="K2-RoundFunc-115" result="pass"/><test-case name="K2-RoundFunc-116" result="pass"/><test-case name="K2-RoundFunc-117" result="pass"/><test-case name="K2-RoundFunc-118" result="pass"/><test-case name="K2-RoundFunc-119" result="pass"/><test-case name="K2-RoundFunc-120" result="pass"/><test-case name="K2-RoundFunc-121" result="pass"/><test-case name="K2-RoundFunc-122" result="pass"/><test-case name="K2-RoundFunc-123" result="pass"/><test-case name="K2-RoundFunc-124" result="pass"/><test-case name="K2-RoundFunc-125" result="pass"/><test-case name="K2-RoundFunc-126" result="pass"/><test-case name="K2-RoundFunc-127" result="pass"/><test-case name="K2-RoundFunc-128" result="pass"/><test-case name="K2-RoundFunc-129" result="pass"/><test-case name="K2-RoundFunc-130" result="pass"/><test-case name="K2-RoundFunc-131" result="pass"/><test-case name="K2-RoundFunc-132" result="pass"/><test-case name="K2-RoundFunc-133" result="pass"/><test-case name="K2-RoundFunc-134" result="pass"/><test-case name="K2-RoundFunc-135" result="pass"/><test-case name="K2-RoundFunc-136" result="pass"/><test-case name="K2-RoundFunc-137" result="pass"/><test-case name="K2-RoundFunc-138" result="pass"/><test-case name="K2-RoundFunc-139" result="pass"/><test-case name="K2-RoundFunc-140" result="pass"/><test-case name="K2-RoundFunc-141" result="pass"/><test-case name="K2-RoundFunc-142" result="pass"/><test-case name="K2-RoundFunc-143" result="pass"/><test-case name="K2-RoundFunc-144" result="pass"/><test-case name="K2-RoundFunc-145" result="pass"/><test-case name="K2-RoundFunc-146" result="pass"/><test-case name="K2-RoundFunc-147" result="pass"/><test-case name="K2-RoundFunc-148" result="pass"/><test-case name="K2-RoundFunc-149" result="pass"/><test-case name="K2-RoundFunc-150" result="pass"/><test-case name="K2-RoundFunc-151" result="pass"/><test-case name="K2-RoundFunc-152" result="pass"/><test-case name="K2-RoundFunc-153" result="pass"/><test-case name="K2-RoundFunc-154" result="pass"/><test-case name="K2-RoundFunc-155" result="pass"/><test-case name="K2-RoundFunc-156" result="pass"/><test-case name="K2-RoundFunc-157" result="pass"/><test-case name="K2-RoundFunc-158" result="pass"/><test-case name="K2-RoundFunc-159" result="pass"/><test-case name="K2-RoundFunc-160" result="pass"/><test-case name="K2-RoundFunc-161" result="pass"/><test-case name="K2-RoundFunc-162" result="pass"/><test-case name="K2-RoundFunc-163" result="pass"/><test-case name="K2-RoundFunc-164" result="pass"/><test-case name="K2-RoundFunc-165" result="pass"/><test-case name="K2-RoundFunc-166" result="pass"/><test-case name="K2-RoundFunc-167" result="pass"/><test-case name="K2-RoundFunc-168" result="pass"/><test-case name="K2-RoundFunc-169" result="pass"/><test-case name="K2-RoundFunc-170" result="pass"/><test-case name="K2-RoundFunc-171" result="pass"/><test-case name="K2-RoundFunc-172" result="pass"/><test-case name="K2-RoundFunc-173" result="pass"/><test-case name="K2-RoundFunc-174" result="pass"/><test-case name="K2-RoundFunc-175" result="pass"/><test-case name="K2-RoundFunc-176" result="pass"/><test-case name="K2-RoundFunc-177" result="pass"/><test-case name="K2-RoundFunc-178" result="pass"/><test-case name="K2-RoundFunc-179" result="pass"/><test-case name="K2-RoundFunc-180" result="pass"/><test-case name="K2-RoundFunc-181" result="pass"/><test-case name="K2-RoundFunc-182" result="pass"/><test-case name="K2-RoundFunc-183" result="pass"/><test-case name="K2-RoundFunc-184" result="pass"/><test-case name="K2-RoundFunc-185" result="pass"/><test-case name="K2-RoundFunc-186" result="pass"/><test-case name="K2-RoundFunc-187" result="pass"/><test-case name="K2-RoundFunc-188" result="pass"/><test-case name="K2-RoundFunc-189" result="pass"/><test-case name="K2-RoundFunc-190" result="pass"/><test-case name="fn-round-half-to-evenint1args-1" result="pass"/><test-case name="fn-round-half-to-evenint1args-2" result="pass"/><test-case name="fn-round-half-to-evenint1args-3" result="pass"/><test-case name="fn-round-half-to-evenintg1args-1" result="pass"/><test-case name="fn-round-half-to-evenintg1args-2" result="pass"/><test-case name="fn-round-half-to-evenintg1args-3" result="pass"/><test-case name="fn-round-half-to-evendec1args-1" result="fail"/><test-case name="fn-round-half-to-evendec1args-2" result="fail"/><test-case name="fn-round-half-to-evendec1args-3" result="fail"/><test-case name="fn-round-half-to-evendbl1args-1" result="pass"/><test-case name="fn-round-half-to-evendbl1args-2" result="pass"/><test-case name="fn-round-half-to-evendbl1args-3" result="pass"/><test-case name="fn-round-half-to-evenflt1args-1" result="pass"/><test-case name="fn-round-half-to-evenflt1args-2" result="pass"/><test-case name="fn-round-half-to-evenflt1args-3" result="pass"/><test-case name="fn-round-half-to-evenlng1args-1" result="pass"/><test-case name="fn-round-half-to-evenlng1args-2" result="pass"/><test-case name="fn-round-half-to-evenlng1args-3" result="pass"/><test-case name="fn-round-half-to-evenusht1args-1" result="pass"/><test-case name="fn-round-half-to-evenusht1args-2" result="pass"/><test-case name="fn-round-half-to-evenusht1args-3" result="pass"/><test-case name="fn-round-half-to-evennint1args-1" result="pass"/><test-case name="fn-round-half-to-evennint1args-2" result="pass"/><test-case name="fn-round-half-to-evennint1args-3" result="pass"/><test-case name="fn-round-half-to-evenpint1args-1" result="pass"/><test-case name="fn-round-half-to-evenpint1args-2" result="pass"/><test-case name="fn-round-half-to-evenpint1args-3" result="pass"/><test-case name="fn-round-half-to-evenulng1args-1" result="pass"/><test-case name="fn-round-half-to-evenulng1args-2" result="pass"/><test-case name="fn-round-half-to-evenulng1args-3" result="pass"/><test-case name="fn-round-half-to-evennpi1args-1" result="pass"/><test-case name="fn-round-half-to-evennpi1args-2" result="pass"/><test-case name="fn-round-half-to-evennpi1args-3" result="pass"/><test-case name="fn-round-half-to-evennni1args-1" result="pass"/><test-case name="fn-round-half-to-evennni1args-2" result="pass"/><test-case name="fn-round-half-to-evennni1args-3" result="pass"/><test-case name="fn-round-half-to-evensht1args-1" result="pass"/><test-case name="fn-round-half-to-evensht1args-2" result="pass"/><test-case name="fn-round-half-to-evensht1args-3" result="pass"/><test-case name="K-RoundEvenFunc-1" result="pass"/><test-case name="K-RoundEvenFunc-2" result="pass"/><test-case name="K-RoundEvenFunc-3" result="pass"/><test-case name="K-RoundEvenFunc-4" result="pass"/><test-case name="K-RoundEvenFunc-5" result="pass"/><test-case name="K2-RoundEvenFunc-1" result="pass"/><test-case name="K2-RoundEvenFunc-2" result="fail"/><test-case name="K2-RoundEvenFunc-3" result="fail"/><test-case name="K2-RoundEvenFunc-4" result="fail"/><test-case name="K2-RoundEvenFunc-5" result="fail"/><test-case name="K2-RoundEvenFunc-6" result="pass"/><test-case name="K2-RoundEvenFunc-7" result="pass"/><test-case name="K2-RoundEvenFunc-8" result="fail"/><test-case name="K2-RoundEvenFunc-9" result="pass"/><test-case name="K2-RoundEvenFunc-10" result="pass"/><test-case name="K2-RoundEvenFunc-11" result="pass"/><test-case name="K2-RoundEvenFunc-12" result="pass"/><test-case name="K2-RoundEvenFunc-13" result="pass"/><test-case name="K2-RoundEvenFunc-14" result="pass"/><test-case name="K2-RoundEvenFunc-15" result="pass"/><test-case name="K2-RoundEvenFunc-16" result="pass"/><test-case name="K2-RoundEvenFunc-17" result="pass"/><test-case name="K2-RoundEvenFunc-18" result="pass"/><test-case name="K2-RoundEvenFunc-19" result="pass"/><test-case name="K2-RoundEvenFunc-20" result="pass"/><test-case name="K2-RoundEvenFunc-21" result="pass"/><test-case name="K2-RoundEvenFunc-22" result="pass"/><test-case name="K2-RoundEvenFunc-23" result="pass"/><test-case name="K2-RoundEvenFunc-24" result="pass"/><test-case name="K2-RoundEvenFunc-25" result="pass"/><test-case name="K2-RoundEvenFunc-26" result="pass"/><test-case name="K2-RoundEvenFunc-27" result="pass"/><test-case name="K2-RoundEvenFunc-28" result="pass"/><test-case name="fn-codepoints-to-string1args-1" result="pass"/><test-case name="fn-codepoints-to-string1args-2" result="pass"/><test-case name="fn-codepoints-to-string1args-3" result="pass"/><test-case name="fn-codepoints-to-string1args-4" result="pass"/><test-case name="fn-codepoints-to-string-1" result="pass"/><test-case name="fn-codepoints-to-string-2" result="pass"/><test-case name="fn-codepoints-to-string-3" result="pass"/><test-case name="fn-codepoints-to-string-4" result="pass"/><test-case name="fn-codepoints-to-string-5" result="pass"/><test-case name="fn-codepoints-to-string-6" result="pass"/><test-case name="fn-codepoints-to-string-7" result="pass"/><test-case name="fn-codepoints-to-string-8" result="pass"/><test-case name="fn-codepoints-to-string-9" result="pass"/><test-case name="fn-codepoints-to-string-10" result="pass"/><test-case name="fn-codepoints-to-string-11" result="pass"/><test-case name="fn-codepoints-to-string-12" result="pass"/><test-case name="fn-codepoints-to-string-13" result="pass"/><test-case name="fn-codepoints-to-string-14" result="pass"/><test-case name="fn-codepoints-to-string-15" result="pass"/><test-case name="fn-codepoints-to-string-16" result="pass"/><test-case name="K-CodepointToStringFunc-1" result="pass"/><test-case name="K-CodepointToStringFunc-2" result="pass"/><test-case name="K-CodepointToStringFunc-3" result="pass"/><test-case name="K-CodepointToStringFunc-4" result="pass"/><test-case name="K-CodepointToStringFunc-5" result="pass"/><test-case name="K-CodepointToStringFunc-6" result="pass"/><test-case name="K-CodepointToStringFunc-7" result="pass"/><test-case name="K-CodepointToStringFunc-8" result="pass"/><test-case name="K-CodepointToStringFunc-9" result="pass"/><test-case name="K-CodepointToStringFunc-10" result="pass"/><test-case name="K-CodepointToStringFunc-11" result="pass"/><test-case name="K-CodepointToStringFunc-12" result="pass"/><test-case name="K-CodepointToStringFunc-13" result="pass"/><test-case name="K-CodepointToStringFunc-14" result="pass"/><test-case name="K-CodepointToStringFunc-15" result="pass"/><test-case name="K-CodepointToStringFunc-16" result="pass"/><test-case name="K-CodepointToStringFunc-17" result="pass"/><test-case name="K-CodepointToStringFunc-18" result="pass"/><test-case name="K-CodepointToStringFunc-19" result="pass"/><test-case name="K-CodepointToStringFunc-20" result="pass"/><test-case name="K-CodepointToStringFunc-21" result="pass"/><test-case name="K-CodepointToStringFunc-22" result="pass"/><test-case name="K-CodepointToStringFunc-23" result="pass"/><test-case name="K-CodepointToStringFunc-24" result="pass"/><test-case name="K-CodepointToStringFunc-25" result="pass"/><test-case name="K-CodepointToStringFunc-26" result="fail"/><test-case name="K-CodepointToStringFunc-27" result="pass"/><test-case name="K-CodepointToStringFunc-28" result="pass"/><test-case name="K-CodepointToStringFunc-29" result="pass"/><test-case name="fn-string-to-codepoints1args-1" result="pass"/><test-case name="fn-string-to-codepoints1args-2" result="pass"/><test-case name="fn-string-to-codepoints1args-3" result="pass"/><test-case name="fn-string-to-codepoints1args-4" result="pass"/><test-case name="fn-string-to-codepoints1args-5" result="pass"/><test-case name="fn-string-to-codepoints1args-6" result="pass"/><test-case name="fn-string-to-codepoints1args-7" result="pass"/><test-case name="fn-string-to-codepoints1args-8" result="pass"/><test-case name="fn-string-to-codepoints-1" result="pass"/><test-case name="fn-string-to-codepoints-2" result="pass"/><test-case name="fn-string-to-codepoints-3" result="pass"/><test-case name="fn-string-to-codepoints-4" result="pass"/><test-case name="fn-string-to-codepoints-5" result="pass"/><test-case name="fn-string-to-codepoints-6" result="pass"/><test-case name="fn-string-to-codepoints-7" result="pass"/><test-case name="fn-string-to-codepoints-8" result="pass"/><test-case name="fn-string-to-codepoints-9" result="pass"/><test-case name="fn-string-to-codepoints-10" result="pass"/><test-case name="fn-string-to-codepoints-11" result="pass"/><test-case name="fn-string-to-codepoints-12" result="pass"/><test-case name="fn-string-to-codepoints-13" result="pass"/><test-case name="fn-string-to-codepoints-14" result="pass"/><test-case name="K-StringToCodepointFunc-1" result="pass"/><test-case name="K-StringToCodepointFunc-2" result="pass"/><test-case name="K-StringToCodepointFunc-3" result="pass"/><test-case name="K-StringToCodepointFunc-4" result="pass"/><test-case name="K-StringToCodepointFunc-5" result="pass"/><test-case name="K-StringToCodepointFunc-6" result="pass"/><test-case name="K-StringToCodepointFunc-7" result="pass"/><test-case name="K-StringToCodepointFunc-8" result="pass"/><test-case name="K-StringToCodepointFunc-9" result="pass"/><test-case name="K-StringToCodepointFunc-10" result="pass"/><test-case name="K-StringToCodepointFunc-11" result="pass"/><test-case name="K-StringToCodepointFunc-12" result="pass"/><test-case name="K-StringToCodepointFunc-13" result="pass"/><test-case name="K-StringToCodepointFunc-14" result="pass"/><test-case name="K-StringToCodepointFunc-15" result="pass"/><test-case name="K-StringToCodepointFunc-16" result="pass"/><test-case name="K-StringToCodepointFunc-17" result="pass"/><test-case name="K-StringToCodepointFunc-18" result="pass"/><test-case name="K-StringToCodepointFunc-19" result="pass"/><test-case name="K-StringToCodepointFunc-20" result="pass"/><test-case name="K-StringToCodepointFunc-21" result="pass"/><test-case name="fn-compare2args-1" result="pass"/><test-case name="fn-compare2args-2" result="pass"/><test-case name="fn-compare2args-3" result="pass"/><test-case name="fn-compare2args-4" result="pass"/><test-case name="fn-compare2args-5" result="pass"/><test-case name="fn-compare-1" result="pass"/><test-case name="fn-compare-2" result="pass"/><test-case name="fn-compare-3" result="pass"/><test-case name="fn-compare-4" result="pass"/><test-case name="fn-compare-5" result="pass"/><test-case name="fn-compare-6" result="pass"/><test-case name="fn-compare-7" result="pass"/><test-case name="fn-compare-8" result="pass"/><test-case name="fn-compare-9" result="pass"/><test-case name="fn-compare-10" result="pass"/><test-case name="fn-compare-11" result="pass"/><test-case name="fn-compare-12" result="pass"/><test-case name="fn-compare-13" result="pass"/><test-case name="fn-compare-14" result="pass"/><test-case name="fn-compare-15" result="pass"/><test-case name="fn-compare-16" result="pass"/><test-case name="fn-compare-17" result="pass"/><test-case name="fn-compare-18" result="pass"/><test-case name="fn-compare-19" result="pass"/><test-case name="fn-compare-20" result="pass"/><test-case name="fn-compare-21" result="pass"/><test-case name="fn-compare-22" result="pass"/><test-case name="K-compareFunc-1" result="pass"/><test-case name="K-compareFunc-2" result="pass"/><test-case name="K-compareFunc-3" result="pass"/><test-case name="K-compareFunc-4" result="pass"/><test-case name="K-compareFunc-5" result="pass"/><test-case name="K-compareFunc-6" result="pass"/><test-case name="K-compareFunc-7" result="pass"/><test-case name="K-compareFunc-8" result="pass"/><test-case name="K-compareFunc-9" result="pass"/><test-case name="K-compareFunc-10" result="pass"/><test-case name="K-compareFunc-11" result="pass"/><test-case name="K-compareFunc-12" result="pass"/><test-case name="K-compareFunc-13" result="pass"/><test-case name="K-compareFunc-14" result="pass"/><test-case name="K-compareFunc-15" result="pass"/><test-case name="fn-codepoint-equal-1" result="pass"/><test-case name="fn-codepoint-equal-2" result="pass"/><test-case name="fn-codepoint-equal-3" result="pass"/><test-case name="fn-codepoint-equal-4" result="pass"/><test-case name="fn-codepoint-equal-5" result="pass"/><test-case name="fn-codepoint-equal-6" result="pass"/><test-case name="fn-codepoint-equal-7" result="pass"/><test-case name="fn-codepoint-equal-8" result="pass"/><test-case name="fn-codepoint-equal-9" result="pass"/><test-case name="fn-codepoint-equal-10" result="pass"/><test-case name="fn-codepoint-equal-11" result="pass"/><test-case name="fn-codepoint-equal-12" result="pass"/><test-case name="fn-codepoint-equal-13" result="pass"/><test-case name="fn-codepoint-equal-14" result="pass"/><test-case name="fn-codepoint-equal-15" result="pass"/><test-case name="fn-codepoint-equal-16" result="pass"/><test-case name="fn-codepoint-equal-17" result="pass"/><test-case name="fn-codepoint-equal-18" result="pass"/><test-case name="fn-codepoint-equal-19" result="pass"/><test-case name="fn-codepoint-equal-20" result="pass"/><test-case name="fn-codepoint-equal-21" result="pass"/><test-case name="K2-CodepointEqual-1" result="pass"/><test-case name="K2-CodepointEqual-2" result="pass"/><test-case name="K2-CodepointEqual-3" result="pass"/><test-case name="K2-CodepointEqual-4" result="pass"/><test-case name="K2-CodepointEqual-5" result="pass"/><test-case name="K2-CodepointEqual-6" result="pass"/><test-case name="K2-CompareFunc-1" result="pass"/><test-case name="K2-CompareFunc-2" result="pass"/><test-case name="K2-CompareFunc-3" result="pass"/><test-case name="K2-CompareFunc-4" result="pass"/><test-case name="K2-CompareFunc-5" result="pass"/><test-case name="K2-CompareFunc-6" result="pass"/><test-case name="K2-CompareFunc-7" result="pass"/><test-case name="K2-CompareFunc-8" result="pass"/><test-case name="K2-CompareFunc-9" result="pass"/><test-case name="fn-concatint2args-1" result="pass"/><test-case name="fn-concatint2args-2" result="pass"/><test-case name="fn-concatint2args-3" result="pass"/><test-case name="fn-concatint2args-4" result="pass"/><test-case name="fn-concatint2args-5" result="pass"/><test-case name="fn-concatintg2args-1" result="pass"/><test-case name="fn-concatintg2args-2" result="pass"/><test-case name="fn-concatintg2args-3" result="pass"/><test-case name="fn-concatintg2args-4" result="pass"/><test-case name="fn-concatintg2args-5" result="pass"/><test-case name="fn-concatdec2args-1" result="fail"/><test-case name="fn-concatdec2args-2" result="fail"/><test-case name="fn-concatdec2args-3" result="fail"/><test-case name="fn-concatdec2args-4" result="fail"/><test-case name="fn-concatdec2args-5" result="fail"/><test-case name="fn-concatdbl2args-1" result="pass"/><test-case name="fn-concatdbl2args-2" result="pass"/><test-case name="fn-concatdbl2args-3" result="pass"/><test-case name="fn-concatdbl2args-4" result="pass"/><test-case name="fn-concatdbl2args-5" result="pass"/><test-case name="fn-concatflt2args-1" result="pass"/><test-case name="fn-concatflt2args-2" result="pass"/><test-case name="fn-concatflt2args-3" result="pass"/><test-case name="fn-concatflt2args-4" result="pass"/><test-case name="fn-concatflt2args-5" result="pass"/><test-case name="fn-concatlng2args-1" result="pass"/><test-case name="fn-concatlng2args-2" result="pass"/><test-case name="fn-concatlng2args-3" result="pass"/><test-case name="fn-concatlng2args-4" result="pass"/><test-case name="fn-concatlng2args-5" result="pass"/><test-case name="fn-concatusht2args-1" result="pass"/><test-case name="fn-concatusht2args-2" result="pass"/><test-case name="fn-concatusht2args-3" result="pass"/><test-case name="fn-concatusht2args-4" result="pass"/><test-case name="fn-concatusht2args-5" result="pass"/><test-case name="fn-concatnint2args-1" result="pass"/><test-case name="fn-concatnint2args-2" result="pass"/><test-case name="fn-concatnint2args-3" result="pass"/><test-case name="fn-concatnint2args-4" result="pass"/><test-case name="fn-concatnint2args-5" result="pass"/><test-case name="fn-concatpint2args-1" result="pass"/><test-case name="fn-concatpint2args-2" result="pass"/><test-case name="fn-concatpint2args-3" result="pass"/><test-case name="fn-concatpint2args-4" result="pass"/><test-case name="fn-concatpint2args-5" result="pass"/><test-case name="fn-concatulng2args-1" result="pass"/><test-case name="fn-concatulng2args-2" result="pass"/><test-case name="fn-concatulng2args-3" result="pass"/><test-case name="fn-concatulng2args-4" result="pass"/><test-case name="fn-concatulng2args-5" result="pass"/><test-case name="fn-concatnpi2args-1" result="pass"/><test-case name="fn-concatnpi2args-2" result="pass"/><test-case name="fn-concatnpi2args-3" result="pass"/><test-case name="fn-concatnpi2args-4" result="pass"/><test-case name="fn-concatnpi2args-5" result="pass"/><test-case name="fn-concatnni2args-1" result="pass"/><test-case name="fn-concatnni2args-2" result="pass"/><test-case name="fn-concatnni2args-3" result="pass"/><test-case name="fn-concatnni2args-4" result="pass"/><test-case name="fn-concatnni2args-5" result="pass"/><test-case name="fn-concatsht2args-1" result="pass"/><test-case name="fn-concatsht2args-2" result="pass"/><test-case name="fn-concatsht2args-3" result="pass"/><test-case name="fn-concatsht2args-4" result="pass"/><test-case name="fn-concatsht2args-5" result="pass"/><test-case name="fn-concat-1" result="pass"/><test-case name="fn-concat-2" result="pass"/><test-case name="fn-concat-3" result="pass"/><test-case name="fn-concat-4" result="pass"/><test-case name="fn-concat-5" result="pass"/><test-case name="fn-concat-6" result="pass"/><test-case name="fn-concat-7" result="pass"/><test-case name="fn-concat-8" result="pass"/><test-case name="fn-concat-9" result="pass"/><test-case name="fn-concat-10" result="pass"/><test-case name="fn-concat-11" result="pass"/><test-case name="fn-concat-12" result="pass"/><test-case name="fn-concat-13" result="pass"/><test-case name="fn-concat-14" result="pass"/><test-case name="fn-concat-15" result="pass"/><test-case name="fn-concat-16" result="pass"/><test-case name="fn-concat-17" result="pass"/><test-case name="K-ConcatFunc-1" result="pass"/><test-case name="K-ConcatFunc-2" result="pass"/><test-case name="K-ConcatFunc-3" result="pass"/><test-case name="K-ConcatFunc-4" result="pass"/><test-case name="K-ConcatFunc-5" result="pass"/><test-case name="K-ConcatFunc-6" result="pass"/><test-case name="K-ConcatFunc-7" result="pass"/><test-case name="K-ConcatFunc-8" result="pass"/><test-case name="K-ConcatFunc-9" result="pass"/><test-case name="K2-ConcatFunc-1" result="pass"/><test-case name="K2-ConcatFunc-2" result="pass"/><test-case name="K2-ConcatFunc-3" result="pass"/><test-case name="fn-string-join2args-1" result="pass"/><test-case name="fn-string-join2args-2" result="pass"/><test-case name="fn-string-join2args-3" result="pass"/><test-case name="fn-string-join2args-4" result="pass"/><test-case name="fn-string-join2args-5" result="pass"/><test-case name="fn-string-join-1" result="pass"/><test-case name="fn-string-join-2" result="pass"/><test-case name="fn-string-join-3" result="pass"/><test-case name="fn-string-join-4" result="pass"/><test-case name="fn-string-join-5" result="pass"/><test-case name="fn-string-join-6" result="pass"/><test-case name="fn-string-join-7" result="pass"/><test-case name="fn-string-join-8" result="pass"/><test-case name="fn-string-join-9" result="pass"/><test-case name="fn-string-join-10" result="pass"/><test-case name="fn-string-join-11" result="pass"/><test-case name="fn-string-join-12" result="pass"/><test-case name="fn-string-join-13" result="pass"/><test-case name="fn-string-join-14" result="pass"/><test-case name="fn-string-join-15" result="pass"/><test-case name="fn-string-join-16" result="pass"/><test-case name="fn-string-join-17" result="pass"/><test-case name="fn-string-join-18" result="pass"/><test-case name="fn-string-join-19" result="pass"/><test-case name="fn-string-join-20" result="pass"/><test-case name="fn-string-join-21" result="pass"/><test-case name="K-StringJoinFunc-1" result="pass"/><test-case name="K-StringJoinFunc-2" result="pass"/><test-case name="K-StringJoinFunc-3" result="pass"/><test-case name="K-StringJoinFunc-4" result="pass"/><test-case name="K-StringJoinFunc-5" result="pass"/><test-case name="K-StringJoinFunc-6" result="pass"/><test-case name="K-StringJoinFunc-7" result="pass"/><test-case name="fn-substring-1" result="pass"/><test-case name="fn-substring-2" result="pass"/><test-case name="fn-substring-3" result="pass"/><test-case name="fn-substring-4" result="pass"/><test-case name="fn-substring-5" result="pass"/><test-case name="fn-substring-6" result="pass"/><test-case name="fn-substring-7" result="pass"/><test-case name="fn-substring-8" result="pass"/><test-case name="fn-substring-9" result="pass"/><test-case name="fn-substring-10" result="pass"/><test-case name="fn-substring-11" result="pass"/><test-case name="fn-substring-12" result="pass"/><test-case name="fn-substring-13" result="pass"/><test-case name="fn-substring-14" result="pass"/><test-case name="fn-substring-15" result="pass"/><test-case name="fn-substring-16" result="pass"/><test-case name="fn-substring-17" result="pass"/><test-case name="fn-substring-18" result="pass"/><test-case name="fn-substring-19" result="pass"/><test-case name="fn-substring-20" result="pass"/><test-case name="fn-substring-21" result="pass"/><test-case name="K-SubstringFunc-1" result="pass"/><test-case name="K-SubstringFunc-2" result="pass"/><test-case name="K-SubstringFunc-3" result="pass"/><test-case name="K-SubstringFunc-4" result="pass"/><test-case name="K-SubstringFunc-5" result="pass"/><test-case name="K-SubstringFunc-6" result="pass"/><test-case name="K-SubstringFunc-7" result="pass"/><test-case name="K-SubstringFunc-8" result="pass"/><test-case name="K-SubstringFunc-9" result="pass"/><test-case name="K-SubstringFunc-10" result="pass"/><test-case name="K-SubstringFunc-11" result="pass"/><test-case name="K-SubstringFunc-12" result="pass"/><test-case name="K-SubstringFunc-13" result="pass"/><test-case name="K-SubstringFunc-14" result="pass"/><test-case name="K-SubstringFunc-15" result="pass"/><test-case name="fn-string-length1args-1" result="pass"/><test-case name="fn-string-length1args-2" result="pass"/><test-case name="fn-string-length1args-3" result="pass"/><test-case name="fn-string-length-1" result="pass"/><test-case name="fn-string-length-2" result="pass"/><test-case name="fn-string-length-3" result="pass"/><test-case name="fn-string-length-4" result="pass"/><test-case name="fn-string-length-5" result="pass"/><test-case name="fn-string-length-6" result="pass"/><test-case name="fn-string-length-7" result="pass"/><test-case name="fn-string-length-8" result="pass"/><test-case name="fn-string-length-9" result="pass"/><test-case name="fn-string-length-10" result="pass"/><test-case name="fn-string-length-11" result="pass"/><test-case name="fn-string-length-12" result="pass"/><test-case name="fn-string-length-13" result="pass"/><test-case name="fn-string-length-14" result="pass"/><test-case name="fn-string-length-15" result="pass"/><test-case name="fn-string-length-16" result="pass"/><test-case name="fn-string-length-17" result="pass"/><test-case name="fn-string-length-18" result="pass"/><test-case name="K-StringLengthFunc-1" result="pass"/><test-case name="K-StringLengthFunc-2" result="pass"/><test-case name="K-StringLengthFunc-3" result="pass"/><test-case name="K-StringLengthFunc-4" result="pass"/><test-case name="K-StringLengthFunc-5" result="pass"/><test-case name="K-StringLengthFunc-6" result="pass"/><test-case name="K-StringLengthFunc-7" result="pass"/><test-case name="K-StringLengthFunc-8" result="pass"/><test-case name="fn-normalize-space1args-1" result="pass"/><test-case name="fn-normalize-space1args-2" result="pass"/><test-case name="fn-normalize-space1args-3" result="pass"/><test-case name="fn-normalize-space1args-4" result="pass"/><test-case name="fn-normalize-space0args-1" result="pass"/><test-case name="fn-normalize-space-1" result="pass"/><test-case name="fn-normalize-space-2" result="pass"/><test-case name="fn-normalize-space-3" result="pass"/><test-case name="fn-normalize-space-4" result="pass"/><test-case name="fn-normalize-space-5" result="pass"/><test-case name="fn-normalize-space-6" result="pass"/><test-case name="fn-normalize-space-7" result="pass"/><test-case name="fn-normalize-space-8" result="pass"/><test-case name="fn-normalize-space-9" result="pass"/><test-case name="fn-normalize-space-10" result="pass"/><test-case name="fn-normalize-space-11" result="pass"/><test-case name="fn-normalize-space-12" result="pass"/><test-case name="fn-normalize-space-13" result="pass"/><test-case name="fn-normalize-space-14" result="pass"/><test-case name="fn-normalize-space-15" result="pass"/><test-case name="fn-normalize-space-16" result="pass"/><test-case name="fn-normalize-space-17" result="pass"/><test-case name="fn-normalize-space-18" result="pass"/><test-case name="fn-normalize-space-19" result="pass"/><test-case name="fn-normalize-space-20" result="pass"/><test-case name="fn-normalize-space-21" result="pass"/><test-case name="K-NormalizeSpaceFunc-1" result="pass"/><test-case name="K-NormalizeSpaceFunc-2" result="pass"/><test-case name="K-NormalizeSpaceFunc-3" result="pass"/><test-case name="K-NormalizeSpaceFunc-4" result="pass"/><test-case name="K-NormalizeSpaceFunc-5" result="pass"/><test-case name="K-NormalizeSpaceFunc-6" result="pass"/><test-case name="K-NormalizeSpaceFunc-7" result="pass"/><test-case name="K-NormalizeSpaceFunc-8" result="pass"/><test-case name="K-NormalizeSpaceFunc-9" result="pass"/><test-case name="fn-normalize-unicode1args-1" result="pass"/><test-case name="fn-normalize-unicode1args-2" result="pass"/><test-case name="fn-normalize-unicode1args-3" result="pass"/><test-case name="fn-normalize-unicode1args-4" result="pass"/><test-case name="fn-normalize-unicode1args-5" result="pass"/><test-case name="fn-normalize-unicode1args-6" result="pass"/><test-case name="fn-normalize-unicode1args-7" result="pass"/><test-case name="fn-normalize-unicode1args-8" result="pass"/><test-case name="fn-normalize-unicode2args-1" result="pass"/><test-case name="fn-normalize-unicode2args-2" result="pass"/><test-case name="fn-normalize-unicode2args-3" result="pass"/><test-case name="fn-normalize-unicode2args-4" result="pass"/><test-case name="fn-normalize-unicode2args-5" result="pass"/><test-case name="fn-normalize-unicode2args-6" result="pass"/><test-case name="fn-normalize-unicode-1" result="pass"/><test-case name="fn-normalize-unicode-2" result="pass"/><test-case name="fn-normalize-unicode-3" result="pass"/><test-case name="fn-normalize-unicode-4" result="pass"/><test-case name="fn-normalize-unicode-5" result="pass"/><test-case name="fn-normalize-unicode-6" result="pass"/><test-case name="fn-normalize-unicode-7" result="pass"/><test-case name="K-NormalizeUnicodeFunc-1" result="pass"/><test-case name="K-NormalizeUnicodeFunc-2" result="pass"/><test-case name="K-NormalizeUnicodeFunc-3" result="pass"/><test-case name="K-NormalizeUnicodeFunc-4" result="pass"/><test-case name="K-NormalizeUnicodeFunc-5" result="pass"/><test-case name="K-NormalizeUnicodeFunc-6" result="pass"/><test-case name="K-NormalizeUnicodeFunc-7" result="pass"/><test-case name="K-NormalizeUnicodeFunc-8" result="pass"/><test-case name="K-NormalizeUnicodeFunc-9" result="pass"/><test-case name="K-NormalizeUnicodeFunc-10" result="pass"/><test-case name="K-NormalizeUnicodeFunc-11" result="pass"/><test-case name="K-NormalizeUnicodeFunc-12" result="pass"/><test-case name="K-NormalizeUnicodeFunc-13" result="pass"/><test-case name="fn-upper-case1args-1" result="pass"/><test-case name="fn-upper-case1args-2" result="pass"/><test-case name="fn-upper-case1args-3" result="pass"/><test-case name="fn-upper-case-1" result="pass"/><test-case name="fn-upper-case-2" result="pass"/><test-case name="fn-upper-case-3" result="pass"/><test-case name="fn-upper-case-4" result="pass"/><test-case name="fn-upper-case-5" result="pass"/><test-case name="fn-upper-case-6" result="pass"/><test-case name="fn-upper-case-7" result="pass"/><test-case name="fn-upper-case-8" result="pass"/><test-case name="fn-upper-case-9" result="pass"/><test-case name="fn-upper-case-10" result="pass"/><test-case name="fn-upper-case-11" result="pass"/><test-case name="fn-upper-case-12" result="pass"/><test-case name="fn-upper-case-13" result="pass"/><test-case name="fn-upper-case-14" result="pass"/><test-case name="fn-upper-case-15" result="pass"/><test-case name="fn-upper-case-16" result="pass"/><test-case name="fn-upper-case-17" result="pass"/><test-case name="K-UpperCaseFunc-1" result="pass"/><test-case name="K-UpperCaseFunc-2" result="pass"/><test-case name="K-UpperCaseFunc-3" result="pass"/><test-case name="K-UpperCaseFunc-4" result="pass"/><test-case name="fn-lower-case1args-1" result="pass"/><test-case name="fn-lower-case1args-2" result="pass"/><test-case name="fn-lower-case1args-3" result="pass"/><test-case name="fn-lower-case-1" result="pass"/><test-case name="fn-lower-case-2" result="pass"/><test-case name="fn-lower-case-3" result="pass"/><test-case name="fn-lower-case-4" result="pass"/><test-case name="fn-lower-case-5" result="pass"/><test-case name="fn-lower-case-6" result="pass"/><test-case name="fn-lower-case-7" result="pass"/><test-case name="fn-lower-case-8" result="pass"/><test-case name="fn-lower-case-9" result="pass"/><test-case name="fn-lower-case-10" result="pass"/><test-case name="fn-lower-case-11" result="pass"/><test-case name="fn-lower-case-12" result="pass"/><test-case name="fn-lower-case-13" result="pass"/><test-case name="fn-lower-case-14" result="pass"/><test-case name="fn-lower-case-15" result="pass"/><test-case name="fn-lower-case-16" result="pass"/><test-case name="fn-lower-case-17" result="pass"/><test-case name="K-LowerCaseFunc-1" result="pass"/><test-case name="K-LowerCaseFunc-2" result="pass"/><test-case name="K-LowerCaseFunc-3" result="pass"/><test-case name="K-LowerCaseFunc-4" result="pass"/><test-case name="fn-translate3args-1" result="pass"/><test-case name="fn-translate3args-2" result="pass"/><test-case name="fn-translate3args-3" result="pass"/><test-case name="fn-translate3args-4" result="pass"/><test-case name="fn-translate3args-5" result="pass"/><test-case name="fn-translate3args-6" result="pass"/><test-case name="fn-translate3args-7" result="pass"/><test-case name="fn-translate3args-8" result="pass"/><test-case name="fn-translate-1" result="pass"/><test-case name="fn-translate-2" result="pass"/><test-case name="fn-translate-3" result="pass"/><test-case name="fn-translate-4" result="pass"/><test-case name="fn-translate-5" result="pass"/><test-case name="fn-translate-6" result="pass"/><test-case name="fn-translate-7" result="pass"/><test-case name="fn-translate-8" result="pass"/><test-case name="fn-translate-9" result="pass"/><test-case name="fn-translate-10" result="pass"/><test-case name="fn-translate-11" result="pass"/><test-case name="fn-translate-12" result="pass"/><test-case name="fn-translate-13" result="pass"/><test-case name="fn-translate-14" result="pass"/><test-case name="fn-translate-15" result="pass"/><test-case name="fn-translate-16" result="pass"/><test-case name="K-TranslateFunc-1" result="pass"/><test-case name="K-TranslateFunc-2" result="pass"/><test-case name="K-TranslateFunc-3" result="pass"/><test-case name="K-TranslateFunc-4" result="pass"/><test-case name="K-TranslateFunc-5" result="pass"/><test-case name="K-TranslateFunc-6" result="pass"/><test-case name="K-TranslateFunc-7" result="pass"/><test-case name="K-TranslateFunc-8" result="pass"/><test-case name="K-TranslateFunc-9" result="pass"/><test-case name="K-TranslateFunc-10" result="pass"/><test-case name="K2-TranslateFunc-1" result="pass"/><test-case name="K2-TranslateFunc-2" result="pass"/><test-case name="surrogates01" result="pass"/><test-case name="surrogates02" result="pass"/><test-case name="surrogates03" result="fail"/><test-case name="surrogates04" result="pass"/><test-case name="surrogates05" result="pass"/><test-case name="surrogates06" result="fail"/><test-case name="surrogates07" result="fail"/><test-case name="surrogates08" result="fail"/><test-case name="surrogates09" result="pass"/><test-case name="surrogates10" result="fail"/><test-case name="surrogates11" result="pass"/><test-case name="surrogates12" result="pass"/><test-case name="surrogates13" result="pass"/><test-case name="surrogates14" result="fail"/><test-case name="surrogates15" result="pass"/><test-case name="fn-encode-for-uri1args-1" result="pass"/><test-case name="fn-encode-for-uri1args-2" result="pass"/><test-case name="fn-encode-for-uri1args-3" result="pass"/><test-case name="fn-encode-for-uri1args-4" result="pass"/><test-case name="fn-encode-for-uri1args-5" result="pass"/><test-case name="fn-encode-for-uri1args-6" result="pass"/><test-case name="fn-encode-for-uri1args-7" result="pass"/><test-case name="fn-encode-for-uri-1" result="pass"/><test-case name="fn-encode-for-uri-2" result="pass"/><test-case name="fn-encode-for-uri-3" result="pass"/><test-case name="fn-encode-for-uri-4" result="pass"/><test-case name="fn-encode-for-uri-5" result="pass"/><test-case name="fn-encode-for-uri-6" result="pass"/><test-case name="fn-encode-for-uri-7" result="pass"/><test-case name="fn-encode-for-uri-8" result="pass"/><test-case name="fn-encode-for-uri-9" result="pass"/><test-case name="fn-encode-for-uri-10" result="pass"/><test-case name="fn-encode-for-uri-11" result="pass"/><test-case name="fn-encode-for-uri-12" result="pass"/><test-case name="fn-encode-for-uri-13" result="pass"/><test-case name="fn-encode-for-uri-14" result="pass"/><test-case name="fn-encode-for-uri-15" result="pass"/><test-case name="fn-encode-for-uri-16" result="pass"/><test-case name="K-EncodeURIfunc-1" result="pass"/><test-case name="K-EncodeURIfunc-2" result="pass"/><test-case name="K-EncodeURIfunc-3" result="pass"/><test-case name="K-EncodeURIfunc-4" result="pass"/><test-case name="K-EncodeURIfunc-5" result="pass"/><test-case name="K-EncodeURIfunc-6" result="pass"/><test-case name="fn-iri-to-uri1args-1" result="pass"/><test-case name="fn-iri-to-uri1args-2" result="pass"/><test-case name="fn-iri-to-uri1args-3" result="pass"/><test-case name="fn-iri-to-uri1args-4" result="pass"/><test-case name="fn-iri-to-uri1args-5" result="pass"/><test-case name="fn-iri-to-uri1args-6" result="pass"/><test-case name="fn-iri-to-uri-1" result="pass"/><test-case name="fn-iri-to-uri-2" result="pass"/><test-case name="fn-iri-to-uri-3" result="pass"/><test-case name="fn-iri-to-uri-4" result="pass"/><test-case name="fn-iri-to-uri-5" result="pass"/><test-case name="fn-iri-to-uri-6" result="pass"/><test-case name="fn-iri-to-uri-7" result="pass"/><test-case name="fn-iri-to-uri-8" result="pass"/><test-case name="fn-iri-to-uri-9" result="pass"/><test-case name="fn-iri-to-uri-10" result="pass"/><test-case name="fn-iri-to-uri-11" result="pass"/><test-case name="fn-iri-to-uri-12" result="pass"/><test-case name="fn-iri-to-uri-13" result="pass"/><test-case name="fn-iri-to-uri-14" result="pass"/><test-case name="fn-iri-to-uri-15" result="pass"/><test-case name="fn-iri-to-uri-16" result="pass"/><test-case name="fn-iri-to-uri-17" result="pass"/><test-case name="fn-iri-to-uri-18" result="pass"/><test-case name="fn-iri-to-uri-19" result="pass"/><test-case name="fn-iri-to-uri-20" result="pass"/><test-case name="fn-iri-to-uri-21" result="pass"/><test-case name="fn-iri-to-uri-22" result="pass"/><test-case name="fn-iri-to-uri-23" result="pass"/><test-case name="fn-iri-to-uri-24" result="pass"/><test-case name="fn-iri-to-uri-25" result="pass"/><test-case name="fn-iri-to-uri-26" result="pass"/><test-case name="K-IRIToURIfunc-1" result="pass"/><test-case name="K-IRIToURIfunc-2" result="pass"/><test-case name="K-IRIToURIfunc-3" result="pass"/><test-case name="K-IRIToURIfunc-4" result="pass"/><test-case name="K2-IRIToURIfunc-1" result="pass"/><test-case name="K2-IRIToURIfunc-2" result="pass"/><test-case name="K2-IRIToURIfunc-3" result="pass"/><test-case name="K2-IRIToURIfunc-4" result="pass"/><test-case name="K2-IRIToURIfunc-5" result="pass"/><test-case name="K2-IRIToURIfunc-6" result="pass"/><test-case name="K2-IRIToURIfunc-7" result="pass"/><test-case name="K2-IRIToURIfunc-8" result="pass"/><test-case name="K2-IRIToURIfunc-9" result="pass"/><test-case name="K2-IRIToURIfunc-10" result="pass"/><test-case name="fn-escape-html-uri1args-1" result="pass"/><test-case name="fn-escape-html-uri1args-2" result="pass"/><test-case name="fn-escape-html-uri1args-3" result="pass"/><test-case name="fn-escape-html-uri1args-4" result="pass"/><test-case name="fn-escape-html-uri1args-5" result="pass"/><test-case name="fn-escape-html-uri1args-6" result="pass"/><test-case name="fn-escape-html-uri-1" result="pass"/><test-case name="fn-escape-html-uri-2" result="pass"/><test-case name="fn-escape-html-uri-3" result="pass"/><test-case name="fn-escape-html-uri-4" result="pass"/><test-case name="fn-escape-html-uri-5" result="pass"/><test-case name="fn-escape-html-uri-6" result="pass"/><test-case name="fn-escape-html-uri-7" result="pass"/><test-case name="fn-escape-html-uri-8" result="pass"/><test-case name="fn-escape-html-uri-9" result="pass"/><test-case name="fn-escape-html-uri-10" result="pass"/><test-case name="fn-escape-html-uri-11" result="pass"/><test-case name="fn-escape-html-uri-12" result="pass"/><test-case name="fn-escape-html-uri-13" result="pass"/><test-case name="fn-escape-html-uri-14" result="pass"/><test-case name="fn-escape-html-uri-15" result="pass"/><test-case name="fn-escape-html-uri-16" result="pass"/><test-case name="fn-escape-html-uri-17" result="pass"/><test-case name="fn-escape-html-uri-18" result="pass"/><test-case name="fn-escape-html-uri-19" result="pass"/><test-case name="fn-escape-html-uri-20" result="pass"/><test-case name="fn-escape-html-uri-21" result="pass"/><test-case name="K-EscapeHTMLURIFunc-1" result="pass"/><test-case name="K-EscapeHTMLURIFunc-2" result="pass"/><test-case name="K-EscapeHTMLURIFunc-3" result="pass"/><test-case name="K-EscapeHTMLURIFunc-4" result="pass"/><test-case name="K-EscapeHTMLURIFunc-5" result="pass"/><test-case name="K-EscapeHTMLURIFunc-6" result="pass"/><test-case name="fn-contains2args-1" result="pass"/><test-case name="fn-contains2args-2" result="pass"/><test-case name="fn-contains2args-3" result="pass"/><test-case name="fn-contains2args-4" result="pass"/><test-case name="fn-contains2args-5" result="pass"/><test-case name="fn-contains-1" result="pass"/><test-case name="fn-contains-2" result="pass"/><test-case name="fn-contains-3" result="pass"/><test-case name="fn-contains-4" result="pass"/><test-case name="fn-contains-5" result="pass"/><test-case name="fn-contains-6" result="pass"/><test-case name="fn-contains-7" result="pass"/><test-case name="fn-contains-8" result="pass"/><test-case name="fn-contains-9" result="pass"/><test-case name="fn-contains-10" result="pass"/><test-case name="fn-contains-11" result="pass"/><test-case name="fn-contains-12" result="pass"/><test-case name="fn-contains-13" result="pass"/><test-case name="fn-contains-14" result="pass"/><test-case name="fn-contains-15" result="pass"/><test-case name="fn-contains-16" result="pass"/><test-case name="K-ContainsFunc-1" result="pass"/><test-case name="K-ContainsFunc-2" result="pass"/><test-case name="K-ContainsFunc-3" result="pass"/><test-case name="K-ContainsFunc-4" result="pass"/><test-case name="K-ContainsFunc-5" result="pass"/><test-case name="K-ContainsFunc-6" result="pass"/><test-case name="K-ContainsFunc-7" result="pass"/><test-case name="K-ContainsFunc-8" result="pass"/><test-case name="K-ContainsFunc-9" result="pass"/><test-case name="K-ContainsFunc-10" result="pass"/><test-case name="K-ContainsFunc-11" result="pass"/><test-case name="K2-ContainsFunc-1" result="pass"/><test-case name="K2-ContainsFunc-2" result="pass"/><test-case name="K2-ContainsFunc-3" result="pass"/><test-case name="K2-ContainsFunc-4" result="pass"/><test-case name="K2-ContainsFunc-5" result="pass"/><test-case name="K2-ContainsFunc-6" result="pass"/><test-case name="fn-starts-with2args-1" result="pass"/><test-case name="fn-starts-with2args-2" result="pass"/><test-case name="fn-starts-with2args-3" result="pass"/><test-case name="fn-starts-with2args-4" result="pass"/><test-case name="fn-starts-with2args-5" result="pass"/><test-case name="fn-starts-with-1" result="pass"/><test-case name="fn-starts-with-2" result="pass"/><test-case name="fn-starts-with-3" result="pass"/><test-case name="fn-starts-with-4" result="pass"/><test-case name="fn-starts-with-5" result="pass"/><test-case name="fn-starts-with-6" result="pass"/><test-case name="fn-starts-with-7" result="pass"/><test-case name="fn-starts-with-8" result="pass"/><test-case name="fn-starts-with-9" result="pass"/><test-case name="fn-starts-with-10" result="pass"/><test-case name="fn-starts-with-11" result="pass"/><test-case name="fn-starts-with-12" result="pass"/><test-case name="fn-starts-with-13" result="pass"/><test-case name="fn-starts-with-14" result="pass"/><test-case name="fn-starts-with-15" result="pass"/><test-case name="fn-starts-with-16" result="pass"/><test-case name="K-StartsWithFunc-1" result="pass"/><test-case name="K-StartsWithFunc-2" result="pass"/><test-case name="K-StartsWithFunc-3" result="pass"/><test-case name="K-StartsWithFunc-4" result="pass"/><test-case name="K-StartsWithFunc-5" result="pass"/><test-case name="K-StartsWithFunc-6" result="pass"/><test-case name="K-StartsWithFunc-7" result="pass"/><test-case name="K-StartsWithFunc-8" result="pass"/><test-case name="K-StartsWithFunc-9" result="pass"/><test-case name="K-StartsWithFunc-10" result="pass"/><test-case name="K-StartsWithFunc-11" result="pass"/><test-case name="K2-StartsWithFunc-1" result="pass"/><test-case name="K2-StartsWithFunc-2" result="pass"/><test-case name="K2-StartsWithFunc-3" result="pass"/><test-case name="K2-StartsWithFunc-4" result="pass"/><test-case name="K2-StartsWithFunc-5" result="pass"/><test-case name="K2-StartsWithFunc-6" result="pass"/><test-case name="fn-ends-with2args-1" result="pass"/><test-case name="fn-ends-with2args-2" result="pass"/><test-case name="fn-ends-with2args-3" result="pass"/><test-case name="fn-ends-with2args-4" result="pass"/><test-case name="fn-ends-with2args-5" result="pass"/><test-case name="fn-ends-with-1" result="pass"/><test-case name="fn-ends-with-2" result="pass"/><test-case name="fn-ends-with-3" result="pass"/><test-case name="fn-ends-with-4" result="pass"/><test-case name="fn-ends-with-5" result="pass"/><test-case name="fn-ends-with-6" result="pass"/><test-case name="fn-ends-with-7" result="pass"/><test-case name="fn-ends-with-8" result="pass"/><test-case name="fn-ends-with-9" result="pass"/><test-case name="fn-ends-with-10" result="pass"/><test-case name="fn-ends-with-11" result="pass"/><test-case name="fn-ends-with-12" result="pass"/><test-case name="fn-ends-with-13" result="pass"/><test-case name="fn-ends-with-14" result="pass"/><test-case name="fn-ends-with-15" result="pass"/><test-case name="fn-ends-with-16" result="pass"/><test-case name="K-EndsWithFunc-1" result="pass"/><test-case name="K-EndsWithFunc-2" result="pass"/><test-case name="K-EndsWithFunc-3" result="pass"/><test-case name="K-EndsWithFunc-4" result="pass"/><test-case name="K-EndsWithFunc-5" result="pass"/><test-case name="K-EndsWithFunc-6" result="pass"/><test-case name="K-EndsWithFunc-7" result="pass"/><test-case name="K-EndsWithFunc-8" result="pass"/><test-case name="K-EndsWithFunc-9" result="pass"/><test-case name="K-EndsWithFunc-10" result="pass"/><test-case name="K2-EndsWithFunc-1" result="pass"/><test-case name="K2-EndsWithFunc-2" result="pass"/><test-case name="K2-EndsWithFunc-3" result="pass"/><test-case name="K2-EndsWithFunc-4" result="pass"/><test-case name="K2-EndsWithFunc-5" result="pass"/><test-case name="K2-EndsWithFunc-6" result="pass"/><test-case name="fn-substring-before-1" result="pass"/><test-case name="fn-substring-before-2" result="pass"/><test-case name="fn-substring-before-3" result="pass"/><test-case name="fn-substring-before-4" result="pass"/><test-case name="fn-substring-before-5" result="pass"/><test-case name="fn-substring-before-6" result="pass"/><test-case name="fn-substring-before-7" result="pass"/><test-case name="fn-substring-before-8" result="pass"/><test-case name="fn-substring-before-9" result="pass"/><test-case name="fn-substring-before-10" result="pass"/><test-case name="fn-substring-before-11" result="pass"/><test-case name="fn-substring-before-12" result="pass"/><test-case name="fn-substring-before-13" result="pass"/><test-case name="fn-substring-before-14" result="pass"/><test-case name="fn-substring-before-15" result="pass"/><test-case name="fn-substring-before-16" result="pass"/><test-case name="fn-substring-before-17" result="pass"/><test-case name="fn-substring-before-18" result="pass"/><test-case name="fn-substring-before-19" result="pass"/><test-case name="fn-substring-before-20" result="pass"/><test-case name="fn-substring-before-21" result="pass"/><test-case name="K-SubstringBeforeFunc-1" result="pass"/><test-case name="K-SubstringBeforeFunc-2" result="pass"/><test-case name="K-SubstringBeforeFunc-3" result="pass"/><test-case name="K-SubstringBeforeFunc-4" result="pass"/><test-case name="K-SubstringBeforeFunc-5" result="pass"/><test-case name="K-SubstringBeforeFunc-6" result="pass"/><test-case name="K-SubstringBeforeFunc-7" result="pass"/><test-case name="K-SubstringBeforeFunc-8" result="pass"/><test-case name="K-SubstringBeforeFunc-9" result="pass"/><test-case name="K-SubstringBeforeFunc-10" result="pass"/><test-case name="fn-substring-after-1" result="pass"/><test-case name="fn-substring-after-2" result="pass"/><test-case name="fn-substring-after-3" result="pass"/><test-case name="fn-substring-after-4" result="pass"/><test-case name="fn-substring-after-5" result="pass"/><test-case name="fn-substring-after-6" result="pass"/><test-case name="fn-substring-after-7" result="pass"/><test-case name="fn-substring-after-8" result="pass"/><test-case name="fn-substring-after-9" result="pass"/><test-case name="fn-substring-after-10" result="pass"/><test-case name="fn-substring-after-11" result="pass"/><test-case name="fn-substring-after-12" result="pass"/><test-case name="fn-substring-after-13" result="pass"/><test-case name="fn-substring-after-14" result="pass"/><test-case name="fn-substring-after-15" result="pass"/><test-case name="fn-substring-after-16" result="pass"/><test-case name="fn-substring-after-17" result="pass"/><test-case name="fn-substring-after-18" result="pass"/><test-case name="fn-substring-after-19" result="pass"/><test-case name="fn-substring-after-20" result="pass"/><test-case name="fn-substring-after-21" result="pass"/><test-case name="K-SubstringAfterFunc-1" result="pass"/><test-case name="K-SubstringAfterFunc-2" result="pass"/><test-case name="K-SubstringAfterFunc-3" result="pass"/><test-case name="K-SubstringAfterFunc-4" result="pass"/><test-case name="K-SubstringAfterFunc-5" result="pass"/><test-case name="K-SubstringAfterFunc-6" result="pass"/><test-case name="K-SubstringAfterFunc-7" result="pass"/><test-case name="K-SubstringAfterFunc-8" result="pass"/><test-case name="K-SubstringAfterFunc-9" result="pass"/><test-case name="K-SubstringAfterFunc-10" result="pass"/><test-case name="K-SubstringAfterFunc-11" result="pass"/><test-case name="fn-matches2args-1" result="pass"/><test-case name="fn-matches2args-2" result="pass"/><test-case name="fn-matches2args-3" result="pass"/><test-case name="fn-matches2args-4" result="pass"/><test-case name="fn-matches2args-5" result="pass"/><test-case name="fn-matchesErr-1" result="pass"/><test-case name="fn-matches-1" result="pass"/><test-case name="fn-matches-2" result="pass"/><test-case name="fn-matches-3" result="pass"/><test-case name="fn-matches-4" result="pass"/><test-case name="fn-matches-5" result="pass"/><test-case name="fn-matches-6" result="pass"/><test-case name="fn-matches-7" result="pass"/><test-case name="fn-matches-8" result="pass"/><test-case name="fn-matches-9" result="pass"/><test-case name="fn-matches-10" result="pass"/><test-case name="fn-matches-11" result="pass"/><test-case name="fn-matches-12" result="pass"/><test-case name="fn-matches-13" result="pass"/><test-case name="fn-matches-14" result="pass"/><test-case name="fn-matches-15" result="pass"/><test-case name="fn-matches-16" result="pass"/><test-case name="fn-matches-17" result="pass"/><test-case name="fn-matches-18" result="pass"/><test-case name="fn-matches-19" result="pass"/><test-case name="fn-matches-20" result="pass"/><test-case name="fn-matches-21" result="pass"/><test-case name="fn-matches-22" result="pass"/><test-case name="fn-matches-23" result="pass"/><test-case name="fn-matches-24" result="pass"/><test-case name="fn-matches-25" result="pass"/><test-case name="fn-matches-26" result="pass"/><test-case name="fn-matches-27" result="fail"/><test-case name="fn-matches-28" result="fail"/><test-case name="caselessmatch01" result="pass"/><test-case name="caselessmatch02" result="pass"/><test-case name="caselessmatch03" result="pass"/><test-case name="caselessmatch04" result="fail"/><test-case name="caselessmatch05" result="pass"/><test-case name="caselessmatch06" result="pass"/><test-case name="caselessmatch07" result="pass"/><test-case name="caselessmatch08" result="fail"/><test-case name="caselessmatch09" result="fail"/><test-case name="caselessmatch10" result="fail"/><test-case name="caselessmatch11" result="fail"/><test-case name="caselessmatch12" result="pass"/><test-case name="caselessmatch13" result="pass"/><test-case name="caselessmatch14" result="fail"/><test-case name="caselessmatch15" result="fail"/><test-case name="K-MatchesFunc-1" result="pass"/><test-case name="K-MatchesFunc-2" result="pass"/><test-case name="K-MatchesFunc-3" result="pass"/><test-case name="K-MatchesFunc-4" result="pass"/><test-case name="K-MatchesFunc-5" result="pass"/><test-case name="K-MatchesFunc-6" result="pass"/><test-case name="K2-MatchesFunc-1" result="fail"/><test-case name="K2-MatchesFunc-2" result="fail"/><test-case name="K2-MatchesFunc-3" result="fail"/><test-case name="K2-MatchesFunc-4" result="fail"/><test-case name="K2-MatchesFunc-5" result="fail"/><test-case name="K2-MatchesFunc-6" result="fail"/><test-case name="K2-MatchesFunc-7" result="pass"/><test-case name="K2-MatchesFunc-8" result="fail"/><test-case name="K2-MatchesFunc-9" result="fail"/><test-case name="K2-MatchesFunc-10" result="fail"/><test-case name="K2-MatchesFunc-11" result="pass"/><test-case name="K2-MatchesFunc-12" result="pass"/><test-case name="K2-MatchesFunc-13" result="fail"/><test-case name="K2-MatchesFunc-14" result="fail"/><test-case name="K2-MatchesFunc-15" result="pass"/><test-case name="K2-MatchesFunc-16" result="pass"/><test-case name="K2-MatchesFunc-17" result="pass"/><test-case name="fn-replace3args-1" result="pass"/><test-case name="fn-replace3args-2" result="pass"/><test-case name="fn-replace3args-3" result="pass"/><test-case name="fn-replace3args-4" result="pass"/><test-case name="fn-replace3args-5" result="pass"/><test-case name="fn-replace3args-6" result="pass"/><test-case name="fn-replace3args-7" result="pass"/><test-case name="fn-replaceErr-1" result="pass"/><test-case name="fn-replaceErr-2" result="pass"/><test-case name="fn-replaceErr-3" result="pass"/><test-case name="fn-replace-1" result="pass"/><test-case name="fn-replace-2" result="pass"/><test-case name="fn-replace-3" result="fail"/><test-case name="fn-replace-4" result="pass"/><test-case name="fn-replace-5" result="pass"/><test-case name="fn-replace-6" result="fail"/><test-case name="fn-replace-7" result="pass"/><test-case name="fn-replace-8" result="fail"/><test-case name="fn-replace-9" result="fail"/><test-case name="fn-replace-10" result="pass"/><test-case name="fn-replace-11" result="pass"/><test-case name="fn-replace-12" result="pass"/><test-case name="fn-replace-13" result="pass"/><test-case name="fn-replace-14" result="pass"/><test-case name="fn-replace-15" result="pass"/><test-case name="fn-replace-16" result="pass"/><test-case name="fn-replace-17" result="pass"/><test-case name="fn-replace-18" result="pass"/><test-case name="fn-replace-19" result="pass"/><test-case name="fn-replace-20" result="pass"/><test-case name="fn-replace-21" result="pass"/><test-case name="fn-replace-22" result="pass"/><test-case name="fn-replace-23" result="pass"/><test-case name="fn-replace-24" result="pass"/><test-case name="fn-replace-25" result="pass"/><test-case name="fn-replace-26" result="pass"/><test-case name="fn-replace-27" result="pass"/><test-case name="fn-replace-28" result="pass"/><test-case name="fn-replace-29" result="pass"/><test-case name="fn-replace-30" result="pass"/><test-case name="fn-replace-31" result="pass"/><test-case name="fn-replace-32" result="pass"/><test-case name="fn-replace-33" result="pass"/><test-case name="K-ReplaceFunc-1" result="pass"/><test-case name="K-ReplaceFunc-2" result="pass"/><test-case name="K-ReplaceFunc-3" result="pass"/><test-case name="K-ReplaceFunc-4" result="pass"/><test-case name="K-ReplaceFunc-5" result="pass"/><test-case name="K-ReplaceFunc-6" result="pass"/><test-case name="K-ReplaceFunc-7" result="pass"/><test-case name="K-ReplaceFunc-8" result="pass"/><test-case name="K-ReplaceFunc-9" result="pass"/><test-case name="K2-ReplaceFunc-1" result="pass"/><test-case name="K2-ReplaceFunc-2" result="pass"/><test-case name="K2-ReplaceFunc-3" result="fail"/><test-case name="K2-ReplaceFunc-4" result="pass"/><test-case name="K2-ReplaceFunc-5" result="pass"/><test-case name="K2-ReplaceFunc-6" result="fail"/><test-case name="K2-ReplaceFunc-7" result="fail"/><test-case name="K2-ReplaceFunc-8" result="pass"/><test-case name="fn-tokenize-1" result="fail"/><test-case name="fn-tokenize-2" result="pass"/><test-case name="fn-tokenize-3" result="pass"/><test-case name="fn-tokenize-4" result="pass"/><test-case name="fn-tokenize-5" result="pass"/><test-case name="fn-tokenize-6" result="pass"/><test-case name="fn-tokenize-7" result="pass"/><test-case name="fn-tokenize-8" result="pass"/><test-case name="fn-tokenize-9" result="fail"/><test-case name="fn-tokenize-10" result="pass"/><test-case name="fn-tokenize-11" result="pass"/><test-case name="fn-tokenize-12" result="pass"/><test-case name="fn-tokenize-13" result="pass"/><test-case name="fn-tokenize-14" result="pass"/><test-case name="fn-tokenize-15" result="pass"/><test-case name="fn-tokenize-16" result="pass"/><test-case name="fn-tokenize-17" result="pass"/><test-case name="fn-tokenize-18" result="pass"/><test-case name="fn-tokenize-19" result="pass"/><test-case name="fn-tokenize-20" result="pass"/><test-case name="fn-tokenize-21" result="pass"/><test-case name="fn-tokenize-22" result="pass"/><test-case name="fn-tokenize-23" result="pass"/><test-case name="fn-tokenize-24" result="pass"/><test-case name="fn-tokenize-25" result="pass"/><test-case name="fn-tokenize-26" result="pass"/><test-case name="fn-tokenize-27" result="pass"/><test-case name="fn-tokenize-28" result="pass"/><test-case name="fn-tokenize-29" result="pass"/><test-case name="fn-tokenize-30" result="pass"/><test-case name="K-TokenizeFunc-1" result="pass"/><test-case name="K-TokenizeFunc-2" result="pass"/><test-case name="K-TokenizeFunc-3" result="pass"/><test-case name="K-TokenizeFunc-4" result="pass"/><test-case name="K-TokenizeFunc-5" result="pass"/><test-case name="K2-TokenizeFunc-1" result="fail"/><test-case name="K2-TokenizeFunc-2" result="pass"/><test-case name="K2-TokenizeFunc-3" result="fail"/><test-case name="K2-TokenizeFunc-4" result="fail"/><test-case name="K2-TokenizeFunc-5" result="fail"/><test-case name="K2-TokenizeFunc-6" result="pass"/><test-case name="K2-TokenizeFunc-7" result="fail"/><test-case name="fn-resolve-uri-1" result="pass"/><test-case name="fn-resolve-uri-2" result="pass"/><test-case name="fn-resolve-uri-3" result="pass"/><test-case name="fn-resolve-uri-4" result="pass"/><test-case name="fn-resolve-uri-5" result="pass"/><test-case name="fn-resolve-uri-6" result="pass"/><test-case name="fn-resolve-uri-7" result="pass"/><test-case name="fn-resolve-uri-8" result="pass"/><test-case name="fn-resolve-uri-9" result="fail"/><test-case name="fn-resolve-uri-10" result="pass"/><test-case name="fn-resolve-uri-11" result="pass"/><test-case name="fn-resolve-uri-12" result="pass"/><test-case name="fn-resolve-uri-13" result="pass"/><test-case name="fn-resolve-uri-14" result="pass"/><test-case name="fn-resolve-uri-15" result="pass"/><test-case name="fn-resolve-uri-16" result="pass"/><test-case name="fn-resolve-uri-17" result="fail"/><test-case name="fn-resolve-uri-18" result="pass"/><test-case name="fn-resolve-uri-19" result="pass"/><test-case name="fn-resolve-uri-20" result="pass"/><test-case name="fn-resolve-uri-21" result="pass"/><test-case name="fn-resolve-uri-22" result="pass"/><test-case name="fn-resolve-uri-23" result="pass"/><test-case name="K-ResolveURIFunc-1" result="pass"/><test-case name="K-ResolveURIFunc-2" result="pass"/><test-case name="K-ResolveURIFunc-3" result="pass"/><test-case name="K-ResolveURIFunc-4" result="pass"/><test-case name="K-ResolveURIFunc-5" result="pass"/><test-case name="K-ResolveURIFunc-6" result="pass"/><test-case name="fn-true-1" result="pass"/><test-case name="fn-true-2" result="pass"/><test-case name="fn-true-3" result="pass"/><test-case name="fn-true-4" result="pass"/><test-case name="fn-true-5" result="pass"/><test-case name="fn-true-6" result="pass"/><test-case name="fn-true-7" result="pass"/><test-case name="fn-true-8" result="pass"/><test-case name="fn-true-9" result="pass"/><test-case name="fn-true-10" result="pass"/><test-case name="fn-true-11" result="pass"/><test-case name="fn-true-12" result="pass"/><test-case name="fn-true-13" result="pass"/><test-case name="fn-true-14" result="pass"/><test-case name="fn-true-15" result="pass"/><test-case name="fn-true-16" result="pass"/><test-case name="fn-true-17" result="pass"/><test-case name="fn-true-18" result="pass"/><test-case name="fn-true-19" result="pass"/><test-case name="fn-true-20" result="pass"/><test-case name="fn-true-21" result="pass"/><test-case name="K-TrueFunc-1" result="pass"/><test-case name="K-TrueFunc-2" result="pass"/><test-case name="K-TrueFunc-3" result="pass"/><test-case name="fn-false-1" result="pass"/><test-case name="fn-false-2" result="pass"/><test-case name="fn-false-3" result="pass"/><test-case name="fn-false-4" result="pass"/><test-case name="fn-false-5" result="pass"/><test-case name="fn-false-6" result="pass"/><test-case name="fn-false-7" result="pass"/><test-case name="fn-false-8" result="pass"/><test-case name="fn-false-9" result="pass"/><test-case name="fn-false-10" result="pass"/><test-case name="fn-false-11" result="pass"/><test-case name="fn-false-12" result="pass"/><test-case name="fn-false-13" result="pass"/><test-case name="fn-false-14" result="pass"/><test-case name="fn-false-15" result="pass"/><test-case name="fn-false-16" result="pass"/><test-case name="fn-false-17" result="pass"/><test-case name="fn-false-18" result="pass"/><test-case name="fn-false-19" result="pass"/><test-case name="fn-false-20" result="pass"/><test-case name="fn-false-21" result="pass"/><test-case name="K-FalseFunc-1" result="pass"/><test-case name="K-FalseFunc-2" result="pass"/><test-case name="K-FalseFunc-3" result="pass"/><test-case name="fn-notint1args-1" result="pass"/><test-case name="fn-notint1args-2" result="pass"/><test-case name="fn-notint1args-3" result="pass"/><test-case name="fn-notintg1args-1" result="pass"/><test-case name="fn-notintg1args-2" result="pass"/><test-case name="fn-notintg1args-3" result="pass"/><test-case name="fn-notdec1args-1" result="pass"/><test-case name="fn-notdec1args-2" result="pass"/><test-case name="fn-notdec1args-3" result="pass"/><test-case name="fn-notdbl1args-1" result="pass"/><test-case name="fn-notdbl1args-2" result="pass"/><test-case name="fn-notdbl1args-3" result="pass"/><test-case name="fn-notflt1args-1" result="pass"/><test-case name="fn-notflt1args-2" result="pass"/><test-case name="fn-notflt1args-3" result="pass"/><test-case name="fn-notlng1args-1" result="pass"/><test-case name="fn-notlng1args-2" result="pass"/><test-case name="fn-notlng1args-3" result="pass"/><test-case name="fn-notusht1args-1" result="pass"/><test-case name="fn-notusht1args-2" result="pass"/><test-case name="fn-notusht1args-3" result="pass"/><test-case name="fn-notnint1args-1" result="pass"/><test-case name="fn-notnint1args-2" result="pass"/><test-case name="fn-notnint1args-3" result="pass"/><test-case name="fn-notpint1args-1" result="pass"/><test-case name="fn-notpint1args-2" result="pass"/><test-case name="fn-notpint1args-3" result="pass"/><test-case name="fn-notulng1args-1" result="pass"/><test-case name="fn-notulng1args-2" result="pass"/><test-case name="fn-notulng1args-3" result="pass"/><test-case name="fn-notnpi1args-1" result="pass"/><test-case name="fn-notnpi1args-2" result="pass"/><test-case name="fn-notnpi1args-3" result="pass"/><test-case name="fn-notnni1args-1" result="pass"/><test-case name="fn-notnni1args-2" result="pass"/><test-case name="fn-notnni1args-3" result="pass"/><test-case name="fn-notsht1args-1" result="pass"/><test-case name="fn-notsht1args-2" result="pass"/><test-case name="fn-notsht1args-3" result="pass"/><test-case name="fn-not-1" result="pass"/><test-case name="fn-not-2" result="pass"/><test-case name="fn-not-3" result="pass"/><test-case name="fn-not-4" result="pass"/><test-case name="fn-not-5" result="pass"/><test-case name="fn-not-6" result="pass"/><test-case name="fn-not-7" result="pass"/><test-case name="fn-not-8" result="pass"/><test-case name="fn-not-9" result="pass"/><test-case name="fn-not-10" result="pass"/><test-case name="fn-not-11" result="pass"/><test-case name="fn-not-12" result="pass"/><test-case name="fn-not-13" result="pass"/><test-case name="fn-not-14" result="pass"/><test-case name="fn-not-15" result="pass"/><test-case name="fn-not-16" result="pass"/><test-case name="fn-not-17" result="pass"/><test-case name="fn-not-18" result="pass"/><test-case name="fn-not-19" result="pass"/><test-case name="fn-not-20" result="pass"/><test-case name="fn-not-21" result="pass"/><test-case name="K-NotFunc-1" result="pass"/><test-case name="K-NotFunc-2" result="pass"/><test-case name="K-NotFunc-3" result="pass"/><test-case name="K-NotFunc-4" result="pass"/><test-case name="K-NotFunc-5" result="pass"/><test-case name="K-NotFunc-6" result="pass"/><test-case name="K-NotFunc-7" result="pass"/><test-case name="K-NotFunc-8" result="pass"/><test-case name="K-NotFunc-9" result="pass"/><test-case name="K-NotFunc-10" result="pass"/><test-case name="fn-years-from-duration1args-1" result="pass"/><test-case name="fn-years-from-duration1args-2" result="pass"/><test-case name="fn-years-from-duration1args-3" result="pass"/><test-case name="fn-years-from-duration-1" result="pass"/><test-case name="fn-years-from-duration-2" result="pass"/><test-case name="fn-years-from-duration-3" result="pass"/><test-case name="fn-years-from-duration-4" result="pass"/><test-case name="fn-years-from-duration-5" result="pass"/><test-case name="fn-years-from-duration-6" result="pass"/><test-case name="fn-years-from-duration-7" result="pass"/><test-case name="fn-years-from-duration-8" result="pass"/><test-case name="fn-years-from-duration-9" result="pass"/><test-case name="fn-years-from-duration-10" result="pass"/><test-case name="fn-years-from-duration-11" result="pass"/><test-case name="fn-years-from-duration-12" result="pass"/><test-case name="fn-years-from-duration-13" result="pass"/><test-case name="fn-years-from-duration-14" result="pass"/><test-case name="fn-years-from-duration-15" result="pass"/><test-case name="fn-years-from-duration-16" result="pass"/><test-case name="fn-years-from-duration-17" result="pass"/><test-case name="fn-years-from-duration-18" result="pass"/><test-case name="fn-years-from-duration-19" result="pass"/><test-case name="fn-years-from-duration-20" result="pass"/><test-case name="K-YearsFromDurationFunc-1" result="pass"/><test-case name="K-YearsFromDurationFunc-2" result="pass"/><test-case name="K-YearsFromDurationFunc-3" result="pass"/><test-case name="K-YearsFromDurationFunc-4" result="pass"/><test-case name="K-YearsFromDurationFunc-5" result="pass"/><test-case name="K-YearsFromDurationFunc-6" result="pass"/><test-case name="K-YearsFromDurationFunc-7" result="pass"/><test-case name="fn-months-from-duration1args-1" result="pass"/><test-case name="fn-months-from-duration1args-2" result="pass"/><test-case name="fn-months-from-duration1args-3" result="pass"/><test-case name="fn-months-from-duration-1" result="pass"/><test-case name="fn-months-from-duration-2" result="pass"/><test-case name="fn-months-from-duration-3" result="pass"/><test-case name="fn-months-from-duration-4" result="pass"/><test-case name="fn-months-from-duration-5" result="pass"/><test-case name="fn-months-from-duration-6" result="pass"/><test-case name="fn-months-from-duration-7" result="pass"/><test-case name="fn-months-from-duration-8" result="pass"/><test-case name="fn-months-from-duration-9" result="pass"/><test-case name="fn-months-from-duration-10" result="pass"/><test-case name="fn-months-from-duration-11" result="pass"/><test-case name="fn-months-from-duration-12" result="pass"/><test-case name="fn-months-from-duration-13" result="pass"/><test-case name="fn-months-from-duration-14" result="pass"/><test-case name="fn-months-from-duration-15" result="pass"/><test-case name="fn-months-from-duration-16" result="pass"/><test-case name="fn-months-from-duration-17" result="pass"/><test-case name="fn-months-from-duration-18" result="pass"/><test-case name="fn-months-from-duration-19" result="pass"/><test-case name="fn-months-from-duration-20" result="pass"/><test-case name="K-MonthsFromDurationFunc-1" result="pass"/><test-case name="K-MonthsFromDurationFunc-2" result="pass"/><test-case name="K-MonthsFromDurationFunc-3" result="pass"/><test-case name="K-MonthsFromDurationFunc-4" result="pass"/><test-case name="K-MonthsFromDurationFunc-5" result="pass"/><test-case name="K-MonthsFromDurationFunc-6" result="pass"/><test-case name="K-MonthsFromDurationFunc-7" result="pass"/><test-case name="fn-days-from-duration1args-1" result="pass"/><test-case name="fn-days-from-duration1args-2" result="pass"/><test-case name="fn-days-from-duration1args-3" result="pass"/><test-case name="fn-days-from-duration-1" result="pass"/><test-case name="fn-days-from-duration-2" result="pass"/><test-case name="fn-days-from-duration-3" result="pass"/><test-case name="fn-days-from-duration-4" result="pass"/><test-case name="fn-days-from-duration-5" result="pass"/><test-case name="fn-days-from-duration-6" result="pass"/><test-case name="fn-days-from-duration-7" result="pass"/><test-case name="fn-days-from-duration-8" result="pass"/><test-case name="fn-days-from-duration-9" result="pass"/><test-case name="fn-days-from-duration-10" result="pass"/><test-case name="fn-days-from-duration-11" result="pass"/><test-case name="fn-days-from-duration-12" result="pass"/><test-case name="fn-days-from-duration-13" result="pass"/><test-case name="fn-days-from-duration-14" result="pass"/><test-case name="fn-days-from-duration-15" result="pass"/><test-case name="fn-days-from-duration-16" result="pass"/><test-case name="fn-days-from-duration-17" result="pass"/><test-case name="fn-days-from-duration-18" result="pass"/><test-case name="fn-days-from-duration-19" result="pass"/><test-case name="fn-days-from-duration-20" result="pass"/><test-case name="K-DaysFromDurationFunc-1" result="pass"/><test-case name="K-DaysFromDurationFunc-2" result="pass"/><test-case name="K-DaysFromDurationFunc-3" result="pass"/><test-case name="K-DaysFromDurationFunc-4" result="pass"/><test-case name="K-DaysFromDurationFunc-5" result="pass"/><test-case name="K-DaysFromDurationFunc-6" result="pass"/><test-case name="K-DaysFromDurationFunc-7" result="pass"/><test-case name="fn-hours-from-duration1args-1" result="pass"/><test-case name="fn-hours-from-duration1args-2" result="pass"/><test-case name="fn-hours-from-duration1args-3" result="pass"/><test-case name="fn-hours-from-duration-1" result="pass"/><test-case name="fn-hours-from-duration-2" result="pass"/><test-case name="fn-hours-from-duration-3" result="pass"/><test-case name="fn-hours-from-duration-4" result="pass"/><test-case name="fn-hours-from-duration-5" result="pass"/><test-case name="fn-hours-from-duration-6" result="pass"/><test-case name="fn-hours-from-duration-7" result="pass"/><test-case name="fn-hours-from-duration-8" result="pass"/><test-case name="fn-hours-from-duration-9" result="pass"/><test-case name="fn-hours-from-duration-10" result="pass"/><test-case name="fn-hours-from-duration-11" result="pass"/><test-case name="fn-hours-from-duration-12" result="pass"/><test-case name="fn-hours-from-duration-13" result="pass"/><test-case name="fn-hours-from-duration-14" result="pass"/><test-case name="fn-hours-from-duration-15" result="pass"/><test-case name="fn-hours-from-duration-16" result="pass"/><test-case name="fn-hours-from-duration-17" result="pass"/><test-case name="fn-hours-from-duration-18" result="pass"/><test-case name="fn-hours-from-duration-19" result="pass"/><test-case name="fn-hours-from-duration-20" result="pass"/><test-case name="K-HoursFromDurationFunc-1" result="pass"/><test-case name="K-HoursFromDurationFunc-2" result="pass"/><test-case name="K-HoursFromDurationFunc-3" result="pass"/><test-case name="K-HoursFromDurationFunc-4" result="pass"/><test-case name="K-HoursFromDurationFunc-5" result="pass"/><test-case name="K-HoursFromDurationFunc-6" result="pass"/><test-case name="K-HoursFromDurationFunc-7" result="pass"/><test-case name="fn-minutes-from-duration1args-1" result="pass"/><test-case name="fn-minutes-from-duration1args-2" result="pass"/><test-case name="fn-minutes-from-duration1args-3" result="pass"/><test-case name="fn-minutes-from-duration-1" result="pass"/><test-case name="fn-minutes-from-duration-2" result="pass"/><test-case name="fn-minutes-from-duration-3" result="pass"/><test-case name="fn-minutes-from-duration-4" result="pass"/><test-case name="fn-minutes-from-duration-5" result="pass"/><test-case name="fn-minutes-from-duration-6" result="pass"/><test-case name="fn-minutes-from-duration-7" result="pass"/><test-case name="fn-minutes-from-duration-8" result="pass"/><test-case name="fn-minutes-from-duration-9" result="pass"/><test-case name="fn-minutes-from-duration-10" result="pass"/><test-case name="fn-minutes-from-duration-11" result="pass"/><test-case name="fn-minutes-from-duration-12" result="pass"/><test-case name="fn-minutes-from-duration-13" result="pass"/><test-case name="fn-minutes-from-duration-14" result="pass"/><test-case name="fn-minutes-from-duration-15" result="pass"/><test-case name="fn-minutes-from-duration-16" result="pass"/><test-case name="fn-minutes-from-duration-17" result="pass"/><test-case name="fn-minutes-from-duration-18" result="pass"/><test-case name="fn-minutes-from-duration-19" result="pass"/><test-case name="fn-minutes-from-duration-20" result="pass"/><test-case name="fn-minutes-from-duration-21" result="pass"/><test-case name="K-MinutesFromDurationFunc-1" result="pass"/><test-case name="K-MinutesFromDurationFunc-2" result="pass"/><test-case name="K-MinutesFromDurationFunc-3" result="pass"/><test-case name="K-MinutesFromDurationFunc-4" result="pass"/><test-case name="K-MinutesFromDurationFunc-5" result="pass"/><test-case name="K-MinutesFromDurationFunc-6" result="pass"/><test-case name="K-MinutesFromDurationFunc-7" result="pass"/><test-case name="fn-seconds-from-duration1args-1" result="pass"/><test-case name="fn-seconds-from-duration1args-2" result="pass"/><test-case name="fn-seconds-from-duration1args-3" result="pass"/><test-case name="fn-seconds-from-duration-1" result="pass"/><test-case name="fn-seconds-from-duration-2" result="pass"/><test-case name="fn-seconds-from-duration-3" result="pass"/><test-case name="fn-seconds-from-duration-4" result="pass"/><test-case name="fn-seconds-from-duration-5" result="pass"/><test-case name="fn-seconds-from-duration-6" result="pass"/><test-case name="fn-seconds-from-duration-7" result="pass"/><test-case name="fn-seconds-from-duration-8" result="pass"/><test-case name="fn-seconds-from-duration-9" result="pass"/><test-case name="fn-seconds-from-duration-10" result="pass"/><test-case name="fn-seconds-from-duration-11" result="pass"/><test-case name="fn-seconds-from-duration-12" result="pass"/><test-case name="fn-seconds-from-duration-13" result="pass"/><test-case name="fn-seconds-from-duration-14" result="pass"/><test-case name="fn-seconds-from-duration-15" result="pass"/><test-case name="fn-seconds-from-duration-16" result="pass"/><test-case name="fn-seconds-from-duration-17" result="pass"/><test-case name="fn-seconds-from-duration-18" result="pass"/><test-case name="fn-seconds-from-duration-19" result="pass"/><test-case name="fn-seconds-from-duration-20" result="pass"/><test-case name="fn-seconds-from-duration-21" result="pass"/><test-case name="K-SecondsFromDurationFunc-1" result="pass"/><test-case name="K-SecondsFromDurationFunc-2" result="pass"/><test-case name="K-SecondsFromDurationFunc-3" result="pass"/><test-case name="K-SecondsFromDurationFunc-4" result="pass"/><test-case name="K-SecondsFromDurationFunc-5" result="pass"/><test-case name="K-SecondsFromDurationFunc-6" result="pass"/><test-case name="K-SecondsFromDurationFunc-7" result="pass"/><test-case name="fn-year-from-dateTime1args-1" result="pass"/><test-case name="fn-year-from-dateTime1args-2" result="pass"/><test-case name="fn-year-from-dateTime1args-3" result="pass"/><test-case name="fn-year-from-dateTime-1" result="pass"/><test-case name="fn-year-from-dateTime-2" result="pass"/><test-case name="fn-year-from-dateTime-3" result="pass"/><test-case name="fn-year-from-dateTime-4" result="pass"/><test-case name="fn-year-from-dateTime-5" result="pass"/><test-case name="fn-year-from-dateTime-6" result="pass"/><test-case name="fn-year-from-dateTime-7" result="pass"/><test-case name="fn-year-from-dateTime-8" result="pass"/><test-case name="fn-year-from-dateTime-9" result="pass"/><test-case name="fn-year-from-dateTime-10" result="pass"/><test-case name="fn-year-from-dateTime-11" result="pass"/><test-case name="fn-year-from-dateTime-12" result="pass"/><test-case name="fn-year-from-dateTime-13" result="pass"/><test-case name="fn-year-from-dateTimeNew-14" result="pass"/><test-case name="fn-year-from-dateTimeNew-15" result="pass"/><test-case name="fn-year-from-dateTime-16" result="pass"/><test-case name="fn-year-from-dateTime-17" result="pass"/><test-case name="fn-year-from-dateTime-18" result="pass"/><test-case name="fn-year-from-dateTime-19" result="pass"/><test-case name="K-YearFromDateTimeFunc-1" result="pass"/><test-case name="K-YearFromDateTimeFunc-2" result="pass"/><test-case name="K-YearFromDateTimeFunc-3" result="pass"/><test-case name="K-YearFromDateTimeFunc-4" result="pass"/><test-case name="K-YearFromDateTimeFunc-5" result="pass"/><test-case name="fn-month-from-dateTime1args-1" result="pass"/><test-case name="fn-month-from-dateTime1args-2" result="pass"/><test-case name="fn-month-from-dateTime1args-3" result="pass"/><test-case name="fn-month-from-dateTime-1" result="pass"/><test-case name="fn-month-from-dateTime-2" result="pass"/><test-case name="fn-month-from-dateTime-3" result="pass"/><test-case name="fn-month-from-dateTime-4" result="pass"/><test-case name="fn-month-from-dateTime-5" result="pass"/><test-case name="fn-month-from-dateTime-6" result="pass"/><test-case name="fn-month-from-dateTime-7" result="pass"/><test-case name="fn-month-from-dateTime-8" result="pass"/><test-case name="fn-month-from-dateTime-9" result="pass"/><test-case name="fn-month-from-dateTimeNew-10" result="pass"/><test-case name="fn-month-from-dateTime-11" result="pass"/><test-case name="fn-month-from-dateTime-12" result="pass"/><test-case name="fn-month-from-dateTime-13" result="pass"/><test-case name="fn-month-from-dateTime-14" result="pass"/><test-case name="fn-month-from-dateTime-15" result="pass"/><test-case name="fn-month-from-dateTime-16" result="pass"/><test-case name="fn-month-from-dateTime-17" result="pass"/><test-case name="fn-month-from-dateTime-18" result="pass"/><test-case name="fn-month-from-dateTime-19" result="pass"/><test-case name="K-MonthFromDateTimeFunc-1" result="pass"/><test-case name="K-MonthFromDateTimeFunc-2" result="pass"/><test-case name="K-MonthFromDateTimeFunc-3" result="pass"/><test-case name="K-MonthFromDateTimeFunc-4" result="pass"/><test-case name="K-MonthFromDateTimeFunc-5" result="pass"/><test-case name="fn-day-from-dateTime1args-1" result="pass"/><test-case name="fn-day-from-dateTime1args-2" result="pass"/><test-case name="fn-day-from-dateTime1args-3" result="pass"/><test-case name="fn-day-from-dateTime-1" result="pass"/><test-case name="fn-day-from-dateTime-2" result="pass"/><test-case name="fn-day-from-dateTime-3" result="pass"/><test-case name="fn-day-from-dateTime-4" result="pass"/><test-case name="fn-day-from-dateTime-5" result="pass"/><test-case name="fn-day-from-dateTime-6" result="pass"/><test-case name="fn-day-from-dateTime-7" result="pass"/><test-case name="fn-day-from-dateTime-8" result="pass"/><test-case name="fn-day-from-dateTime-9" result="pass"/><test-case name="fn-day-from-dateTimeNew-10" result="pass"/><test-case name="fn-day-from-dateTime-11" result="pass"/><test-case name="fn-day-from-dateTime-12" result="pass"/><test-case name="fn-day-from-dateTime-13" result="pass"/><test-case name="fn-day-from-dateTime-14" result="pass"/><test-case name="fn-day-from-dateTime-15" result="pass"/><test-case name="fn-day-from-dateTime-16" result="pass"/><test-case name="fn-day-from-dateTime-17" result="pass"/><test-case name="fn-day-from-dateTime-18" result="pass"/><test-case name="fn-day-from-dateTime-19" result="pass"/><test-case name="K-DayFromDateTimeFunc-1" result="pass"/><test-case name="K-DayFromDateTimeFunc-2" result="pass"/><test-case name="K-DayFromDateTimeFunc-3" result="pass"/><test-case name="K-DayFromDateTimeFunc-4" result="pass"/><test-case name="K-DayFromDateTimeFunc-5" result="pass"/><test-case name="fn-hours-from-dateTime1args-1" result="pass"/><test-case name="fn-hours-from-dateTime1args-2" result="pass"/><test-case name="fn-hours-from-dateTime1args-3" result="pass"/><test-case name="fn-hours-from-dateTime-1" result="pass"/><test-case name="fn-hours-from-dateTime-2" result="pass"/><test-case name="fn-hours-from-dateTime-3" result="pass"/><test-case name="fn-hours-from-dateTime-4" result="pass"/><test-case name="fn-hours-from-dateTime-5" result="pass"/><test-case name="fn-hours-from-dateTime-6" result="pass"/><test-case name="fn-hours-from-dateTime-7" result="pass"/><test-case name="fn-hours-from-dateTime-8" result="pass"/><test-case name="fn-hours-from-dateTime-9" result="pass"/><test-case name="fn-hours-from-dateTime-10" result="pass"/><test-case name="fn-hours-from-dateTime-11" result="pass"/><test-case name="fn-hours-from-dateTime-12" result="pass"/><test-case name="fn-hours-from-dateTime-13" result="pass"/><test-case name="fn-hours-from-dateTime-14" result="pass"/><test-case name="fn-hours-from-dateTime-15" result="pass"/><test-case name="fn-hours-from-dateTime-16" result="pass"/><test-case name="fn-hours-from-dateTime-17" result="pass"/><test-case name="fn-hours-from-dateTime-18" result="pass"/><test-case name="fn-hours-from-dateTime-19" result="pass"/><test-case name="K-HoursFromDateTimeFunc-1" result="pass"/><test-case name="K-HoursFromDateTimeFunc-2" result="pass"/><test-case name="K-HoursFromDateTimeFunc-3" result="pass"/><test-case name="K-HoursFromDateTimeFunc-4" result="pass"/><test-case name="K-HoursFromDateTimeFunc-5" result="pass"/><test-case name="fn-minutes-from-dateTime1args-1" result="pass"/><test-case name="fn-minutes-from-dateTime1args-2" result="pass"/><test-case name="fn-minutes-from-dateTime1args-3" result="pass"/><test-case name="fn-minutes-from-dateTime-1" result="pass"/><test-case name="fn-minutes-from-dateTime-2" result="pass"/><test-case name="fn-minutes-from-dateTime-3" result="pass"/><test-case name="fn-minutes-from-dateTime-4" result="pass"/><test-case name="fn-minutes-from-dateTime-5" result="pass"/><test-case name="fn-minutes-from-dateTime-6" result="pass"/><test-case name="fn-minutes-from-dateTime-7" result="pass"/><test-case name="fn-minutes-from-dateTime-8" result="pass"/><test-case name="fn-minutes-from-dateTime-9" result="pass"/><test-case name="fn-minutes-from-dateTime-10" result="pass"/><test-case name="fn-minutes-from-dateTime-11" result="pass"/><test-case name="fn-minutes-from-dateTime-12" result="pass"/><test-case name="fn-minutes-from-dateTime-13" result="pass"/><test-case name="fn-minutes-from-dateTime-14" result="pass"/><test-case name="fn-minutes-from-dateTime-15" result="pass"/><test-case name="fn-minutes-from-dateTime-16" result="pass"/><test-case name="fn-minutes-from-dateTime-17" result="pass"/><test-case name="fn-minutes-from-dateTime-18" result="pass"/><test-case name="fn-minutes-from-dateTime-19" result="pass"/><test-case name="K-MinutesFromDateTimeFunc-1" result="pass"/><test-case name="K-MinutesFromDateTimeFunc-2" result="pass"/><test-case name="K-MinutesFromDateTimeFunc-3" result="pass"/><test-case name="K-MinutesFromDateTimeFunc-4" result="pass"/><test-case name="K-MinutesFromDateTimeFunc-5" result="pass"/><test-case name="fn-seconds-from-dateTime1args-1" result="pass"/><test-case name="fn-seconds-from-dateTime1args-2" result="pass"/><test-case name="fn-seconds-from-dateTime1args-3" result="pass"/><test-case name="fn-seconds-from-dateTime-1" result="pass"/><test-case name="fn-seconds-from-dateTime-2" result="pass"/><test-case name="fn-seconds-from-dateTime-3" result="pass"/><test-case name="fn-seconds-from-dateTime-4" result="pass"/><test-case name="fn-seconds-from-dateTime-5" result="pass"/><test-case name="fn-seconds-from-dateTime-6" result="pass"/><test-case name="fn-seconds-from-dateTime-7" result="pass"/><test-case name="fn-seconds-from-dateTime-8" result="pass"/><test-case name="fn-seconds-from-dateTime-9" result="pass"/><test-case name="fn-seconds-from-dateTime-10" result="pass"/><test-case name="fn-seconds-from-dateTime-11" result="pass"/><test-case name="fn-seconds-from-dateTime-12" result="pass"/><test-case name="fn-seconds-from-dateTime-13" result="pass"/><test-case name="fn-seconds-from-dateTime-14" result="pass"/><test-case name="fn-seconds-from-dateTime-15" result="pass"/><test-case name="fn-seconds-from-dateTime-16" result="pass"/><test-case name="fn-seconds-from-dateTime-17" result="pass"/><test-case name="fn-seconds-from-dateTime-18" result="pass"/><test-case name="fn-seconds-from-dateTime-19" result="pass"/><test-case name="K-SecondsFromDateTimeFunc-1" result="pass"/><test-case name="K-SecondsFromDateTimeFunc-2" result="pass"/><test-case name="K-SecondsFromDateTimeFunc-3" result="pass"/><test-case name="K-SecondsFromDateTimeFunc-4" result="pass"/><test-case name="K-SecondsFromDateTimeFunc-5" result="pass"/><test-case name="fn-timezone-from-dateTimealt-1" result="pass"/><test-case name="fn-timezone-from-dateTimealt-2" result="pass"/><test-case name="fn-timezone-from-dateTimealt-3" result="pass"/><test-case name="fn-timezone-from-dateTimealt-4" result="pass"/><test-case name="fn-timezone-from-dateTimealt-5" result="pass"/><test-case name="fn-timezone-from-dateTimealt-6" result="pass"/><test-case name="fn-timezone-from-dateTimealt-7" result="pass"/><test-case name="fn-timezone-from-dateTimealt-8" result="pass"/><test-case name="fn-timezone-from-dateTimealt-9" result="pass"/><test-case name="fn-timezone-from-dateTimealt-10" result="pass"/><test-case name="fn-timezone-from-dateTimealt-11" result="pass"/><test-case name="fn-timezone-from-dateTimealt-12" result="pass"/><test-case name="fn-timezone-from-dateTimealt-13" result="pass"/><test-case name="fn-timezone-from-dateTimealt-14" result="pass"/><test-case name="fn-timezone-from-dateTimealt-15" result="pass"/><test-case name="fn-timezone-from-dateTimealt-16" result="pass"/><test-case name="fn-timezone-from-dateTimealt-17" result="pass"/><test-case name="fn-timezone-from-dateTimealt-18" result="pass"/><test-case name="fn-timezone-from-dateTimealt-19" result="pass"/><test-case name="fn-timezone-from-dateTimealt-20" result="pass"/><test-case name="K-TimezoneFromDateTimeFunc-1" result="pass"/><test-case name="K-TimezoneFromDateTimeFunc-2" result="pass"/><test-case name="K-TimezoneFromDateTimeFunc-3" result="pass"/><test-case name="K-TimezoneFromDateTimeFunc-4" result="pass"/><test-case name="K-TimezoneFromDateTimeFunc-5" result="pass"/><test-case name="K-TimezoneFromDateTimeFunc-6" result="pass"/><test-case name="K-TimezoneFromDateTimeFunc-7" result="pass"/><test-case name="fn-year-from-date1args-1" result="pass"/><test-case name="fn-year-from-date1args-2" result="pass"/><test-case name="fn-year-from-date1args-3" result="pass"/><test-case name="fn-year-from-date-1" result="pass"/><test-case name="fn-year-from-date-2" result="pass"/><test-case name="fn-year-from-date-3" result="pass"/><test-case name="fn-year-from-date-4" result="pass"/><test-case name="fn-year-from-date-5" result="pass"/><test-case name="fn-year-from-date-6" result="pass"/><test-case name="fn-year-from-date-7" result="pass"/><test-case name="fn-year-from-date-8" result="pass"/><test-case name="fn-year-from-date-9" result="pass"/><test-case name="fn-year-from-date-10" result="pass"/><test-case name="fn-year-from-date-11" result="pass"/><test-case name="fn-year-from-date-12" result="pass"/><test-case name="fn-year-from-date-13" result="pass"/><test-case name="fn-year-from-date-14" result="pass"/><test-case name="fn-year-from-date-15" result="pass"/><test-case name="fn-year-from-date-16" result="pass"/><test-case name="fn-year-from-date-17" result="pass"/><test-case name="fn-year-from-date-18" result="pass"/><test-case name="fn-year-from-date-19" result="pass"/><test-case name="K-YearFromDateFunc-1" result="pass"/><test-case name="K-YearFromDateFunc-2" result="pass"/><test-case name="K-YearFromDateFunc-3" result="pass"/><test-case name="K-YearFromDateFunc-4" result="pass"/><test-case name="K-YearFromDateFunc-5" result="pass"/><test-case name="fn-month-from-date1args-1" result="pass"/><test-case name="fn-month-from-date1args-2" result="pass"/><test-case name="fn-month-from-date1args-3" result="pass"/><test-case name="fn-month-from-date-1" result="pass"/><test-case name="fn-month-from-date-2" result="pass"/><test-case name="fn-month-from-date-3" result="pass"/><test-case name="fn-month-from-date-4" result="pass"/><test-case name="fn-month-from-date-5" result="pass"/><test-case name="fn-month-from-date-6" result="pass"/><test-case name="fn-month-from-date-7" result="pass"/><test-case name="fn-month-from-date-8" result="pass"/><test-case name="fn-month-from-date-9" result="pass"/><test-case name="fn-month-from-date-10" result="pass"/><test-case name="fn-month-from-date-11" result="pass"/><test-case name="fn-month-from-date-12" result="pass"/><test-case name="fn-month-from-date-13" result="pass"/><test-case name="fn-month-from-date-14" result="pass"/><test-case name="fn-month-from-date-15" result="pass"/><test-case name="fn-month-from-date-16" result="pass"/><test-case name="fn-month-from-date-17" result="pass"/><test-case name="fn-month-from-date-18" result="pass"/><test-case name="fn-month-from-date-19" result="pass"/><test-case name="K-MonthFromDateFunc-1" result="pass"/><test-case name="K-MonthFromDateFunc-2" result="pass"/><test-case name="K-MonthFromDateFunc-3" result="pass"/><test-case name="K-MonthFromDateFunc-4" result="pass"/><test-case name="K-MonthFromDateFunc-5" result="pass"/><test-case name="fn-day-from-date1args-1" result="pass"/><test-case name="fn-day-from-date1args-2" result="pass"/><test-case name="fn-day-from-date1args-3" result="pass"/><test-case name="fn-day-from-date-1" result="pass"/><test-case name="fn-day-from-date-2" result="pass"/><test-case name="fn-day-from-date-3" result="pass"/><test-case name="fn-day-from-date-4" result="pass"/><test-case name="fn-day-from-date-5" result="pass"/><test-case name="fn-day-from-date-6" result="pass"/><test-case name="fn-day-from-date-7" result="pass"/><test-case name="fn-day-from-date-8" result="pass"/><test-case name="fn-day-from-date-9" result="pass"/><test-case name="fn-day-from-date-10" result="pass"/><test-case name="fn-day-from-date-11" result="pass"/><test-case name="fn-day-from-date-12" result="pass"/><test-case name="fn-day-from-date-13" result="pass"/><test-case name="fn-day-from-date-14" result="pass"/><test-case name="fn-day-from-date-15" result="pass"/><test-case name="fn-day-from-date-16" result="pass"/><test-case name="fn-day-from-date-17" result="pass"/><test-case name="fn-day-from-date-18" result="pass"/><test-case name="fn-day-from-date-19" result="pass"/><test-case name="K-DayFromDateFunc-1" result="pass"/><test-case name="K-DayFromDateFunc-2" result="pass"/><test-case name="K-DayFromDateFunc-3" result="pass"/><test-case name="K-DayFromDateFunc-4" result="pass"/><test-case name="K-DayFromDateFunc-5" result="pass"/><test-case name="fn-timezone-from-date-1" result="pass"/><test-case name="fn-timezone-from-date-2" result="pass"/><test-case name="fn-timezone-from-date-3" result="pass"/><test-case name="fn-timezone-from-date-4" result="pass"/><test-case name="fn-timezone-from-date-5" result="pass"/><test-case name="fn-timezone-from-date-6" result="pass"/><test-case name="fn-timezone-from-date-7" result="pass"/><test-case name="fn-timezone-from-date-8" result="pass"/><test-case name="fn-timezone-from-date-9" result="pass"/><test-case name="fn-timezone-from-date-10" result="pass"/><test-case name="fn-timezone-from-date-11" result="pass"/><test-case name="fn-timezone-from-date-12" result="pass"/><test-case name="fn-timezone-from-date-13" result="pass"/><test-case name="fn-timezone-from-date-14" result="pass"/><test-case name="fn-timezone-from-date-15" result="pass"/><test-case name="fn-timezone-from-date-16" result="pass"/><test-case name="fn-timezone-from-date-17" result="pass"/><test-case name="fn-timezone-from-date-18" result="pass"/><test-case name="fn-timezone-from-date-19" result="pass"/><test-case name="fn-timezone-from-date-20" result="pass"/><test-case name="K-TimezoneFromDateFunc-1" result="pass"/><test-case name="K-TimezoneFromDateFunc-2" result="pass"/><test-case name="K-TimezoneFromDateFunc-3" result="pass"/><test-case name="K-TimezoneFromDateFunc-4" result="pass"/><test-case name="K-TimezoneFromDateFunc-5" result="pass"/><test-case name="K-TimezoneFromDateFunc-6" result="pass"/><test-case name="K-TimezoneFromDateFunc-7" result="pass"/><test-case name="fn-hours-from-time1args-1" result="pass"/><test-case name="fn-hours-from-time1args-2" result="pass"/><test-case name="fn-hours-from-time1args-3" result="pass"/><test-case name="fn-hours-from-time-1" result="pass"/><test-case name="fn-hours-from-time-2" result="pass"/><test-case name="fn-hours-from-time-3" result="pass"/><test-case name="fn-hours-from-time-4" result="pass"/><test-case name="fn-hours-from-time-5" result="pass"/><test-case name="fn-hours-from-time-6" result="pass"/><test-case name="fn-hours-from-time-7" result="pass"/><test-case name="fn-hours-from-time-8" result="pass"/><test-case name="fn-hours-from-time-9" result="pass"/><test-case name="fn-hours-from-time-10" result="pass"/><test-case name="fn-hours-from-time-11" result="pass"/><test-case name="fn-hours-from-time-12" result="pass"/><test-case name="fn-hours-from-time-13" result="pass"/><test-case name="fn-hours-from-time-14" result="pass"/><test-case name="fn-hours-from-time-15" result="pass"/><test-case name="fn-hours-from-time-16" result="pass"/><test-case name="fn-hours-from-time-17" result="pass"/><test-case name="fn-hours-from-time-18" result="pass"/><test-case name="fn-hours-from-time-19" result="pass"/><test-case name="K-HoursFromTimeFunc-1" result="pass"/><test-case name="K-HoursFromTimeFunc-2" result="pass"/><test-case name="K-HoursFromTimeFunc-3" result="pass"/><test-case name="K-HoursFromTimeFunc-4" result="pass"/><test-case name="K-HoursFromTimeFunc-5" result="pass"/><test-case name="fn-minutes-from-time1args-1" result="pass"/><test-case name="fn-minutes-from-time1args-2" result="pass"/><test-case name="fn-minutes-from-time1args-3" result="pass"/><test-case name="fn-minutes-from-time-1" result="pass"/><test-case name="fn-minutes-from-time-2" result="pass"/><test-case name="fn-minutes-from-time-3" result="pass"/><test-case name="fn-minutes-from-time-4" result="pass"/><test-case name="fn-minutes-from-time-5" result="pass"/><test-case name="fn-minutes-from-time-6" result="pass"/><test-case name="fn-minutes-from-time-7" result="pass"/><test-case name="fn-minutes-from-time-8" result="pass"/><test-case name="fn-minutes-from-time-9" result="pass"/><test-case name="fn-minutes-from-time-10" result="pass"/><test-case name="fn-minutes-from-time-11" result="pass"/><test-case name="fn-minutes-from-time-12" result="pass"/><test-case name="fn-minutes-from-time-13" result="pass"/><test-case name="fn-minutes-from-time-14" result="pass"/><test-case name="fn-minutes-from-time-15" result="pass"/><test-case name="fn-minutes-from-time-16" result="pass"/><test-case name="fn-minutes-from-time-17" result="pass"/><test-case name="fn-minutes-from-time-18" result="pass"/><test-case name="fn-minutes-from-time-19" result="pass"/><test-case name="K-MinutesFromTimeFunc-1" result="pass"/><test-case name="K-MinutesFromTimeFunc-2" result="pass"/><test-case name="K-MinutesFromTimeFunc-3" result="pass"/><test-case name="K-MinutesFromTimeFunc-4" result="pass"/><test-case name="K-MinutesFromTimeFunc-5" result="pass"/><test-case name="fn-seconds-from-time1args-1" result="pass"/><test-case name="fn-seconds-from-time1args-2" result="pass"/><test-case name="fn-seconds-from-time1args-3" result="pass"/><test-case name="fn-seconds-from-time-1" result="pass"/><test-case name="fn-seconds-from-time-2" result="pass"/><test-case name="fn-seconds-from-time-3" result="pass"/><test-case name="fn-seconds-from-time-4" result="pass"/><test-case name="fn-seconds-from-time-5" result="pass"/><test-case name="fn-seconds-from-time-6" result="pass"/><test-case name="fn-seconds-from-time-7" result="pass"/><test-case name="fn-seconds-from-time-8" result="pass"/><test-case name="fn-seconds-from-time-9" result="pass"/><test-case name="fn-seconds-from-time-10" result="pass"/><test-case name="fn-seconds-from-time-11" result="pass"/><test-case name="fn-seconds-from-time-12" result="pass"/><test-case name="fn-seconds-from-time-13" result="pass"/><test-case name="fn-seconds-from-time-14" result="pass"/><test-case name="fn-seconds-from-time-15" result="pass"/><test-case name="fn-seconds-from-time-16" result="pass"/><test-case name="fn-seconds-from-time-17" result="pass"/><test-case name="fn-seconds-from-time-18" result="pass"/><test-case name="fn-seconds-from-time-19" result="pass"/><test-case name="K-SecondsFromTimeFunc-1" result="pass"/><test-case name="K-SecondsFromTimeFunc-2" result="pass"/><test-case name="K-SecondsFromTimeFunc-3" result="pass"/><test-case name="K-SecondsFromTimeFunc-4" result="pass"/><test-case name="K-SecondsFromTimeFunc-5" result="pass"/><test-case name="fn-timezone-from-time-1" result="pass"/><test-case name="fn-timezone-from-time-2" result="pass"/><test-case name="fn-timezone-from-time-3" result="pass"/><test-case name="fn-timezone-from-time-4" result="pass"/><test-case name="fn-timezone-from-time-5" result="pass"/><test-case name="fn-timezone-from-time-6" result="pass"/><test-case name="fn-timezone-from-time-7" result="pass"/><test-case name="fn-timezone-from-time-8" result="pass"/><test-case name="fn-timezone-from-time-9" result="pass"/><test-case name="fn-timezone-from-time-10" result="pass"/><test-case name="fn-timezone-from-time-11" result="pass"/><test-case name="fn-timezone-from-time-12" result="pass"/><test-case name="fn-timezone-from-time-13" result="pass"/><test-case name="fn-timezone-from-time-14" result="pass"/><test-case name="fn-timezone-from-time-15" result="pass"/><test-case name="fn-timezone-from-time-16" result="pass"/><test-case name="fn-timezone-from-time-17" result="pass"/><test-case name="fn-timezone-from-time-18" result="pass"/><test-case name="fn-timezone-from-time-19" result="pass"/><test-case name="fn-timezone-from-time-20" result="pass"/><test-case name="K-TimezoneFromTimeFunc-1" result="pass"/><test-case name="K-TimezoneFromTimeFunc-2" result="pass"/><test-case name="K-TimezoneFromTimeFunc-3" result="pass"/><test-case name="K-TimezoneFromTimeFunc-4" result="pass"/><test-case name="K-TimezoneFromTimeFunc-5" result="pass"/><test-case name="K-TimezoneFromTimeFunc-6" result="pass"/><test-case name="K-TimezoneFromTimeFunc-7" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone1args-1" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone1args-2" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone1args-3" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-1" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-2" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-3" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-4" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-5" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-6" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-7" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-8" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-9" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-10" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-11" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-12" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-13" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-14" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-15" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-16" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-17" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-18" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-19" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-20" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-21" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-22" result="pass"/><test-case name="fn-adjust-dateTime-to-timezone-23" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-1" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-2" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-3" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-4" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-5" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-6" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-7" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-8" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-9" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-10" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-11" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-12" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-13" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-14" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-15" result="pass"/><test-case name="K-AdjDateTimeToTimezoneFunc-16" result="pass"/><test-case name="K2-AdjDateTimeToTimezoneFunc-1" result="pass"/><test-case name="fn-adjust-date-to-timezone1args-1" result="pass"/><test-case name="fn-adjust-date-to-timezone1args-2" result="pass"/><test-case name="fn-adjust-date-to-timezone1args-3" result="pass"/><test-case name="fn-adjust-date-to-timezone-1" result="pass"/><test-case name="fn-adjust-date-to-timezone-2" result="pass"/><test-case name="fn-adjust-date-to-timezone-3" result="pass"/><test-case name="fn-adjust-date-to-timezone-4" result="pass"/><test-case name="fn-adjust-date-to-timezone-5" result="pass"/><test-case name="fn-adjust-date-to-timezone-6" result="pass"/><test-case name="fn-adjust-date-to-timezone-7" result="pass"/><test-case name="fn-adjust-date-to-timezone-9" result="pass"/><test-case name="fn-adjust-date-to-timezone-10" result="pass"/><test-case name="fn-adjust-date-to-timezone-11" result="pass"/><test-case name="fn-adjust-date-to-timezone-12" result="pass"/><test-case name="fn-adjust-date-to-timezone-13" result="pass"/><test-case name="fn-adjust-date-to-timezone-14" result="pass"/><test-case name="fn-adjust-date-to-timezone-15" result="pass"/><test-case name="fn-adjust-date-to-timezone-16" result="pass"/><test-case name="fn-adjust-date-to-timezone-17" result="pass"/><test-case name="fn-adjust-date-to-timezone-18" result="pass"/><test-case name="fn-adjust-date-to-timezone-19" result="pass"/><test-case name="fn-adjust-date-to-timezone-20" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-1" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-2" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-3" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-4" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-5" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-6" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-7" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-8" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-9" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-10" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-11" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-12" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-13" result="pass"/><test-case name="K-AdjDateToTimezoneFunc-14" result="pass"/><test-case name="fn-adjust-time-to-timezone1args-1" result="pass"/><test-case name="fn-adjust-time-to-timezone1args-2" result="pass"/><test-case name="fn-adjust-time-to-timezone1args-3" result="pass"/><test-case name="fn-adjust-time-to-timezone-1" result="pass"/><test-case name="fn-adjust-time-to-timezone-2" result="pass"/><test-case name="fn-adjust-time-to-timezone-3" result="pass"/><test-case name="fn-adjust-time-to-timezone-4" result="pass"/><test-case name="fn-adjust-time-to-timezone-5" result="pass"/><test-case name="fn-adjust-time-to-timezone-6" result="pass"/><test-case name="fn-adjust-time-to-timezone-7" result="pass"/><test-case name="fn-adjust-time-to-timezone-8" result="pass"/><test-case name="fn-adjust-time-to-timezone-9" result="pass"/><test-case name="fn-adjust-time-to-timezone-10" result="pass"/><test-case name="fn-adjust-time-to-timezone-11" result="pass"/><test-case name="fn-adjust-time-to-timezone-12" result="pass"/><test-case name="fn-adjust-time-to-timezone-13" result="pass"/><test-case name="fn-adjust-time-to-timezone-14" result="pass"/><test-case name="fn-adjust-time-to-timezone-15" result="pass"/><test-case name="fn-adjust-time-to-timezone-16" result="pass"/><test-case name="fn-adjust-time-to-timezone-17" result="pass"/><test-case name="fn-adjust-time-to-timezone-18" result="pass"/><test-case name="fn-adjust-time-to-timezone-19" result="pass"/><test-case name="fn-adjust-time-to-timezone-20" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-1" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-2" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-3" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-4" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-5" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-6" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-7" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-8" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-9" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-10" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-11" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-12" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-13" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-14" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-15" result="pass"/><test-case name="K-AdjTimeToTimezoneFunc-16" result="pass"/><test-case name="fn-resolve-qname-1" result="pass"/><test-case name="fn-resolve-qname-2" result="pass"/><test-case name="fn-resolve-qname-3" result="pass"/><test-case name="fn-resolve-qname-4" result="pass"/><test-case name="fn-resolve-qname-5" result="pass"/><test-case name="fn-resolve-qname-6" result="pass"/><test-case name="fn-resolve-qname-7" result="pass"/><test-case name="fn-resolve-qname-8" result="pass"/><test-case name="fn-resolve-qname-9" result="pass"/><test-case name="fn-resolve-qname-10" result="pass"/><test-case name="fn-resolve-qname-11" result="pass"/><test-case name="fn-resolve-qname-12" result="pass"/><test-case name="fn-resolve-qname-13" result="pass"/><test-case name="fn-resolve-qname-14" result="pass"/><test-case name="fn-resolve-qname-15" result="pass"/><test-case name="fn-resolve-qname-16" result="pass"/><test-case name="fn-resolve-qname-17" result="pass"/><test-case name="fn-resolve-qname-18" result="pass"/><test-case name="fn-resolve-qname-19" result="pass"/><test-case name="fn-resolve-qname-20" result="pass"/><test-case name="fn-resolve-qname-21" result="pass"/><test-case name="fn-resolve-qname-22" result="pass"/><test-case name="K-ResolveQNameConstructFunc-1" result="pass"/><test-case name="K-ResolveQNameConstructFunc-2" result="pass"/><test-case name="K-ResolveQNameConstructFunc-3" result="pass"/><test-case name="K-ResolveQNameConstructFunc-4" result="pass"/><test-case name="ExpandedQNameConstructFunc001" result="pass"/><test-case name="ExpandedQNameConstructFunc002" result="pass"/><test-case name="ExpandedQNameConstructFunc003" result="pass"/><test-case name="ExpandedQNameConstructFunc004" result="pass"/><test-case name="ExpandedQNameConstructFunc005" result="pass"/><test-case name="ExpandedQNameConstructFunc006" result="pass"/><test-case name="ExpandedQNameConstructFunc007" result="pass"/><test-case name="ExpandedQNameConstructFunc008" result="pass"/><test-case name="ExpandedQNameConstructFunc009" result="pass"/><test-case name="ExpandedQNameConstructFunc010" result="pass"/><test-case name="ExpandedQNameConstructFunc011" result="pass"/><test-case name="ExpandedQNameConstructFunc012" result="pass"/><test-case name="ExpandedQNameConstructFunc013" result="pass"/><test-case name="ExpandedQNameConstructFunc014" result="pass"/><test-case name="ExpandedQNameConstructFunc015" result="pass"/><test-case name="ExpandedQNameConstructFunc016" result="pass"/><test-case name="ExpandedQNameConstructFunc017" result="pass"/><test-case name="ExpandedQNameConstructFunc018" result="pass"/><test-case name="ExpandedQNameConstructFunc019" result="pass"/><test-case name="ExpandedQNameConstructFunc020" result="pass"/><test-case name="ExpandedQNameConstructFunc021" result="pass"/><test-case name="qName-1" result="pass"/><test-case name="K-ExpandedQNameConstructFunc-1" result="pass"/><test-case name="K-ExpandedQNameConstructFunc-2" result="pass"/><test-case name="K-ExpandedQNameConstructFunc-3" result="pass"/><test-case name="K-ExpandedQNameConstructFunc-4" result="pass"/><test-case name="K-ExpandedQNameConstructFunc-5" result="pass"/><test-case name="K-ExpandedQNameConstructFunc-6" result="pass"/><test-case name="K-ExpandedQNameConstructFunc-7" result="pass"/><test-case name="K-ExpandedQNameConstructFunc-8" result="pass"/><test-case name="K-ExpandedQNameConstructFunc-9" result="pass"/><test-case name="K-ExpandedQNameConstructFunc-10" result="pass"/><test-case name="K2-ExpandedQNameConstructFunc-1" result="pass"/><test-case name="LocalNameFromQNameFunc001" result="pass"/><test-case name="LocalNameFromQNameFunc002" result="pass"/><test-case name="LocalNameFromQNameFunc003" result="pass"/><test-case name="LocalNameFromQNameFunc004" result="pass"/><test-case name="LocalNameFromQNameFunc005" result="pass"/><test-case name="LocalNameFromQNameFunc006" result="pass"/><test-case name="LocalNameFromQNameFunc007" result="pass"/><test-case name="LocalNameFromQNameFunc009" result="pass"/><test-case name="LocalNameFromQNameFunc010" result="pass"/><test-case name="LocalNameFromQNameFunc011" result="pass"/><test-case name="LocalNameFromQNameFunc012" result="pass"/><test-case name="LocalNameFromQNameFunc013" result="pass"/><test-case name="LocalNameFromQNameFunc014" result="pass"/><test-case name="LocalNameFromQNameFunc015" result="pass"/><test-case name="LocalNameFromQNameFunc016" result="pass"/><test-case name="LocalNameFromQNameFunc017" result="pass"/><test-case name="LocalNameFromQNameFunc018" result="pass"/><test-case name="LocalNameFromQNameFunc019" result="pass"/><test-case name="LocalNameFromQNameFunc020" result="pass"/><test-case name="LocalNameFromQNameFunc021" result="pass"/><test-case name="K-LocalNameFromQNameFunc-1" result="pass"/><test-case name="K-LocalNameFromQNameFunc-2" result="pass"/><test-case name="K-LocalNameFromQNameFunc-3" result="pass"/><test-case name="K-LocalNameFromQNameFunc-4" result="pass"/><test-case name="NamespaceURIFromQNameFunc001" result="pass"/><test-case name="NamespaceURIFromQNameFunc002" result="pass"/><test-case name="NamespaceURIFromQNameFunc003" result="pass"/><test-case name="NamespaceURIFromQNameFunc004" result="pass"/><test-case name="NamespaceURIFromQNameFunc005" result="pass"/><test-case name="NamespaceURIFromQNameFunc006" result="pass"/><test-case name="NamespaceURIFromQNameFunc007" result="pass"/><test-case name="NamespaceURIFromQNameFunc009" result="pass"/><test-case name="NamespaceURIFromQNameFunc010" result="pass"/><test-case name="NamespaceURIFromQNameFunc011" result="pass"/><test-case name="NamespaceURIFromQNameFunc012" result="pass"/><test-case name="NamespaceURIFromQNameFunc013" result="pass"/><test-case name="NamespaceURIFromQNameFunc014" result="pass"/><test-case name="NamespaceURIFromQNameFunc015" result="pass"/><test-case name="NamespaceURIFromQNameFunc016" result="pass"/><test-case name="NamespaceURIFromQNameFunc017" result="pass"/><test-case name="NamespaceURIFromQNameFunc018" result="pass"/><test-case name="NamespaceURIFromQNameFunc019" result="pass"/><test-case name="NamespaceURIFromQNameFunc020" result="pass"/><test-case name="NamespaceURIFromQNameFunc021" result="pass"/><test-case name="K-NamespaceURIFromQNameFunc-1" result="pass"/><test-case name="K-NamespaceURIFromQNameFunc-2" result="pass"/><test-case name="K-NamespaceURIFromQNameFunc-3" result="pass"/><test-case name="K-NamespaceURIFromQNameFunc-4" result="pass"/><test-case name="K-NamespaceURIFromQNameFunc-5" result="pass"/><test-case name="K2-NamespaceURIFromQNameFunc-1" result="pass"/><test-case name="K2-NamespaceURIFromQNameFunc-2" result="pass"/><test-case name="K2-NamespaceURIFromQNameFunc-3" result="pass"/><test-case name="K2-NamespaceURIFromQNameFunc-4" result="pass"/><test-case name="fn-namespace-uri-for-prefix-1" result="pass"/><test-case name="fn-namespace-uri-for-prefix-2" result="pass"/><test-case name="fn-namespace-uri-for-prefix-3" result="pass"/><test-case name="fn-namespace-uri-for-prefix-4" result="pass"/><test-case name="fn-namespace-uri-for-prefix-5" result="pass"/><test-case name="fn-namespace-uri-for-prefix-6" result="pass"/><test-case name="fn-namespace-uri-for-prefix-7" result="pass"/><test-case name="fn-namespace-uri-for-prefix-8" result="pass"/><test-case name="fn-namespace-uri-for-prefix-9" result="pass"/><test-case name="fn-namespace-uri-for-prefix-10" result="pass"/><test-case name="fn-namespace-uri-for-prefix-11" result="pass"/><test-case name="fn-namespace-uri-for-prefix-12" result="pass"/><test-case name="fn-namespace-uri-for-prefix-13" result="pass"/><test-case name="fn-namespace-uri-for-prefix-14" result="pass"/><test-case name="fn-namespace-uri-for-prefix-15" result="pass"/><test-case name="fn-namespace-uri-for-prefix-16" result="pass"/><test-case name="fn-namespace-uri-for-prefix-17" result="pass"/><test-case name="fn-namespace-uri-for-prefix-18" result="pass"/><test-case name="fn-namespace-uri-for-prefix-19" result="pass"/><test-case name="fn-namespace-uri-for-prefix-20" result="pass"/><test-case name="fn-namespace-uri-for-prefix-21" result="pass"/><test-case name="K-NamespaceURIForPrefixFunc-1" result="pass"/><test-case name="K-NamespaceURIForPrefixFunc-2" result="pass"/><test-case name="K2-NamespaceURIForPrefixFunc-1" result="pass"/><test-case name="K2-NamespaceURIForPrefixFunc-2" result="pass"/><test-case name="K2-NamespaceURIForPrefixFunc-3" result="pass"/><test-case name="fn-in-scope-prefixes-1" result="pass"/><test-case name="fn-in-scope-prefixes-2" result="pass"/><test-case name="fn-in-scope-prefixes-3" result="pass"/><test-case name="fn-in-scope-prefixes-4" result="pass"/><test-case name="fn-in-scope-prefixes-5" result="pass"/><test-case name="fn-in-scope-prefixes-6" result="pass"/><test-case name="fn-in-scope-prefixes-7" result="pass"/><test-case name="fn-in-scope-prefixes-8" result="pass"/><test-case name="fn-in-scope-prefixes-9" result="pass"/><test-case name="fn-in-scope-prefixes-10" result="pass"/><test-case name="fn-in-scope-prefixes-11" result="pass"/><test-case name="fn-in-scope-prefixes-12" result="pass"/><test-case name="fn-in-scope-prefixes-13" result="pass"/><test-case name="fn-in-scope-prefixes-14" result="pass"/><test-case name="fn-in-scope-prefixes-15" result="pass"/><test-case name="fn-in-scope-prefixes-16" result="pass"/><test-case name="fn-in-scope-prefixes-17" result="pass"/><test-case name="fn-in-scope-prefixes-18" result="pass"/><test-case name="fn-in-scope-prefixes-19" result="pass"/><test-case name="fn-in-scope-prefixes-20" result="pass"/><test-case name="K-InScopePrefixesFunc-1" result="pass"/><test-case name="K-InScopePrefixesFunc-2" result="pass"/><test-case name="K2-InScopePrefixesFunc-1" result="pass"/><test-case name="K2-InScopePrefixesFunc-2" result="pass"/><test-case name="K2-InScopePrefixesFunc-3" result="pass"/><test-case name="K2-InScopePrefixesFunc-4" result="pass"/><test-case name="K2-InScopePrefixesFunc-5" result="pass"/><test-case name="K2-InScopePrefixesFunc-6" result="pass"/><test-case name="K2-InScopePrefixesFunc-7" result="pass"/><test-case name="K2-InScopePrefixesFunc-8" result="pass"/><test-case name="K2-InScopePrefixesFunc-9" result="pass"/><test-case name="K2-InScopePrefixesFunc-10" result="pass"/><test-case name="K2-InScopePrefixesFunc-11" result="pass"/><test-case name="K2-InScopePrefixesFunc-12" result="pass"/><test-case name="K2-InScopePrefixesFunc-13" result="pass"/><test-case name="K2-InScopePrefixesFunc-14" result="pass"/><test-case name="K2-InScopePrefixesFunc-15" result="pass"/><test-case name="K2-InScopePrefixesFunc-16" result="pass"/><test-case name="K2-InScopePrefixesFunc-17" result="pass"/><test-case name="K2-InScopePrefixesFunc-18" result="fail"/><test-case name="K2-InScopePrefixesFunc-19" result="pass"/><test-case name="K2-InScopePrefixesFunc-20" result="pass"/><test-case name="K2-InScopePrefixesFunc-21" result="pass"/><test-case name="K2-InScopePrefixesFunc-22" result="pass"/><test-case name="K2-InScopePrefixesFunc-23" result="pass"/><test-case name="K2-InScopePrefixesFunc-24" result="pass"/><test-case name="K2-InScopePrefixesFunc-25" result="pass"/><test-case name="K2-InScopePrefixesFunc-26" result="pass"/><test-case name="K2-InScopePrefixesFunc-27" result="pass"/><test-case name="K2-InScopePrefixesFunc-28" result="pass"/><test-case name="K2-InScopePrefixesFunc-29" result="pass"/><test-case name="K2-InScopePrefixesFunc-30" result="pass"/><test-case name="fn-name-1" result="pass"/><test-case name="fn-name-2" result="pass"/><test-case name="fn-name-3" result="pass"/><test-case name="fn-name-4" result="pass"/><test-case name="fn-name-5" result="pass"/><test-case name="fn-name-6" result="pass"/><test-case name="fn-name-7" result="pass"/><test-case name="fn-name-8" result="pass"/><test-case name="fn-name-9" result="pass"/><test-case name="fn-name-10" result="pass"/><test-case name="fn-name-11" result="pass"/><test-case name="fn-name-12" result="pass"/><test-case name="fn-name-13" result="pass"/><test-case name="fn-name-14" result="pass"/><test-case name="fn-name-15" result="pass"/><test-case name="fn-name-16" result="pass"/><test-case name="fn-name-17" result="pass"/><test-case name="fn-name-18" result="pass"/><test-case name="fn-name-19" result="pass"/><test-case name="fn-name-20" result="pass"/><test-case name="fn-name-21" result="pass"/><test-case name="fn-name-22" result="pass"/><test-case name="fn-name-23" result="pass"/><test-case name="K-NameFunc-1" result="pass"/><test-case name="K-NameFunc-2" result="pass"/><test-case name="K-NameFunc-3" result="pass"/><test-case name="fn-local-name-1" result="pass"/><test-case name="fn-local-name-2" result="pass"/><test-case name="fn-local-name-3" result="pass"/><test-case name="fn-local-name-4" result="pass"/><test-case name="fn-local-name-5" result="pass"/><test-case name="fn-local-name-6" result="pass"/><test-case name="fn-local-name-7" result="pass"/><test-case name="fn-local-name-8" result="pass"/><test-case name="fn-local-name-9" result="pass"/><test-case name="fn-local-name-10" result="pass"/><test-case name="fn-local-name-11" result="pass"/><test-case name="fn-local-name-12" result="pass"/><test-case name="fn-local-name-13" result="pass"/><test-case name="fn-local-name-14" result="pass"/><test-case name="fn-local-name-15" result="pass"/><test-case name="fn-local-name-16" result="pass"/><test-case name="fn-local-name-17" result="pass"/><test-case name="fn-local-name-18" result="pass"/><test-case name="fn-local-name-19" result="pass"/><test-case name="fn-local-name-20" result="pass"/><test-case name="fn-local-name-21" result="pass"/><test-case name="fn-local-name-22" result="pass"/><test-case name="fn-local-name-23" result="pass"/><test-case name="K-NodeLocalNameFunc-1" result="pass"/><test-case name="K-NodeLocalNameFunc-2" result="pass"/><test-case name="K-NodeLocalNameFunc-3" result="pass"/><test-case name="K2-NodeLocalNameFunc-1" result="pass"/><test-case name="fn-namespace-uri-1" result="pass"/><test-case name="fn-namespace-uri-2" result="pass"/><test-case name="fn-namespace-uri-3" result="pass"/><test-case name="fn-namespace-uri-4" result="pass"/><test-case name="fn-namespace-uri-5" result="pass"/><test-case name="fn-namespace-uri-6" result="pass"/><test-case name="fn-namespace-uri-7" result="pass"/><test-case name="fn-namespace-uri-8" result="pass"/><test-case name="fn-namespace-uri-9" result="pass"/><test-case name="fn-namespace-uri-10" result="pass"/><test-case name="fn-namespace-uri-11" result="pass"/><test-case name="fn-namespace-uri-12" result="pass"/><test-case name="fn-namespace-uri-13" result="pass"/><test-case name="fn-namespace-uri-14" result="pass"/><test-case name="fn-namespace-uri-15" result="pass"/><test-case name="fn-namespace-uri-16" result="pass"/><test-case name="fn-namespace-uri-17" result="pass"/><test-case name="fn-namespace-uri-18" result="pass"/><test-case name="fn-namespace-uri-19" result="pass"/><test-case name="fn-namespace-uri-20" result="pass"/><test-case name="fn-namespace-uri-21" result="pass"/><test-case name="fn-namespace-uri-22" result="pass"/><test-case name="fn-namespace-uri-23" result="pass"/><test-case name="fn-namespace-uri-24" result="pass"/><test-case name="fn-namespace-uri-25" result="pass"/><test-case name="fn-namespace-uri-26" result="pass"/><test-case name="K-NodeNamespaceURIFunc-1" result="pass"/><test-case name="K-NodeNamespaceURIFunc-2" result="pass"/><test-case name="K-NodeNamespaceURIFunc-3" result="pass"/><test-case name="K2-NodeNamespaceURIFunc-1" result="pass"/><test-case name="K2-NodeNamespaceURIFunc-2" result="pass"/><test-case name="K2-NodeNamespaceURIFunc-3" result="pass"/><test-case name="fn-numberint1args-1" result="pass"/><test-case name="fn-numberint1args-2" result="pass"/><test-case name="fn-numberint1args-3" result="pass"/><test-case name="fn-numberintg1args-1" result="pass"/><test-case name="fn-numberintg1args-2" result="pass"/><test-case name="fn-numberintg1args-3" result="pass"/><test-case name="fn-numberdec1args-1" result="pass"/><test-case name="fn-numberdec1args-2" result="pass"/><test-case name="fn-numberdec1args-3" result="pass"/><test-case name="fn-numberdbl1args-1" result="pass"/><test-case name="fn-numberdbl1args-2" result="pass"/><test-case name="fn-numberdbl1args-3" result="pass"/><test-case name="fn-numberflt1args-1" result="fail"/><test-case name="fn-numberflt1args-2" result="pass"/><test-case name="fn-numberflt1args-3" result="fail"/><test-case name="fn-numberlng1args-1" result="pass"/><test-case name="fn-numberlng1args-2" result="pass"/><test-case name="fn-numberlng1args-3" result="pass"/><test-case name="fn-numberusht1args-1" result="pass"/><test-case name="fn-numberusht1args-2" result="pass"/><test-case name="fn-numberusht1args-3" result="pass"/><test-case name="fn-numbernint1args-1" result="pass"/><test-case name="fn-numbernint1args-2" result="pass"/><test-case name="fn-numbernint1args-3" result="pass"/><test-case name="fn-numberpint1args-1" result="pass"/><test-case name="fn-numberpint1args-2" result="pass"/><test-case name="fn-numberpint1args-3" result="pass"/><test-case name="fn-numberulng1args-1" result="pass"/><test-case name="fn-numberulng1args-2" result="pass"/><test-case name="fn-numberulng1args-3" result="pass"/><test-case name="fn-numbernpi1args-1" result="pass"/><test-case name="fn-numbernpi1args-2" result="pass"/><test-case name="fn-numbernpi1args-3" result="pass"/><test-case name="fn-numbernni1args-1" result="pass"/><test-case name="fn-numbernni1args-2" result="pass"/><test-case name="fn-numbernni1args-3" result="pass"/><test-case name="fn-numbersht1args-1" result="pass"/><test-case name="fn-numbersht1args-2" result="pass"/><test-case name="fn-numbersht1args-3" result="pass"/><test-case name="fn-number-1" result="pass"/><test-case name="fn-number-2" result="pass"/><test-case name="fn-number-3" result="pass"/><test-case name="fn-number-4" result="pass"/><test-case name="K-NodeNumberFunc-1" result="pass"/><test-case name="K-NodeNumberFunc-2" result="pass"/><test-case name="K-NodeNumberFunc-3" result="pass"/><test-case name="K-NodeNumberFunc-4" result="pass"/><test-case name="K-NodeNumberFunc-5" result="pass"/><test-case name="K-NodeNumberFunc-6" result="pass"/><test-case name="K-NodeNumberFunc-7" result="pass"/><test-case name="K-NodeNumberFunc-8" result="pass"/><test-case name="K-NodeNumberFunc-9" result="pass"/><test-case name="K-NodeNumberFunc-10" result="pass"/><test-case name="K-NodeNumberFunc-11" result="pass"/><test-case name="K-NodeNumberFunc-12" result="pass"/><test-case name="K-NodeNumberFunc-13" result="pass"/><test-case name="K-NodeNumberFunc-14" result="pass"/><test-case name="K-NodeNumberFunc-15" result="pass"/><test-case name="K-NodeNumberFunc-16" result="pass"/><test-case name="K-NodeNumberFunc-17" result="pass"/><test-case name="fn-lang1args-1" result="pass"/><test-case name="fn-lang1args-2" result="pass"/><test-case name="fn-lang1args-3" result="pass"/><test-case name="fn-lang-1" result="pass"/><test-case name="fn-lang-2" result="pass"/><test-case name="fn-lang-3" result="pass"/><test-case name="fn-lang-4" result="pass"/><test-case name="fn-lang-5" result="pass"/><test-case name="fn-lang-6" result="pass"/><test-case name="fn-lang-7" result="pass"/><test-case name="fn-lang-8" result="pass"/><test-case name="fn-lang-9" result="pass"/><test-case name="fn-lang-10" result="pass"/><test-case name="fn-lang-11" result="pass"/><test-case name="fn-lang-12" result="pass"/><test-case name="fn-lang-13" result="pass"/><test-case name="fn-lang-14" result="pass"/><test-case name="fn-lang-15" result="pass"/><test-case name="fn-lang-16" result="pass"/><test-case name="fn-lang-17" result="pass"/><test-case name="fn-lang-18" result="pass"/><test-case name="fn-lang-19" result="pass"/><test-case name="fn-lang-20" result="pass"/><test-case name="fn-lang-21" result="pass"/><test-case name="fn-lang-22" result="pass"/><test-case name="K-NodeLangFunc-1" result="pass"/><test-case name="K-NodeLangFunc-2" result="pass"/><test-case name="K-NodeLangFunc-3" result="pass"/><test-case name="K-NodeLangFunc-4" result="pass"/><test-case name="K2-NodeLangFunc-1" result="pass"/><test-case name="K2-NodeLangFunc-2" result="pass"/><test-case name="K2-NodeLangFunc-3" result="pass"/><test-case name="K2-NodeLangFunc-4" result="pass"/><test-case name="K2-NodeLangFunc-5" result="pass"/><test-case name="K2-NodeLangFunc-6" result="pass"/><test-case name="fn-root-1" result="pass"/><test-case name="fn-root-2" result="pass"/><test-case name="fn-root-3" result="pass"/><test-case name="fn-root-4" result="pass"/><test-case name="fn-root-5" result="pass"/><test-case name="fn-root-6" result="pass"/><test-case name="fn-root-7" result="pass"/><test-case name="fn-root-8" result="pass"/><test-case name="fn-root-9" result="pass"/><test-case name="fn-root-10" result="pass"/><test-case name="fn-root-11" result="pass"/><test-case name="fn-root-12" result="pass"/><test-case name="fn-root-13" result="pass"/><test-case name="fn-root-14" result="pass"/><test-case name="fn-root-15" result="pass"/><test-case name="fn-root-16" result="pass"/><test-case name="fn-root-17" result="pass"/><test-case name="fn-root-18" result="pass"/><test-case name="fn-root-19" result="pass"/><test-case name="fn-root-20" result="pass"/><test-case name="fn-root-21" result="pass"/><test-case name="fn-root-22" result="pass"/><test-case name="fn-root-23" result="pass"/><test-case name="fn-root-24" result="pass"/><test-case name="K-NodeRootFunc-1" result="pass"/><test-case name="K-NodeRootFunc-2" result="pass"/><test-case name="K-NodeRootFunc-3" result="pass"/><test-case name="K-NodeRootFunc-4" result="pass"/><test-case name="K2-NodeRootFunc-1" result="pass"/><test-case name="K2-NodeRootFunc-2" result="pass"/><test-case name="K2-NodeRootFunc-3" result="pass"/><test-case name="K2-NodeRootFunc-4" result="pass"/><test-case name="K2-NodeRootFunc-5" result="pass"/><test-case name="K2-NodeRootFunc-6" result="pass"/><test-case name="K2-NodeRootFunc-7" result="pass"/><test-case name="K2-NodeRootFunc-8" result="pass"/><test-case name="fn-booleanint1args-1" result="pass"/><test-case name="fn-booleanint1args-2" result="pass"/><test-case name="fn-booleanint1args-3" result="pass"/><test-case name="fn-booleanintg1args-1" result="pass"/><test-case name="fn-booleanintg1args-2" result="pass"/><test-case name="fn-booleanintg1args-3" result="pass"/><test-case name="fn-booleandec1args-1" result="pass"/><test-case name="fn-booleandec1args-2" result="pass"/><test-case name="fn-booleandec1args-3" result="pass"/><test-case name="fn-booleandbl1args-1" result="pass"/><test-case name="fn-booleandbl1args-2" result="pass"/><test-case name="fn-booleandbl1args-3" result="pass"/><test-case name="fn-booleanflt1args-1" result="pass"/><test-case name="fn-booleanflt1args-2" result="pass"/><test-case name="fn-booleanflt1args-3" result="pass"/><test-case name="fn-booleanlng1args-1" result="pass"/><test-case name="fn-booleanlng1args-2" result="pass"/><test-case name="fn-booleanlng1args-3" result="pass"/><test-case name="fn-booleanusht1args-1" result="pass"/><test-case name="fn-booleanusht1args-2" result="pass"/><test-case name="fn-booleanusht1args-3" result="pass"/><test-case name="fn-booleannint1args-1" result="pass"/><test-case name="fn-booleannint1args-2" result="pass"/><test-case name="fn-booleannint1args-3" result="pass"/><test-case name="fn-booleanpint1args-1" result="pass"/><test-case name="fn-booleanpint1args-2" result="pass"/><test-case name="fn-booleanpint1args-3" result="pass"/><test-case name="fn-booleanulng1args-1" result="pass"/><test-case name="fn-booleanulng1args-2" result="pass"/><test-case name="fn-booleanulng1args-3" result="pass"/><test-case name="fn-booleannpi1args-1" result="pass"/><test-case name="fn-booleannpi1args-2" result="pass"/><test-case name="fn-booleannpi1args-3" result="pass"/><test-case name="fn-booleannni1args-1" result="pass"/><test-case name="fn-booleannni1args-2" result="pass"/><test-case name="fn-booleannni1args-3" result="pass"/><test-case name="fn-booleansht1args-1" result="pass"/><test-case name="fn-booleansht1args-2" result="pass"/><test-case name="fn-booleansht1args-3" result="pass"/><test-case name="fn-boolean-mixed-args-001" result="pass"/><test-case name="fn-boolean-mixed-args-002" result="pass"/><test-case name="fn-boolean-mixed-args-003" result="pass"/><test-case name="fn-boolean-mixed-args-004" result="pass"/><test-case name="fn-boolean-mixed-args-005" result="pass"/><test-case name="fn-boolean-mixed-args-006" result="pass"/><test-case name="fn-boolean-mixed-args-007" result="pass"/><test-case name="fn-boolean-mixed-args-008" result="pass"/><test-case name="fn-boolean-mixed-args-009" result="pass"/><test-case name="fn-boolean-mixed-args-010" result="pass"/><test-case name="fn-boolean-mixed-args-011" result="pass"/><test-case name="fn-boolean-mixed-args-012" result="pass"/><test-case name="fn-boolean-mixed-args-013" result="pass"/><test-case name="fn-boolean-mixed-args-014" result="pass"/><test-case name="fn-boolean-mixed-args-015" result="pass"/><test-case name="fn-boolean-mixed-args-016" result="pass"/><test-case name="fn-boolean-mixed-args-017" result="pass"/><test-case name="fn-boolean-mixed-args-018" result="pass"/><test-case name="fn-boolean-mixed-args-019" result="pass"/><test-case name="fn-boolean-mixed-args-020" result="pass"/><test-case name="fn-boolean-mixed-args-021" result="pass"/><test-case name="fn-boolean-mixed-args-022" result="pass"/><test-case name="fn-boolean-mixed-args-023" result="pass"/><test-case name="fn-boolean-mixed-args-024" result="pass"/><test-case name="fn-boolean-mixed-args-025" result="pass"/><test-case name="fn-boolean-mixed-args-026" result="pass"/><test-case name="fn-boolean-mixed-args-027" result="pass"/><test-case name="fn-boolean-mixed-args-028" result="pass"/><test-case name="fn-boolean-mixed-args-029" result="pass"/><test-case name="fn-boolean-mixed-args-030" result="pass"/><test-case name="fn-boolean-mixed-args-031" result="pass"/><test-case name="fn-boolean-mixed-args-032" result="pass"/><test-case name="fn-boolean-mixed-args-033" result="pass"/><test-case name="fn-boolean-mixed-args-034" result="pass"/><test-case name="fn-boolean-mixed-args-035" result="pass"/><test-case name="fn-boolean-mixed-args-036" result="pass"/><test-case name="fn-boolean-mixed-args-037" result="pass"/><test-case name="fn-boolean-mixed-args-038" result="pass"/><test-case name="fn-boolean-mixed-args-039" result="pass"/><test-case name="fn-boolean-mixed-args-040" result="pass"/><test-case name="fn-boolean-mixed-args-041" result="pass"/><test-case name="fn-boolean-mixed-args-042" result="pass"/><test-case name="fn-boolean-mixed-args-043" result="pass"/><test-case name="fn-boolean-mixed-args-044" result="pass"/><test-case name="fn-boolean-mixed-args-045" result="pass"/><test-case name="fn-boolean-mixed-args-046" result="pass"/><test-case name="fn-boolean-mixed-args-047" result="pass"/><test-case name="fn-boolean-mixed-args-048" result="pass"/><test-case name="fn-boolean-mixed-args-049" result="pass"/><test-case name="fn-boolean-050" result="pass"/><test-case name="context-item-1" result="pass"/><test-case name="K-SeqBooleanFunc-1" result="pass"/><test-case name="K-SeqBooleanFunc-2" result="pass"/><test-case name="K-SeqBooleanFunc-3" result="pass"/><test-case name="K-SeqBooleanFunc-4" result="pass"/><test-case name="K-SeqBooleanFunc-5" result="pass"/><test-case name="K-SeqBooleanFunc-6" result="pass"/><test-case name="K-SeqBooleanFunc-7" result="pass"/><test-case name="K-SeqBooleanFunc-8" result="pass"/><test-case name="K-SeqBooleanFunc-9" result="pass"/><test-case name="K-SeqBooleanFunc-10" result="pass"/><test-case name="K-SeqBooleanFunc-11" result="pass"/><test-case name="K-SeqBooleanFunc-12" result="pass"/><test-case name="K-SeqBooleanFunc-13" result="pass"/><test-case name="K-SeqBooleanFunc-14" result="pass"/><test-case name="K-SeqBooleanFunc-15" result="pass"/><test-case name="K-SeqBooleanFunc-16" result="pass"/><test-case name="K-SeqBooleanFunc-17" result="pass"/><test-case name="K-SeqBooleanFunc-18" result="pass"/><test-case name="K-SeqBooleanFunc-19" result="pass"/><test-case name="K-SeqBooleanFunc-20" result="pass"/><test-case name="K-SeqBooleanFunc-21" result="pass"/><test-case name="K-SeqBooleanFunc-22" result="pass"/><test-case name="K-SeqBooleanFunc-23" result="pass"/><test-case name="K-SeqBooleanFunc-24" result="pass"/><test-case name="K-SeqBooleanFunc-25" result="pass"/><test-case name="K-SeqBooleanFunc-26" result="pass"/><test-case name="K-SeqBooleanFunc-27" result="pass"/><test-case name="K-SeqBooleanFunc-28" result="pass"/><test-case name="K-SeqBooleanFunc-29" result="pass"/><test-case name="K-SeqBooleanFunc-30" result="pass"/><test-case name="K-SeqBooleanFunc-31" result="pass"/><test-case name="K-SeqBooleanFunc-32" result="pass"/><test-case name="fn-indexof-mix-args-001" result="pass"/><test-case name="fn-indexof-mix-args-002" result="pass"/><test-case name="fn-indexof-mix-args-003" result="pass"/><test-case name="fn-indexof-mix-args-004" result="pass"/><test-case name="fn-indexof-mix-args-005" result="pass"/><test-case name="fn-indexof-mix-args-006" result="pass"/><test-case name="fn-indexof-mix-args-007" result="pass"/><test-case name="fn-indexof-mix-args-008" result="pass"/><test-case name="fn-indexof-mix-args-009" result="pass"/><test-case name="fn-indexof-mix-args-010" result="pass"/><test-case name="fn-indexof-mix-args-011" result="pass"/><test-case name="fn-indexof-mix-args-012" result="pass"/><test-case name="fn-indexof-mix-args-013" result="fail"/><test-case name="fn-indexof-mix-args-014" result="pass"/><test-case name="fn-indexof-mix-args-015" result="pass"/><test-case name="fn-indexof-mix-args-016" result="pass"/><test-case name="fn-indexof-mix-args-017" result="pass"/><test-case name="fn-indexof-mix-args-018" result="pass"/><test-case name="fn-indexof-mix-args-019" result="pass"/><test-case name="fn-indexof-mix-args-020" result="pass"/><test-case name="fn-indexof-mix-args-021" result="pass"/><test-case name="fn-indexof-mix-args-022" result="pass"/><test-case name="K-SeqIndexOfFunc-1" result="pass"/><test-case name="K-SeqIndexOfFunc-2" result="pass"/><test-case name="K-SeqIndexOfFunc-3" result="pass"/><test-case name="K-SeqIndexOfFunc-4" result="pass"/><test-case name="K-SeqIndexOfFunc-5" result="pass"/><test-case name="K-SeqIndexOfFunc-6" result="pass"/><test-case name="K-SeqIndexOfFunc-7" result="pass"/><test-case name="K-SeqIndexOfFunc-8" result="pass"/><test-case name="K-SeqIndexOfFunc-9" result="pass"/><test-case name="K-SeqIndexOfFunc-10" result="pass"/><test-case name="K-SeqIndexOfFunc-11" result="pass"/><test-case name="K-SeqIndexOfFunc-12" result="pass"/><test-case name="K-SeqIndexOfFunc-13" result="pass"/><test-case name="K-SeqIndexOfFunc-14" result="pass"/><test-case name="K-SeqIndexOfFunc-15" result="pass"/><test-case name="K-SeqIndexOfFunc-16" result="pass"/><test-case name="K-SeqIndexOfFunc-17" result="pass"/><test-case name="K-SeqIndexOfFunc-18" result="pass"/><test-case name="K-SeqIndexOfFunc-19" result="pass"/><test-case name="K-SeqIndexOfFunc-20" result="pass"/><test-case name="K-SeqIndexOfFunc-21" result="pass"/><test-case name="K-SeqIndexOfFunc-22" result="pass"/><test-case name="K-SeqIndexOfFunc-23" result="pass"/><test-case name="K-SeqIndexOfFunc-24" result="pass"/><test-case name="K-SeqIndexOfFunc-25" result="pass"/><test-case name="fn-emptyint1args-1" result="pass"/><test-case name="fn-emptyint1args-2" result="pass"/><test-case name="fn-emptyint1args-3" result="pass"/><test-case name="fn-emptyintg1args-1" result="pass"/><test-case name="fn-emptyintg1args-2" result="pass"/><test-case name="fn-emptyintg1args-3" result="pass"/><test-case name="fn-emptydec1args-1" result="pass"/><test-case name="fn-emptydec1args-2" result="pass"/><test-case name="fn-emptydec1args-3" result="pass"/><test-case name="fn-emptydbl1args-1" result="pass"/><test-case name="fn-emptydbl1args-2" result="pass"/><test-case name="fn-emptydbl1args-3" result="pass"/><test-case name="fn-emptyflt1args-1" result="pass"/><test-case name="fn-emptyflt1args-2" result="pass"/><test-case name="fn-emptyflt1args-3" result="pass"/><test-case name="fn-emptylng1args-1" result="pass"/><test-case name="fn-emptylng1args-2" result="pass"/><test-case name="fn-emptylng1args-3" result="pass"/><test-case name="fn-emptyusht1args-1" result="pass"/><test-case name="fn-emptyusht1args-2" result="pass"/><test-case name="fn-emptyusht1args-3" result="pass"/><test-case name="fn-emptynint1args-1" result="pass"/><test-case name="fn-emptynint1args-2" result="pass"/><test-case name="fn-emptynint1args-3" result="pass"/><test-case name="fn-emptypint1args-1" result="pass"/><test-case name="fn-emptypint1args-2" result="pass"/><test-case name="fn-emptypint1args-3" result="pass"/><test-case name="fn-emptyulng1args-1" result="pass"/><test-case name="fn-emptyulng1args-2" result="pass"/><test-case name="fn-emptyulng1args-3" result="pass"/><test-case name="fn-emptynpi1args-1" result="pass"/><test-case name="fn-emptynpi1args-2" result="pass"/><test-case name="fn-emptynpi1args-3" result="pass"/><test-case name="fn-emptynni1args-1" result="pass"/><test-case name="fn-emptynni1args-2" result="pass"/><test-case name="fn-emptynni1args-3" result="pass"/><test-case name="fn-emptysht1args-1" result="pass"/><test-case name="fn-emptysht1args-2" result="pass"/><test-case name="fn-emptysht1args-3" result="pass"/><test-case name="K-SeqEmptyFunc-1" result="pass"/><test-case name="K-SeqEmptyFunc-2" result="pass"/><test-case name="K-SeqEmptyFunc-3" result="pass"/><test-case name="K-SeqEmptyFunc-4" result="pass"/><test-case name="K-SeqEmptyFunc-5" result="pass"/><test-case name="K-SeqEmptyFunc-6" result="pass"/><test-case name="K-SeqEmptyFunc-7" result="pass"/><test-case name="K-SeqEmptyFunc-8" result="pass"/><test-case name="K-SeqEmptyFunc-9" result="pass"/><test-case name="fn-existsint1args-1" result="pass"/><test-case name="fn-existsint1args-2" result="pass"/><test-case name="fn-existsint1args-3" result="pass"/><test-case name="fn-existsintg1args-1" result="pass"/><test-case name="fn-existsintg1args-2" result="pass"/><test-case name="fn-existsintg1args-3" result="pass"/><test-case name="fn-existsdec1args-1" result="pass"/><test-case name="fn-existsdec1args-2" result="pass"/><test-case name="fn-existsdec1args-3" result="pass"/><test-case name="fn-existsdbl1args-1" result="pass"/><test-case name="fn-existsdbl1args-2" result="pass"/><test-case name="fn-existsdbl1args-3" result="pass"/><test-case name="fn-existsflt1args-1" result="pass"/><test-case name="fn-existsflt1args-2" result="pass"/><test-case name="fn-existsflt1args-3" result="pass"/><test-case name="fn-existslng1args-1" result="pass"/><test-case name="fn-existslng1args-2" result="pass"/><test-case name="fn-existslng1args-3" result="pass"/><test-case name="fn-existsusht1args-1" result="pass"/><test-case name="fn-existsusht1args-2" result="pass"/><test-case name="fn-existsusht1args-3" result="pass"/><test-case name="fn-existsnint1args-1" result="pass"/><test-case name="fn-existsnint1args-2" result="pass"/><test-case name="fn-existsnint1args-3" result="pass"/><test-case name="fn-existspint1args-1" result="pass"/><test-case name="fn-existspint1args-2" result="pass"/><test-case name="fn-existspint1args-3" result="pass"/><test-case name="fn-existsulng1args-1" result="pass"/><test-case name="fn-existsulng1args-2" result="pass"/><test-case name="fn-existsulng1args-3" result="pass"/><test-case name="fn-existsnpi1args-1" result="pass"/><test-case name="fn-existsnpi1args-2" result="pass"/><test-case name="fn-existsnpi1args-3" result="pass"/><test-case name="fn-existsnni1args-1" result="pass"/><test-case name="fn-existsnni1args-2" result="pass"/><test-case name="fn-existsnni1args-3" result="pass"/><test-case name="fn-existssht1args-1" result="pass"/><test-case name="fn-existssht1args-2" result="pass"/><test-case name="fn-existssht1args-3" result="pass"/><test-case name="K-SeqExistsFunc-1" result="pass"/><test-case name="K-SeqExistsFunc-2" result="pass"/><test-case name="K-SeqExistsFunc-3" result="pass"/><test-case name="K-SeqExistsFunc-4" result="pass"/><test-case name="K-SeqExistsFunc-5" result="pass"/><test-case name="K-SeqExistsFunc-6" result="pass"/><test-case name="K-SeqExistsFunc-7" result="pass"/><test-case name="K-SeqExistsFunc-8" result="pass"/><test-case name="K-SeqExistsFunc-9" result="pass"/><test-case name="K-SeqExistsFunc-10" result="pass"/><test-case name="K-SeqExistsFunc-11" result="pass"/><test-case name="K-SeqExistsFunc-12" result="pass"/><test-case name="K-SeqExistsFunc-13" result="pass"/><test-case name="K-SeqExistsFunc-14" result="pass"/><test-case name="fn-distinct-valuesint1args-1" result="pass"/><test-case name="fn-distinct-valuesint1args-2" result="pass"/><test-case name="fn-distinct-valuesint1args-3" result="pass"/><test-case name="fn-distinct-valuesintg1args-1" result="pass"/><test-case name="fn-distinct-valuesintg1args-2" result="pass"/><test-case name="fn-distinct-valuesintg1args-3" result="pass"/><test-case name="fn-distinct-valuesdec1args-1" result="fail"/><test-case name="fn-distinct-valuesdec1args-2" result="fail"/><test-case name="fn-distinct-valuesdec1args-3" result="fail"/><test-case name="fn-distinct-valuesdbl1args-1" result="pass"/><test-case name="fn-distinct-valuesdbl1args-2" result="pass"/><test-case name="fn-distinct-valuesdbl1args-3" result="pass"/><test-case name="fn-distinct-valuesflt1args-1" result="pass"/><test-case name="fn-distinct-valuesflt1args-2" result="pass"/><test-case name="fn-distinct-valuesflt1args-3" result="pass"/><test-case name="fn-distinct-valueslng1args-1" result="pass"/><test-case name="fn-distinct-valueslng1args-2" result="pass"/><test-case name="fn-distinct-valueslng1args-3" result="pass"/><test-case name="fn-distinct-valuesusht1args-1" result="pass"/><test-case name="fn-distinct-valuesusht1args-2" result="pass"/><test-case name="fn-distinct-valuesusht1args-3" result="pass"/><test-case name="fn-distinct-valuesnint1args-1" result="pass"/><test-case name="fn-distinct-valuesnint1args-2" result="pass"/><test-case name="fn-distinct-valuesnint1args-3" result="pass"/><test-case name="fn-distinct-valuespint1args-1" result="pass"/><test-case name="fn-distinct-valuespint1args-2" result="pass"/><test-case name="fn-distinct-valuespint1args-3" result="pass"/><test-case name="fn-distinct-valuesulng1args-1" result="pass"/><test-case name="fn-distinct-valuesulng1args-2" result="pass"/><test-case name="fn-distinct-valuesulng1args-3" result="pass"/><test-case name="fn-distinct-valuesnpi1args-1" result="pass"/><test-case name="fn-distinct-valuesnpi1args-2" result="pass"/><test-case name="fn-distinct-valuesnpi1args-3" result="pass"/><test-case name="fn-distinct-valuesnni1args-1" result="pass"/><test-case name="fn-distinct-valuesnni1args-2" result="pass"/><test-case name="fn-distinct-valuesnni1args-3" result="pass"/><test-case name="fn-distinct-valuessht1args-1" result="pass"/><test-case name="fn-distinct-valuessht1args-2" result="pass"/><test-case name="fn-distinct-valuessht1args-3" result="pass"/><test-case name="fn-distinct-values-mixed-args-001" result="pass"/><test-case name="fn-distinct-values-mixed-args-002" result="pass"/><test-case name="fn-distinct-values-mixed-args-003" result="pass"/><test-case name="fn-distinct-values-mixed-args-004" result="pass"/><test-case name="fn-distinct-values-mixed-args-005" result="pass"/><test-case name="fn-distinct-values-mixed-args-006" result="pass"/><test-case name="fn-distinct-values-mixed-args-007" result="pass"/><test-case name="fn-distinct-values-mixed-args-008" result="pass"/><test-case name="fn-distinct-values-mixed-args-009" result="pass"/><test-case name="fn-distinct-values-mixed-args-010" result="fail"/><test-case name="fn-distinct-values-mixed-args-011" result="pass"/><test-case name="fn-distinct-values-mixed-args-012" result="pass"/><test-case name="fn-distinct-values-mixed-args-013" result="pass"/><test-case name="fn-distinct-values-mixed-args-014" result="pass"/><test-case name="fn-distinct-values-mixed-args-015" result="pass"/><test-case name="fn-distinct-values-mixed-args-016" result="pass"/><test-case name="fn-distinct-values-mixed-args-017" result="pass"/><test-case name="fn-distinct-values-mixed-args-018" result="pass"/><test-case name="fn-distinct-values-mixed-args-019" result="fail"/><test-case name="fn-distinct-values-mixed-args-020" result="fail"/><test-case name="fn-distinct-values-mixed-args-021" result="fail"/><test-case name="fn-distinct-values-mixed-args-022" result="pass"/><test-case name="fn-distinct-values-mixed-args-023" result="pass"/><test-case name="fn-distinct-values-mixed-args-024" result="pass"/><test-case name="fn-distinct-values-mixed-args-025" result="fail"/><test-case name="fn-distinct-values-mixed-args-026" result="fail"/><test-case name="fn-distinct-values-mixed-args-027" result="pass"/><test-case name="fn-distinct-values-mixed-args-028" result="pass"/><test-case name="fn-distinct-values-mixed-args-029" result="pass"/><test-case name="fn-distinct-values-mixed-args-030" result="pass"/><test-case name="fn-distinct-values-mixed-args-031" result="pass"/><test-case name="fn-distinct-values-mixed-args-032" result="pass"/><test-case name="K-SeqDistinctValuesFunc-1" result="pass"/><test-case name="K-SeqDistinctValuesFunc-2" result="pass"/><test-case name="K-SeqDistinctValuesFunc-3" result="pass"/><test-case name="K-SeqDistinctValuesFunc-4" result="pass"/><test-case name="K-SeqDistinctValuesFunc-5" result="pass"/><test-case name="K-SeqDistinctValuesFunc-6" result="pass"/><test-case name="K-SeqDistinctValuesFunc-7" result="pass"/><test-case name="K-SeqDistinctValuesFunc-8" result="pass"/><test-case name="K-SeqDistinctValuesFunc-9" result="pass"/><test-case name="K-SeqDistinctValuesFunc-10" result="pass"/><test-case name="K-SeqDistinctValuesFunc-11" result="pass"/><test-case name="K-SeqDistinctValuesFunc-12" result="pass"/><test-case name="K-SeqDistinctValuesFunc-13" result="pass"/><test-case name="K-SeqDistinctValuesFunc-14" result="pass"/><test-case name="K-SeqDistinctValuesFunc-15" result="pass"/><test-case name="K2-SeqDistinctValuesFunc-1" result="pass"/><test-case name="fn-insert-before-mix-args-001" result="pass"/><test-case name="fn-insert-before-mix-args-002" result="pass"/><test-case name="fn-insert-before-mix-args-003" result="pass"/><test-case name="fn-insert-before-mix-args-004" result="pass"/><test-case name="fn-insert-before-mix-args-005" result="pass"/><test-case name="fn-insert-before-mix-args-006" result="pass"/><test-case name="fn-insert-before-mix-args-007" result="pass"/><test-case name="fn-insert-before-mix-args-008" result="pass"/><test-case name="fn-insert-before-mix-args-009" result="pass"/><test-case name="fn-insert-before-mix-args-010" result="pass"/><test-case name="fn-insert-before-mix-args-011" result="pass"/><test-case name="fn-insert-before-mix-args-012" result="pass"/><test-case name="fn-insert-before-mix-args-013" result="pass"/><test-case name="fn-insert-before-mix-args-014" result="pass"/><test-case name="fn-insert-before-mix-args-015" result="pass"/><test-case name="fn-insert-before-mix-args-016" result="pass"/><test-case name="fn-insert-before-mix-args-017" result="pass"/><test-case name="fn-insert-before-mix-args-018" result="pass"/><test-case name="fn-insert-before-mix-args-019" result="pass"/><test-case name="fn-insert-before-mix-args-020" result="pass"/><test-case name="K-SeqInsertBeforeFunc-1" result="pass"/><test-case name="K-SeqInsertBeforeFunc-2" result="pass"/><test-case name="K-SeqInsertBeforeFunc-3" result="pass"/><test-case name="K-SeqInsertBeforeFunc-4" result="pass"/><test-case name="K-SeqInsertBeforeFunc-5" result="pass"/><test-case name="K-SeqInsertBeforeFunc-6" result="pass"/><test-case name="K-SeqInsertBeforeFunc-7" result="pass"/><test-case name="K-SeqInsertBeforeFunc-8" result="pass"/><test-case name="K-SeqInsertBeforeFunc-9" result="pass"/><test-case name="K-SeqInsertBeforeFunc-10" result="pass"/><test-case name="K-SeqInsertBeforeFunc-11" result="pass"/><test-case name="K-SeqInsertBeforeFunc-12" result="pass"/><test-case name="K-SeqInsertBeforeFunc-13" result="pass"/><test-case name="K-SeqInsertBeforeFunc-14" result="pass"/><test-case name="K-SeqInsertBeforeFunc-15" result="pass"/><test-case name="K-SeqInsertBeforeFunc-16" result="pass"/><test-case name="K-SeqInsertBeforeFunc-17" result="pass"/><test-case name="K-SeqInsertBeforeFunc-18" result="pass"/><test-case name="K-SeqInsertBeforeFunc-19" result="pass"/><test-case name="K-SeqInsertBeforeFunc-20" result="pass"/><test-case name="K-SeqInsertBeforeFunc-21" result="pass"/><test-case name="fn-remove-mix-args-001" result="pass"/><test-case name="fn-remove-mix-args-002" result="pass"/><test-case name="fn-remove-mix-args-003" result="pass"/><test-case name="fn-remove-mix-args-004" result="pass"/><test-case name="fn-remove-mix-args-005" result="pass"/><test-case name="fn-remove-mix-args-006" result="pass"/><test-case name="fn-remove-mix-args-007" result="pass"/><test-case name="fn-remove-mix-args-008" result="pass"/><test-case name="fn-remove-mix-args-009" result="pass"/><test-case name="fn-remove-mix-args-010" result="pass"/><test-case name="fn-remove-mix-args-011" result="pass"/><test-case name="fn-remove-mix-args-012" result="pass"/><test-case name="fn-remove-mix-args-013" result="pass"/><test-case name="fn-remove-mix-args-014" result="pass"/><test-case name="fn-remove-mix-args-015" result="pass"/><test-case name="fn-remove-mix-args-016" result="pass"/><test-case name="fn-remove-mix-args-017" result="pass"/><test-case name="fn-remove-mix-args-018" result="pass"/><test-case name="fn-remove-mix-args-019" result="pass"/><test-case name="fn-remove-mix-args-020" result="pass"/><test-case name="K-SeqRemoveFunc-1" result="pass"/><test-case name="K-SeqRemoveFunc-2" result="pass"/><test-case name="K-SeqRemoveFunc-3" result="pass"/><test-case name="K-SeqRemoveFunc-4" result="pass"/><test-case name="K-SeqRemoveFunc-5" result="pass"/><test-case name="K-SeqRemoveFunc-6" result="pass"/><test-case name="K-SeqRemoveFunc-7" result="pass"/><test-case name="K-SeqRemoveFunc-8" result="pass"/><test-case name="K-SeqRemoveFunc-9" result="pass"/><test-case name="K-SeqRemoveFunc-10" result="pass"/><test-case name="K-SeqRemoveFunc-11" result="pass"/><test-case name="K-SeqRemoveFunc-12" result="pass"/><test-case name="K-SeqRemoveFunc-13" result="pass"/><test-case name="K-SeqRemoveFunc-14" result="pass"/><test-case name="K-SeqRemoveFunc-15" result="pass"/><test-case name="K-SeqRemoveFunc-16" result="pass"/><test-case name="K-SeqRemoveFunc-17" result="pass"/><test-case name="K-SeqRemoveFunc-18" result="pass"/><test-case name="K-SeqRemoveFunc-19" result="pass"/><test-case name="K-SeqRemoveFunc-20" result="pass"/><test-case name="K-SeqRemoveFunc-21" result="pass"/><test-case name="K-SeqRemoveFunc-22" result="pass"/><test-case name="K-SeqRemoveFunc-23" result="pass"/><test-case name="K-SeqRemoveFunc-24" result="pass"/><test-case name="fn-reverseint1args-1" result="pass"/><test-case name="fn-reverseint1args-2" result="pass"/><test-case name="fn-reverseint1args-3" result="pass"/><test-case name="fn-reverseintg1args-1" result="pass"/><test-case name="fn-reverseintg1args-2" result="pass"/><test-case name="fn-reverseintg1args-3" result="pass"/><test-case name="fn-reversedec1args-1" result="fail"/><test-case name="fn-reversedec1args-2" result="fail"/><test-case name="fn-reversedec1args-3" result="fail"/><test-case name="fn-reversedbl1args-1" result="pass"/><test-case name="fn-reversedbl1args-2" result="pass"/><test-case name="fn-reversedbl1args-3" result="pass"/><test-case name="fn-reverseflt1args-1" result="pass"/><test-case name="fn-reverseflt1args-2" result="pass"/><test-case name="fn-reverseflt1args-3" result="pass"/><test-case name="fn-reverselng1args-1" result="pass"/><test-case name="fn-reverselng1args-2" result="pass"/><test-case name="fn-reverselng1args-3" result="pass"/><test-case name="fn-reverseusht1args-1" result="pass"/><test-case name="fn-reverseusht1args-2" result="pass"/><test-case name="fn-reverseusht1args-3" result="pass"/><test-case name="fn-reversenint1args-1" result="pass"/><test-case name="fn-reversenint1args-2" result="pass"/><test-case name="fn-reversenint1args-3" result="pass"/><test-case name="fn-reversepint1args-1" result="pass"/><test-case name="fn-reversepint1args-2" result="pass"/><test-case name="fn-reversepint1args-3" result="pass"/><test-case name="fn-reverseulng1args-1" result="pass"/><test-case name="fn-reverseulng1args-2" result="pass"/><test-case name="fn-reverseulng1args-3" result="pass"/><test-case name="fn-reversenpi1args-1" result="pass"/><test-case name="fn-reversenpi1args-2" result="pass"/><test-case name="fn-reversenpi1args-3" result="pass"/><test-case name="fn-reversenni1args-1" result="pass"/><test-case name="fn-reversenni1args-2" result="pass"/><test-case name="fn-reversenni1args-3" result="pass"/><test-case name="fn-reversesht1args-1" result="pass"/><test-case name="fn-reversesht1args-2" result="pass"/><test-case name="fn-reversesht1args-3" result="pass"/><test-case name="K-SeqReverseFunc-1" result="pass"/><test-case name="K-SeqReverseFunc-2" result="pass"/><test-case name="K-SeqReverseFunc-3" result="pass"/><test-case name="K-SeqReverseFunc-4" result="pass"/><test-case name="K-SeqReverseFunc-5" result="pass"/><test-case name="K-SeqReverseFunc-6" result="pass"/><test-case name="K-SeqReverseFunc-7" result="pass"/><test-case name="K-SeqReverseFunc-8" result="pass"/><test-case name="K-SeqReverseFunc-9" result="pass"/><test-case name="K-SeqReverseFunc-10" result="pass"/><test-case name="K-SeqReverseFunc-11" result="pass"/><test-case name="K-SeqReverseFunc-12" result="pass"/><test-case name="K-SeqReverseFunc-13" result="pass"/><test-case name="K-SeqReverseFunc-14" result="pass"/><test-case name="K-SeqReverseFunc-15" result="pass"/><test-case name="K-SeqReverseFunc-16" result="pass"/><test-case name="K-SeqReverseFunc-17" result="pass"/><test-case name="K-SeqReverseFunc-18" result="pass"/><test-case name="K-SeqReverseFunc-19" result="pass"/><test-case name="K-SeqReverseFunc-20" result="pass"/><test-case name="K-SeqReverseFunc-21" result="pass"/><test-case name="K2-SeqReverseFunc-1" result="pass"/><test-case name="K2-SeqReverseFunc-2" result="pass"/><test-case name="K2-SeqReverseFunc-3" result="pass"/><test-case name="K2-SeqReverseFunc-4" result="pass"/><test-case name="K2-SeqReverseFunc-5" result="pass"/><test-case name="K2-SeqReverseFunc-6" result="pass"/><test-case name="fn-subsequence-mix-args-001" result="pass"/><test-case name="fn-subsequence-mix-args-002" result="pass"/><test-case name="fn-subsequence-mix-args-003" result="pass"/><test-case name="fn-subsequence-mix-args-004" result="pass"/><test-case name="fn-subsequence-mix-args-005" result="pass"/><test-case name="fn-subsequence-mix-args-006" result="pass"/><test-case name="fn-subsequence-mix-args-007" result="pass"/><test-case name="fn-subsequence-mix-args-008" result="pass"/><test-case name="fn-subsequence-mix-args-009" result="fail"/><test-case name="fn-subsequence-mix-args-010" result="pass"/><test-case name="fn-subsequence-mix-args-011" result="fail"/><test-case name="fn-subsequence-mix-args-012" result="pass"/><test-case name="fn-subsequence-mix-args-013" result="pass"/><test-case name="fn-subsequence-mix-args-014" result="pass"/><test-case name="fn-subsequence-mix-args-015" result="pass"/><test-case name="fn-subsequence-mix-args-016" result="pass"/><test-case name="fn-subsequence-mix-args-017" result="pass"/><test-case name="fn-subsequence-mix-args-018" result="pass"/><test-case name="fn-subsequence-mix-args-019" result="pass"/><test-case name="fn-subsequence-mix-args-020" result="pass"/><test-case name="fn-subsequence-mix-args-021" result="pass"/><test-case name="fn-subsequence-mix-args-022" result="fail"/><test-case name="fn-subsequence-mix-args-023" result="pass"/><test-case name="K-SeqSubsequenceFunc-1" result="pass"/><test-case name="K-SeqSubsequenceFunc-2" result="pass"/><test-case name="K-SeqSubsequenceFunc-3" result="pass"/><test-case name="K-SeqSubsequenceFunc-4" result="pass"/><test-case name="K-SeqSubsequenceFunc-5" result="pass"/><test-case name="K-SeqSubsequenceFunc-6" result="pass"/><test-case name="K-SeqSubsequenceFunc-7" result="pass"/><test-case name="K-SeqSubsequenceFunc-8" result="pass"/><test-case name="K-SeqSubsequenceFunc-9" result="pass"/><test-case name="K-SeqSubsequenceFunc-10" result="pass"/><test-case name="K-SeqSubsequenceFunc-11" result="pass"/><test-case name="K-SeqSubsequenceFunc-12" result="pass"/><test-case name="K-SeqSubsequenceFunc-13" result="pass"/><test-case name="K-SeqSubsequenceFunc-14" result="pass"/><test-case name="K-SeqSubsequenceFunc-15" result="pass"/><test-case name="K-SeqSubsequenceFunc-16" result="pass"/><test-case name="K-SeqSubsequenceFunc-17" result="pass"/><test-case name="K-SeqSubsequenceFunc-18" result="pass"/><test-case name="K-SeqSubsequenceFunc-19" result="pass"/><test-case name="K-SeqSubsequenceFunc-20" result="pass"/><test-case name="K-SeqSubsequenceFunc-21" result="pass"/><test-case name="K-SeqSubsequenceFunc-22" result="pass"/><test-case name="K-SeqSubsequenceFunc-23" result="pass"/><test-case name="K-SeqSubsequenceFunc-24" result="pass"/><test-case name="K-SeqSubsequenceFunc-25" result="pass"/><test-case name="K-SeqSubsequenceFunc-26" result="pass"/><test-case name="K-SeqSubsequenceFunc-27" result="pass"/><test-case name="K-SeqSubsequenceFunc-28" result="pass"/><test-case name="K-SeqSubsequenceFunc-29" result="pass"/><test-case name="K-SeqSubsequenceFunc-30" result="pass"/><test-case name="K-SeqSubsequenceFunc-31" result="pass"/><test-case name="K-SeqSubsequenceFunc-32" result="pass"/><test-case name="K-SeqSubsequenceFunc-33" result="pass"/><test-case name="K-SeqSubsequenceFunc-34" result="pass"/><test-case name="K-SeqSubsequenceFunc-35" result="pass"/><test-case name="K-SeqSubsequenceFunc-36" result="pass"/><test-case name="K-SeqSubsequenceFunc-37" result="pass"/><test-case name="K-SeqSubsequenceFunc-38" result="pass"/><test-case name="K-SeqSubsequenceFunc-39" result="pass"/><test-case name="K-SeqSubsequenceFunc-40" result="pass"/><test-case name="K-SeqSubsequenceFunc-41" result="pass"/><test-case name="K-SeqSubsequenceFunc-42" result="pass"/><test-case name="K-SeqSubsequenceFunc-43" result="pass"/><test-case name="K-SeqSubsequenceFunc-44" result="pass"/><test-case name="K2-SeqSubsequenceFunc-1" result="pass"/><test-case name="K2-SeqSubsequenceFunc-2" result="pass"/><test-case name="K2-SeqSubsequenceFunc-3" result="pass"/><test-case name="K2-SeqSubsequenceFunc-4" result="pass"/><test-case name="K2-SeqSubsequenceFunc-5" result="pass"/><test-case name="K2-SeqSubsequenceFunc-6" result="pass"/><test-case name="K2-SeqSubsequenceFunc-7" result="fail"/><test-case name="K2-SeqSubsequenceFunc-8" result="pass"/><test-case name="K2-SeqSubsequenceFunc-9" result="pass"/><test-case name="K2-SeqSubsequenceFunc-10" result="pass"/><test-case name="fn-unordered-mix-args-001" result="pass"/><test-case name="fn-unordered-mix-args-002" result="pass"/><test-case name="fn-unordered-mix-args-003" result="pass"/><test-case name="fn-unordered-mix-args-004" result="pass"/><test-case name="fn-unordered-mix-args-005" result="pass"/><test-case name="fn-unordered-mix-args-006" result="pass"/><test-case name="fn-unordered-mix-args-007" result="pass"/><test-case name="fn-unordered-mix-args-008" result="pass"/><test-case name="fn-unordered-mix-args-009" result="pass"/><test-case name="fn-unordered-mix-args-010" result="pass"/><test-case name="fn-unordered-mix-args-011" result="pass"/><test-case name="fn-unordered-mix-args-012" result="pass"/><test-case name="fn-unordered-mix-args-013" result="pass"/><test-case name="fn-unordered-mix-args-014" result="pass"/><test-case name="fn-unordered-mix-args-015" result="pass"/><test-case name="fn-unordered-mix-args-016" result="pass"/><test-case name="fn-unordered-mix-args-017" result="pass"/><test-case name="fn-unordered-mix-args-018" result="pass"/><test-case name="fn-unordered-mix-args-019" result="pass"/><test-case name="fn-unordered-mix-args-020" result="pass"/><test-case name="fn-unordered-mix-args-021" result="pass"/><test-case name="fn-unordered-mix-args-022" result="pass"/><test-case name="fn-unordered-mix-args-023" result="pass"/><test-case name="K-SeqUnorderedFunc-1" result="pass"/><test-case name="K-SeqUnorderedFunc-2" result="pass"/><test-case name="K-SeqUnorderedFunc-3" result="pass"/><test-case name="K-SeqUnorderedFunc-4" result="pass"/><test-case name="K-SeqUnorderedFunc-5" result="pass"/><test-case name="K-SeqUnorderedFunc-6" result="pass"/><test-case name="K-SeqUnorderedFunc-7" result="pass"/><test-case name="K-SeqUnorderedFunc-8" result="pass"/><test-case name="fn-zero-or-oneint1args-1" result="pass"/><test-case name="fn-zero-or-oneint1args-2" result="pass"/><test-case name="fn-zero-or-oneint1args-3" result="pass"/><test-case name="fn-zero-or-oneintg1args-1" result="pass"/><test-case name="fn-zero-or-oneintg1args-2" result="pass"/><test-case name="fn-zero-or-oneintg1args-3" result="pass"/><test-case name="fn-zero-or-onedec1args-1" result="fail"/><test-case name="fn-zero-or-onedec1args-2" result="fail"/><test-case name="fn-zero-or-onedec1args-3" result="fail"/><test-case name="fn-zero-or-onedbl1args-1" result="pass"/><test-case name="fn-zero-or-onedbl1args-2" result="pass"/><test-case name="fn-zero-or-onedbl1args-3" result="pass"/><test-case name="fn-zero-or-oneflt1args-1" result="pass"/><test-case name="fn-zero-or-oneflt1args-2" result="pass"/><test-case name="fn-zero-or-oneflt1args-3" result="pass"/><test-case name="fn-zero-or-onelng1args-1" result="pass"/><test-case name="fn-zero-or-onelng1args-2" result="pass"/><test-case name="fn-zero-or-onelng1args-3" result="pass"/><test-case name="fn-zero-or-oneusht1args-1" result="pass"/><test-case name="fn-zero-or-oneusht1args-2" result="pass"/><test-case name="fn-zero-or-oneusht1args-3" result="pass"/><test-case name="fn-zero-or-onenint1args-1" result="pass"/><test-case name="fn-zero-or-onenint1args-2" result="pass"/><test-case name="fn-zero-or-onenint1args-3" result="pass"/><test-case name="fn-zero-or-onepint1args-1" result="pass"/><test-case name="fn-zero-or-onepint1args-2" result="pass"/><test-case name="fn-zero-or-onepint1args-3" result="pass"/><test-case name="fn-zero-or-oneulng1args-1" result="pass"/><test-case name="fn-zero-or-oneulng1args-2" result="pass"/><test-case name="fn-zero-or-oneulng1args-3" result="pass"/><test-case name="fn-zero-or-onenpi1args-1" result="pass"/><test-case name="fn-zero-or-onenpi1args-2" result="pass"/><test-case name="fn-zero-or-onenpi1args-3" result="pass"/><test-case name="fn-zero-or-onenni1args-1" result="pass"/><test-case name="fn-zero-or-onenni1args-2" result="pass"/><test-case name="fn-zero-or-onenni1args-3" result="pass"/><test-case name="fn-zero-or-onesht1args-1" result="pass"/><test-case name="fn-zero-or-onesht1args-2" result="pass"/><test-case name="fn-zero-or-onesht1args-3" result="pass"/><test-case name="fn-zero-or-one-1" result="pass"/><test-case name="K-SeqZeroOrOneFunc-1" result="pass"/><test-case name="K-SeqZeroOrOneFunc-2" result="pass"/><test-case name="K-SeqZeroOrOneFunc-3" result="pass"/><test-case name="K-SeqZeroOrOneFunc-4" result="pass"/><test-case name="K-SeqZeroOrOneFunc-5" result="pass"/><test-case name="K-SeqZeroOrOneFunc-6" result="pass"/><test-case name="K-SeqZeroOrOneFunc-7" result="pass"/><test-case name="K-SeqZeroOrOneFunc-8" result="pass"/><test-case name="fn-one-or-moreint1args-1" result="pass"/><test-case name="fn-one-or-moreint1args-2" result="pass"/><test-case name="fn-one-or-moreint1args-3" result="pass"/><test-case name="fn-one-or-moreintg1args-1" result="pass"/><test-case name="fn-one-or-moreintg1args-2" result="pass"/><test-case name="fn-one-or-moreintg1args-3" result="pass"/><test-case name="fn-one-or-moredec1args-1" result="fail"/><test-case name="fn-one-or-moredec1args-2" result="fail"/><test-case name="fn-one-or-moredec1args-3" result="fail"/><test-case name="fn-one-or-moredbl1args-1" result="pass"/><test-case name="fn-one-or-moredbl1args-2" result="pass"/><test-case name="fn-one-or-moredbl1args-3" result="pass"/><test-case name="fn-one-or-moreflt1args-1" result="pass"/><test-case name="fn-one-or-moreflt1args-2" result="pass"/><test-case name="fn-one-or-moreflt1args-3" result="pass"/><test-case name="fn-one-or-morelng1args-1" result="pass"/><test-case name="fn-one-or-morelng1args-2" result="pass"/><test-case name="fn-one-or-morelng1args-3" result="pass"/><test-case name="fn-one-or-moreusht1args-1" result="pass"/><test-case name="fn-one-or-moreusht1args-2" result="pass"/><test-case name="fn-one-or-moreusht1args-3" result="pass"/><test-case name="fn-one-or-morenint1args-1" result="pass"/><test-case name="fn-one-or-morenint1args-2" result="pass"/><test-case name="fn-one-or-morenint1args-3" result="pass"/><test-case name="fn-one-or-morepint1args-1" result="pass"/><test-case name="fn-one-or-morepint1args-2" result="pass"/><test-case name="fn-one-or-morepint1args-3" result="pass"/><test-case name="fn-one-or-moreulng1args-1" result="pass"/><test-case name="fn-one-or-moreulng1args-2" result="pass"/><test-case name="fn-one-or-moreulng1args-3" result="pass"/><test-case name="fn-one-or-morenpi1args-1" result="pass"/><test-case name="fn-one-or-morenpi1args-2" result="pass"/><test-case name="fn-one-or-morenpi1args-3" result="pass"/><test-case name="fn-one-or-morenni1args-1" result="pass"/><test-case name="fn-one-or-morenni1args-2" result="pass"/><test-case name="fn-one-or-morenni1args-3" result="pass"/><test-case name="fn-one-or-moresht1args-1" result="pass"/><test-case name="fn-one-or-moresht1args-2" result="pass"/><test-case name="fn-one-or-moresht1args-3" result="pass"/><test-case name="fn-one-or-more-1" result="pass"/><test-case name="K-SeqOneOrMoreFunc-1" result="pass"/><test-case name="K-SeqOneOrMoreFunc-2" result="pass"/><test-case name="K-SeqOneOrMoreFunc-3" result="pass"/><test-case name="K-SeqOneOrMoreFunc-4" result="pass"/><test-case name="K-SeqOneOrMoreFunc-5" result="pass"/><test-case name="K-SeqOneOrMoreFunc-6" result="pass"/><test-case name="K-SeqOneOrMoreFunc-7" result="pass"/><test-case name="K-SeqOneOrMoreFunc-8" result="pass"/><test-case name="K2-SeqOneOrMoreFunc-1" result="pass"/><test-case name="fn-exactly-oneint1args-1" result="pass"/><test-case name="fn-exactly-oneint1args-2" result="pass"/><test-case name="fn-exactly-oneint1args-3" result="pass"/><test-case name="fn-exactly-oneintg1args-1" result="pass"/><test-case name="fn-exactly-oneintg1args-2" result="pass"/><test-case name="fn-exactly-oneintg1args-3" result="pass"/><test-case name="fn-exactly-onedec1args-1" result="fail"/><test-case name="fn-exactly-onedec1args-2" result="fail"/><test-case name="fn-exactly-onedec1args-3" result="fail"/><test-case name="fn-exactly-onedbl1args-1" result="pass"/><test-case name="fn-exactly-onedbl1args-2" result="pass"/><test-case name="fn-exactly-onedbl1args-3" result="pass"/><test-case name="fn-exactly-oneflt1args-1" result="pass"/><test-case name="fn-exactly-oneflt1args-2" result="pass"/><test-case name="fn-exactly-oneflt1args-3" result="pass"/><test-case name="fn-exactly-onelng1args-1" result="pass"/><test-case name="fn-exactly-onelng1args-2" result="pass"/><test-case name="fn-exactly-onelng1args-3" result="pass"/><test-case name="fn-exactly-oneusht1args-1" result="pass"/><test-case name="fn-exactly-oneusht1args-2" result="pass"/><test-case name="fn-exactly-oneusht1args-3" result="pass"/><test-case name="fn-exactly-onenint1args-1" result="pass"/><test-case name="fn-exactly-onenint1args-2" result="pass"/><test-case name="fn-exactly-onenint1args-3" result="pass"/><test-case name="fn-exactly-onepint1args-1" result="pass"/><test-case name="fn-exactly-onepint1args-2" result="pass"/><test-case name="fn-exactly-onepint1args-3" result="pass"/><test-case name="fn-exactly-oneulng1args-1" result="pass"/><test-case name="fn-exactly-oneulng1args-2" result="pass"/><test-case name="fn-exactly-oneulng1args-3" result="pass"/><test-case name="fn-exactly-onenpi1args-1" result="pass"/><test-case name="fn-exactly-onenpi1args-2" result="pass"/><test-case name="fn-exactly-onenpi1args-3" result="pass"/><test-case name="fn-exactly-onenni1args-1" result="pass"/><test-case name="fn-exactly-onenni1args-2" result="pass"/><test-case name="fn-exactly-onenni1args-3" result="pass"/><test-case name="fn-exactly-onesht1args-1" result="pass"/><test-case name="fn-exactly-onesht1args-2" result="pass"/><test-case name="fn-exactly-onesht1args-3" result="pass"/><test-case name="fn-exactly-one-1" result="pass"/><test-case name="K-SeqExactlyOneFunc-1" result="pass"/><test-case name="K-SeqExactlyOneFunc-2" result="pass"/><test-case name="K-SeqExactlyOneFunc-3" result="pass"/><test-case name="K-SeqExactlyOneFunc-4" result="pass"/><test-case name="K-SeqExactlyOneFunc-5" result="pass"/><test-case name="K-SeqExactlyOneFunc-6" result="pass"/><test-case name="K-SeqExactlyOneFunc-7" result="pass"/><test-case name="K-SeqExactlyOneFunc-8" result="pass"/><test-case name="K-SeqExactlyOneFunc-9" result="pass"/><test-case name="K-SeqExactlyOneFunc-10" result="pass"/><test-case name="fn-deep-equalint2args-1" result="pass"/><test-case name="fn-deep-equalint2args-2" result="pass"/><test-case name="fn-deep-equalint2args-3" result="pass"/><test-case name="fn-deep-equalint2args-4" result="pass"/><test-case name="fn-deep-equalint2args-5" result="pass"/><test-case name="fn-deep-equalintg2args-1" result="pass"/><test-case name="fn-deep-equalintg2args-2" result="pass"/><test-case name="fn-deep-equalintg2args-3" result="pass"/><test-case name="fn-deep-equalintg2args-4" result="pass"/><test-case name="fn-deep-equalintg2args-5" result="pass"/><test-case name="fn-deep-equaldec2args-1" result="pass"/><test-case name="fn-deep-equaldec2args-2" result="pass"/><test-case name="fn-deep-equaldec2args-3" result="pass"/><test-case name="fn-deep-equaldec2args-4" result="pass"/><test-case name="fn-deep-equaldec2args-5" result="pass"/><test-case name="fn-deep-equaldbl2args-1" result="pass"/><test-case name="fn-deep-equaldbl2args-2" result="pass"/><test-case name="fn-deep-equaldbl2args-3" result="pass"/><test-case name="fn-deep-equaldbl2args-4" result="pass"/><test-case name="fn-deep-equaldbl2args-5" result="pass"/><test-case name="fn-deep-equalflt2args-1" result="pass"/><test-case name="fn-deep-equalflt2args-2" result="pass"/><test-case name="fn-deep-equalflt2args-3" result="pass"/><test-case name="fn-deep-equalflt2args-4" result="pass"/><test-case name="fn-deep-equalflt2args-5" result="pass"/><test-case name="fn-deep-equallng2args-1" result="pass"/><test-case name="fn-deep-equallng2args-2" result="pass"/><test-case name="fn-deep-equallng2args-3" result="pass"/><test-case name="fn-deep-equallng2args-4" result="pass"/><test-case name="fn-deep-equallng2args-5" result="pass"/><test-case name="fn-deep-equalusht2args-1" result="pass"/><test-case name="fn-deep-equalusht2args-2" result="pass"/><test-case name="fn-deep-equalusht2args-3" result="pass"/><test-case name="fn-deep-equalusht2args-4" result="pass"/><test-case name="fn-deep-equalusht2args-5" result="pass"/><test-case name="fn-deep-equalnint2args-1" result="pass"/><test-case name="fn-deep-equalnint2args-2" result="pass"/><test-case name="fn-deep-equalnint2args-3" result="pass"/><test-case name="fn-deep-equalnint2args-4" result="pass"/><test-case name="fn-deep-equalnint2args-5" result="pass"/><test-case name="fn-deep-equalpint2args-1" result="pass"/><test-case name="fn-deep-equalpint2args-2" result="pass"/><test-case name="fn-deep-equalpint2args-3" result="pass"/><test-case name="fn-deep-equalpint2args-4" result="pass"/><test-case name="fn-deep-equalpint2args-5" result="pass"/><test-case name="fn-deep-equalulng2args-1" result="pass"/><test-case name="fn-deep-equalulng2args-2" result="pass"/><test-case name="fn-deep-equalulng2args-3" result="pass"/><test-case name="fn-deep-equalulng2args-4" result="pass"/><test-case name="fn-deep-equalulng2args-5" result="pass"/><test-case name="fn-deep-equalnpi2args-1" result="pass"/><test-case name="fn-deep-equalnpi2args-2" result="pass"/><test-case name="fn-deep-equalnpi2args-3" result="pass"/><test-case name="fn-deep-equalnpi2args-4" result="pass"/><test-case name="fn-deep-equalnpi2args-5" result="pass"/><test-case name="fn-deep-equalnni2args-1" result="pass"/><test-case name="fn-deep-equalnni2args-2" result="pass"/><test-case name="fn-deep-equalnni2args-3" result="pass"/><test-case name="fn-deep-equalnni2args-4" result="pass"/><test-case name="fn-deep-equalnni2args-5" result="pass"/><test-case name="fn-deep-equalsht2args-1" result="pass"/><test-case name="fn-deep-equalsht2args-2" result="pass"/><test-case name="fn-deep-equalsht2args-3" result="pass"/><test-case name="fn-deep-equalsht2args-4" result="pass"/><test-case name="fn-deep-equalsht2args-5" result="pass"/><test-case name="fn-deep-equal-mix-args-001" result="pass"/><test-case name="fn-deep-equal-mix-args-002" result="pass"/><test-case name="fn-deep-equal-mix-args-003" result="pass"/><test-case name="fn-deep-equal-mix-args-004" result="pass"/><test-case name="fn-deep-equal-mix-args-005" result="pass"/><test-case name="fn-deep-equal-mix-args-006" result="pass"/><test-case name="fn-deep-equal-mix-args-007" result="pass"/><test-case name="fn-deep-equal-mix-args-008" result="pass"/><test-case name="fn-deep-equal-mix-args-009" result="pass"/><test-case name="fn-deep-equal-mix-args-010" result="pass"/><test-case name="fn-deep-equal-mix-args-011" result="pass"/><test-case name="fn-deep-equal-mix-args-012" result="pass"/><test-case name="fn-deep-equal-mix-args-013" result="pass"/><test-case name="fn-deep-equal-mix-args-014" result="pass"/><test-case name="fn-deep-equal-mix-args-015" result="pass"/><test-case name="fn-deep-equal-mix-args-016" result="pass"/><test-case name="fn-deep-equal-mix-args-017" result="pass"/><test-case name="fn-deep-equal-mix-args-018" result="pass"/><test-case name="fn-deep-equal-mix-args-019" result="fail"/><test-case name="fn-deep-equal-mix-args-020" result="pass"/><test-case name="fn-deep-equal-mix-args-021" result="pass"/><test-case name="fn-deep-equal-mix-args-022" result="pass"/><test-case name="fn-deep-equal-mix-args-023" result="pass"/><test-case name="fn-deep-equal-mix-args-024" result="pass"/><test-case name="fn-deep-equal-mix-args-025" result="pass"/><test-case name="fn-deep-equal-mix-args-026" result="pass"/><test-case name="fn-deep-equal-mix-args-027" result="pass"/><test-case name="fn-deep-equal-mix-args-028" result="pass"/><test-case name="fn-deep-equal-mix-args-029" result="pass"/><test-case name="fn-deep-equal-mix-args-030" result="pass"/><test-case name="fn-deep-equal-mix-args-031" result="pass"/><test-case name="fn-deep-equal-node-args-1" result="pass"/><test-case name="fn-deep-equal-node-args-2" result="pass"/><test-case name="fn-deep-equal-node-args-3" result="pass"/><test-case name="fn-deep-equal-node-args-4" result="pass"/><test-case name="fn-deep-equal-node-args-5" result="pass"/><test-case name="K-SeqDeepEqualFunc-1" result="pass"/><test-case name="K-SeqDeepEqualFunc-2" result="pass"/><test-case name="K-SeqDeepEqualFunc-3" result="pass"/><test-case name="K-SeqDeepEqualFunc-4" result="pass"/><test-case name="K-SeqDeepEqualFunc-5" result="pass"/><test-case name="K-SeqDeepEqualFunc-6" result="pass"/><test-case name="K-SeqDeepEqualFunc-7" result="pass"/><test-case name="K-SeqDeepEqualFunc-8" result="pass"/><test-case name="K-SeqDeepEqualFunc-9" result="pass"/><test-case name="K-SeqDeepEqualFunc-10" result="pass"/><test-case name="K-SeqDeepEqualFunc-11" result="pass"/><test-case name="K-SeqDeepEqualFunc-12" result="pass"/><test-case name="K-SeqDeepEqualFunc-13" result="pass"/><test-case name="K-SeqDeepEqualFunc-14" result="pass"/><test-case name="K-SeqDeepEqualFunc-15" result="pass"/><test-case name="K-SeqDeepEqualFunc-16" result="pass"/><test-case name="K-SeqDeepEqualFunc-17" result="pass"/><test-case name="K-SeqDeepEqualFunc-18" result="pass"/><test-case name="K-SeqDeepEqualFunc-19" result="pass"/><test-case name="K-SeqDeepEqualFunc-20" result="pass"/><test-case name="K-SeqDeepEqualFunc-21" result="pass"/><test-case name="K-SeqDeepEqualFunc-22" result="pass"/><test-case name="K-SeqDeepEqualFunc-23" result="pass"/><test-case name="K-SeqDeepEqualFunc-24" result="pass"/><test-case name="K-SeqDeepEqualFunc-25" result="pass"/><test-case name="K-SeqDeepEqualFunc-26" result="pass"/><test-case name="K-SeqDeepEqualFunc-27" result="pass"/><test-case name="K-SeqDeepEqualFunc-28" result="pass"/><test-case name="K-SeqDeepEqualFunc-29" result="pass"/><test-case name="K-SeqDeepEqualFunc-30" result="pass"/><test-case name="K-SeqDeepEqualFunc-31" result="pass"/><test-case name="K-SeqDeepEqualFunc-32" result="pass"/><test-case name="K-SeqDeepEqualFunc-33" result="pass"/><test-case name="K-SeqDeepEqualFunc-34" result="pass"/><test-case name="K-SeqDeepEqualFunc-35" result="pass"/><test-case name="K-SeqDeepEqualFunc-36" result="pass"/><test-case name="K-SeqDeepEqualFunc-37" result="pass"/><test-case name="K-SeqDeepEqualFunc-38" result="pass"/><test-case name="K-SeqDeepEqualFunc-39" result="pass"/><test-case name="K-SeqDeepEqualFunc-40" result="pass"/><test-case name="K-SeqDeepEqualFunc-41" result="pass"/><test-case name="K-SeqDeepEqualFunc-42" result="pass"/><test-case name="K-SeqDeepEqualFunc-43" result="pass"/><test-case name="K-SeqDeepEqualFunc-44" result="pass"/><test-case name="K-SeqDeepEqualFunc-45" result="pass"/><test-case name="K-SeqDeepEqualFunc-46" result="pass"/><test-case name="K-SeqDeepEqualFunc-47" result="pass"/><test-case name="K-SeqDeepEqualFunc-48" result="pass"/><test-case name="K-SeqDeepEqualFunc-49" result="pass"/><test-case name="K-SeqDeepEqualFunc-50" result="pass"/><test-case name="K-SeqDeepEqualFunc-51" result="pass"/><test-case name="K-SeqDeepEqualFunc-52" result="pass"/><test-case name="K-SeqDeepEqualFunc-53" result="pass"/><test-case name="K-SeqDeepEqualFunc-54" result="pass"/><test-case name="K-SeqDeepEqualFunc-55" result="pass"/><test-case name="K2-SeqDeepEqualFunc-1" result="pass"/><test-case name="K2-SeqDeepEqualFunc-2" result="pass"/><test-case name="K2-SeqDeepEqualFunc-3" result="pass"/><test-case name="K2-SeqDeepEqualFunc-4" result="pass"/><test-case name="K2-SeqDeepEqualFunc-5" result="pass"/><test-case name="K2-SeqDeepEqualFunc-6" result="pass"/><test-case name="K2-SeqDeepEqualFunc-7" result="pass"/><test-case name="K2-SeqDeepEqualFunc-8" result="pass"/><test-case name="K2-SeqDeepEqualFunc-9" result="pass"/><test-case name="K2-SeqDeepEqualFunc-10" result="pass"/><test-case name="K2-SeqDeepEqualFunc-11" result="pass"/><test-case name="K2-SeqDeepEqualFunc-12" result="pass"/><test-case name="K2-SeqDeepEqualFunc-13" result="pass"/><test-case name="K2-SeqDeepEqualFunc-14" result="pass"/><test-case name="K2-SeqDeepEqualFunc-15" result="pass"/><test-case name="K2-SeqDeepEqualFunc-16" result="pass"/><test-case name="K2-SeqDeepEqualFunc-17" result="pass"/><test-case name="K2-SeqDeepEqualFunc-18" result="pass"/><test-case name="K2-SeqDeepEqualFunc-19" result="pass"/><test-case name="K2-SeqDeepEqualFunc-20" result="pass"/><test-case name="K2-SeqDeepEqualFunc-21" result="pass"/><test-case name="K2-SeqDeepEqualFunc-22" result="pass"/><test-case name="K2-SeqDeepEqualFunc-23" result="pass"/><test-case name="K2-SeqDeepEqualFunc-24" result="pass"/><test-case name="K2-SeqDeepEqualFunc-25" result="pass"/><test-case name="K2-SeqDeepEqualFunc-26" result="pass"/><test-case name="K2-SeqDeepEqualFunc-27" result="pass"/><test-case name="K2-SeqDeepEqualFunc-28" result="pass"/><test-case name="K2-SeqDeepEqualFunc-29" result="pass"/><test-case name="K2-SeqDeepEqualFunc-30" result="pass"/><test-case name="K2-SeqDeepEqualFunc-31" result="pass"/><test-case name="K2-SeqDeepEqualFunc-32" result="pass"/><test-case name="fn-countint1args-1" result="pass"/><test-case name="fn-countint1args-2" result="pass"/><test-case name="fn-countint1args-3" result="pass"/><test-case name="fn-countintg1args-1" result="pass"/><test-case name="fn-countintg1args-2" result="pass"/><test-case name="fn-countintg1args-3" result="pass"/><test-case name="fn-countdec1args-1" result="pass"/><test-case name="fn-countdec1args-2" result="pass"/><test-case name="fn-countdec1args-3" result="pass"/><test-case name="fn-countdbl1args-1" result="pass"/><test-case name="fn-countdbl1args-2" result="pass"/><test-case name="fn-countdbl1args-3" result="pass"/><test-case name="fn-countflt1args-1" result="pass"/><test-case name="fn-countflt1args-2" result="pass"/><test-case name="fn-countflt1args-3" result="pass"/><test-case name="fn-countlng1args-1" result="pass"/><test-case name="fn-countlng1args-2" result="pass"/><test-case name="fn-countlng1args-3" result="pass"/><test-case name="fn-countusht1args-1" result="pass"/><test-case name="fn-countusht1args-2" result="pass"/><test-case name="fn-countusht1args-3" result="pass"/><test-case name="fn-countnint1args-1" result="pass"/><test-case name="fn-countnint1args-2" result="pass"/><test-case name="fn-countnint1args-3" result="pass"/><test-case name="fn-countpint1args-1" result="pass"/><test-case name="fn-countpint1args-2" result="pass"/><test-case name="fn-countpint1args-3" result="pass"/><test-case name="fn-countulng1args-1" result="pass"/><test-case name="fn-countulng1args-2" result="pass"/><test-case name="fn-countulng1args-3" result="pass"/><test-case name="fn-countnpi1args-1" result="pass"/><test-case name="fn-countnpi1args-2" result="pass"/><test-case name="fn-countnpi1args-3" result="pass"/><test-case name="fn-countnni1args-1" result="pass"/><test-case name="fn-countnni1args-2" result="pass"/><test-case name="fn-countnni1args-3" result="pass"/><test-case name="fn-countsht1args-1" result="pass"/><test-case name="fn-countsht1args-2" result="pass"/><test-case name="fn-countsht1args-3" result="pass"/><test-case name="K-SeqCountFunc-1" result="pass"/><test-case name="K-SeqCountFunc-2" result="pass"/><test-case name="K-SeqCountFunc-3" result="pass"/><test-case name="K-SeqCountFunc-4" result="pass"/><test-case name="K-SeqCountFunc-5" result="pass"/><test-case name="K-SeqCountFunc-6" result="pass"/><test-case name="K-SeqCountFunc-7" result="pass"/><test-case name="K-SeqCountFunc-8" result="pass"/><test-case name="K-SeqCountFunc-9" result="pass"/><test-case name="K-SeqCountFunc-10" result="pass"/><test-case name="K-SeqCountFunc-11" result="pass"/><test-case name="K-SeqCountFunc-12" result="pass"/><test-case name="K-SeqCountFunc-13" result="pass"/><test-case name="K-SeqCountFunc-14" result="pass"/><test-case name="K-SeqCountFunc-15" result="pass"/><test-case name="K-SeqCountFunc-16" result="pass"/><test-case name="K-SeqCountFunc-17" result="pass"/><test-case name="K-SeqCountFunc-18" result="pass"/><test-case name="K2-SeqCountFunc-1" result="pass"/><test-case name="fn-avgint1args-1" result="pass"/><test-case name="fn-avgint1args-2" result="pass"/><test-case name="fn-avgint1args-3" result="pass"/><test-case name="fn-avgintg1args-1" result="pass"/><test-case name="fn-avgintg1args-2" result="pass"/><test-case name="fn-avgintg1args-3" result="pass"/><test-case name="fn-avgdec1args-1" result="fail"/><test-case name="fn-avgdec1args-2" result="fail"/><test-case name="fn-avgdec1args-3" result="fail"/><test-case name="fn-avgdbl1args-1" result="pass"/><test-case name="fn-avgdbl1args-2" result="pass"/><test-case name="fn-avgdbl1args-3" result="pass"/><test-case name="fn-avgflt1args-1" result="pass"/><test-case name="fn-avgflt1args-2" result="pass"/><test-case name="fn-avgflt1args-3" result="pass"/><test-case name="fn-avglng1args-1" result="pass"/><test-case name="fn-avglng1args-2" result="pass"/><test-case name="fn-avglng1args-3" result="pass"/><test-case name="fn-avgusht1args-1" result="pass"/><test-case name="fn-avgusht1args-2" result="pass"/><test-case name="fn-avgusht1args-3" result="pass"/><test-case name="fn-avgnint1args-1" result="pass"/><test-case name="fn-avgnint1args-2" result="pass"/><test-case name="fn-avgnint1args-3" result="pass"/><test-case name="fn-avgpint1args-1" result="pass"/><test-case name="fn-avgpint1args-2" result="pass"/><test-case name="fn-avgpint1args-3" result="pass"/><test-case name="fn-avgulng1args-1" result="pass"/><test-case name="fn-avgulng1args-2" result="pass"/><test-case name="fn-avgulng1args-3" result="pass"/><test-case name="fn-avgnpi1args-1" result="pass"/><test-case name="fn-avgnpi1args-2" result="pass"/><test-case name="fn-avgnpi1args-3" result="pass"/><test-case name="fn-avgnni1args-1" result="pass"/><test-case name="fn-avgnni1args-2" result="pass"/><test-case name="fn-avgnni1args-3" result="pass"/><test-case name="fn-avgsht1args-1" result="pass"/><test-case name="fn-avgsht1args-2" result="pass"/><test-case name="fn-avgsht1args-3" result="pass"/><test-case name="fn-avgint2args-1" result="pass"/><test-case name="fn-avgint2args-2" result="pass"/><test-case name="fn-avgint2args-3" result="pass"/><test-case name="fn-avgint2args-4" result="pass"/><test-case name="fn-avgint2args-5" result="pass"/><test-case name="fn-avgintg2args-1" result="fail"/><test-case name="fn-avgintg2args-2" result="fail"/><test-case name="fn-avgintg2args-3" result="pass"/><test-case name="fn-avgintg2args-4" result="fail"/><test-case name="fn-avgintg2args-5" result="pass"/><test-case name="fn-avgdec2args-1" result="fail"/><test-case name="fn-avgdec2args-2" result="fail"/><test-case name="fn-avgdec2args-3" result="pass"/><test-case name="fn-avgdec2args-4" result="fail"/><test-case name="fn-avgdec2args-5" result="pass"/><test-case name="fn-avgdbl2args-1" result="pass"/><test-case name="fn-avgdbl2args-2" result="pass"/><test-case name="fn-avgdbl2args-3" result="pass"/><test-case name="fn-avgdbl2args-4" result="pass"/><test-case name="fn-avgdbl2args-5" result="pass"/><test-case name="fn-avgflt2args-1" result="pass"/><test-case name="fn-avgflt2args-2" result="fail"/><test-case name="fn-avgflt2args-3" result="pass"/><test-case name="fn-avgflt2args-4" result="fail"/><test-case name="fn-avgflt2args-5" result="pass"/><test-case name="fn-avglng2args-1" result="fail"/><test-case name="fn-avglng2args-2" result="fail"/><test-case name="fn-avglng2args-3" result="pass"/><test-case name="fn-avglng2args-4" result="fail"/><test-case name="fn-avglng2args-5" result="pass"/><test-case name="fn-avgusht2args-1" result="pass"/><test-case name="fn-avgusht2args-2" result="pass"/><test-case name="fn-avgusht2args-3" result="pass"/><test-case name="fn-avgusht2args-4" result="pass"/><test-case name="fn-avgusht2args-5" result="pass"/><test-case name="fn-avgnint2args-1" result="fail"/><test-case name="fn-avgnint2args-2" result="fail"/><test-case name="fn-avgnint2args-3" result="pass"/><test-case name="fn-avgnint2args-4" result="fail"/><test-case name="fn-avgnint2args-5" result="pass"/><test-case name="fn-avgpint2args-1" result="pass"/><test-case name="fn-avgpint2args-2" result="fail"/><test-case name="fn-avgpint2args-3" result="pass"/><test-case name="fn-avgpint2args-4" result="fail"/><test-case name="fn-avgpint2args-5" result="pass"/><test-case name="fn-avgulng2args-1" result="pass"/><test-case name="fn-avgulng2args-2" result="fail"/><test-case name="fn-avgulng2args-3" result="fail"/><test-case name="fn-avgulng2args-4" result="fail"/><test-case name="fn-avgulng2args-5" result="fail"/><test-case name="fn-avgnpi2args-1" result="fail"/><test-case name="fn-avgnpi2args-2" result="fail"/><test-case name="fn-avgnpi2args-3" result="fail"/><test-case name="fn-avgnpi2args-4" result="fail"/><test-case name="fn-avgnpi2args-5" result="fail"/><test-case name="fn-avgnni2args-1" result="pass"/><test-case name="fn-avgnni2args-2" result="fail"/><test-case name="fn-avgnni2args-3" result="fail"/><test-case name="fn-avgnni2args-4" result="fail"/><test-case name="fn-avgnni2args-5" result="fail"/><test-case name="fn-avgsht2args-1" result="pass"/><test-case name="fn-avgsht2args-2" result="pass"/><test-case name="fn-avgsht2args-3" result="pass"/><test-case name="fn-avgsht2args-4" result="pass"/><test-case name="fn-avgsht2args-5" result="pass"/><test-case name="fn-avg-1" result="pass"/><test-case name="fn-avg-2" result="pass"/><test-case name="fn-avg-mix-args-001" result="pass"/><test-case name="fn-avg-mix-args-002" result="pass"/><test-case name="fn-avg-mix-args-003" result="pass"/><test-case name="fn-avg-mix-args-004" result="pass"/><test-case name="fn-avg-mix-args-005" result="pass"/><test-case name="fn-avg-mix-args-006" result="pass"/><test-case name="fn-avg-mix-args-007" result="pass"/><test-case name="fn-avg-mix-args-008" result="pass"/><test-case name="fn-avg-mix-args-009" result="pass"/><test-case name="fn-avg-mix-args-010" result="pass"/><test-case name="fn-avg-mix-args-011" result="pass"/><test-case name="fn-avg-mix-args-012" result="fail"/><test-case name="fn-avg-mix-args-013" result="pass"/><test-case name="fn-avg-mix-args-014" result="fail"/><test-case name="fn-avg-mix-args-015" result="pass"/><test-case name="fn-avg-mix-args-016" result="pass"/><test-case name="fn-avg-mix-args-017" result="pass"/><test-case name="fn-avg-mix-args-018" result="pass"/><test-case name="fn-avg-mix-args-019" result="pass"/><test-case name="fn-avg-mix-args-020" result="pass"/><test-case name="fn-avg-mix-args-021" result="pass"/><test-case name="fn-avg-mix-args-022" result="pass"/><test-case name="fn-avg-mix-args-023" result="pass"/><test-case name="fn-avg-mix-args-024" result="pass"/><test-case name="fn-avg-mix-args-025" result="pass"/><test-case name="fn-avg-mix-args-026" result="pass"/><test-case name="fn-avg-mix-args-027" result="pass"/><test-case name="fn-avg-mix-args-028" result="pass"/><test-case name="fn-avg-mix-args-029" result="pass"/><test-case name="fn-avg-mix-args-030" result="pass"/><test-case name="fn-avg-mix-args-031" result="pass"/><test-case name="fn-avg-mix-args-032" result="pass"/><test-case name="fn-avg-mix-args-033" result="pass"/><test-case name="fn-avg-mix-args-034" result="pass"/><test-case name="fn-avg-mix-args-035" result="pass"/><test-case name="fn-avg-mix-args-036" result="pass"/><test-case name="fn-avg-mix-args-037" result="pass"/><test-case name="fn-avg-mix-args-038" result="pass"/><test-case name="fn-avg-mix-args-039" result="pass"/><test-case name="fn-avg-mix-args-040" result="pass"/><test-case name="fn-avg-mix-args-041" result="pass"/><test-case name="fn-avg-mix-args-042" result="pass"/><test-case name="fn-avg-mix-args-043" result="pass"/><test-case name="fn-avg-mix-args-044" result="pass"/><test-case name="fn-avg-mix-args-045" result="pass"/><test-case name="fn-avg-mix-args-046" result="pass"/><test-case name="fn-avg-mix-args-047" result="pass"/><test-case name="fn-avg-mix-args-048" result="pass"/><test-case name="fn-avg-mix-args-049" result="pass"/><test-case name="fn-avg-mix-args-050" result="pass"/><test-case name="fn-avg-mix-args-051" result="pass"/><test-case name="fn-avg-mix-args-052" result="pass"/><test-case name="fn-avg-mix-args-053" result="pass"/><test-case name="fn-avg-mix-args-054" result="pass"/><test-case name="fn-avg-mix-args-055" result="pass"/><test-case name="fn-avg-mix-args-056" result="pass"/><test-case name="fn-avg-mix-args-057" result="pass"/><test-case name="fn-avg-mix-args-058" result="pass"/><test-case name="fn-avg-mix-args-059" result="pass"/><test-case name="fn-avg-mix-args-060" result="pass"/><test-case name="fn-avg-mix-args-061" result="pass"/><test-case name="fn-avg-mix-args-062" result="pass"/><test-case name="fn-avg-mix-args-063" result="pass"/><test-case name="fn-avg-mix-args-064" result="pass"/><test-case name="fn-avg-mix-args-065" result="pass"/><test-case name="fn-avg-mix-args-066" result="pass"/><test-case name="K-SeqAVGFunc-1" result="pass"/><test-case name="K-SeqAVGFunc-2" result="pass"/><test-case name="K-SeqAVGFunc-3" result="pass"/><test-case name="K-SeqAVGFunc-4" result="pass"/><test-case name="K-SeqAVGFunc-5" result="pass"/><test-case name="K-SeqAVGFunc-6" result="pass"/><test-case name="K-SeqAVGFunc-7" result="pass"/><test-case name="K-SeqAVGFunc-8" result="pass"/><test-case name="K-SeqAVGFunc-9" result="pass"/><test-case name="K-SeqAVGFunc-10" result="pass"/><test-case name="K-SeqAVGFunc-11" result="pass"/><test-case name="K-SeqAVGFunc-12" result="pass"/><test-case name="K-SeqAVGFunc-13" result="pass"/><test-case name="K-SeqAVGFunc-14" result="pass"/><test-case name="K-SeqAVGFunc-15" result="pass"/><test-case name="K-SeqAVGFunc-16" result="pass"/><test-case name="K-SeqAVGFunc-17" result="pass"/><test-case name="K-SeqAVGFunc-18" result="pass"/><test-case name="K-SeqAVGFunc-19" result="pass"/><test-case name="K-SeqAVGFunc-20" result="pass"/><test-case name="K-SeqAVGFunc-21" result="pass"/><test-case name="K-SeqAVGFunc-22" result="pass"/><test-case name="K-SeqAVGFunc-23" result="pass"/><test-case name="K-SeqAVGFunc-24" result="pass"/><test-case name="K-SeqAVGFunc-25" result="pass"/><test-case name="K-SeqAVGFunc-26" result="pass"/><test-case name="K-SeqAVGFunc-27" result="pass"/><test-case name="K-SeqAVGFunc-28" result="pass"/><test-case name="K-SeqAVGFunc-29" result="pass"/><test-case name="K-SeqAVGFunc-30" result="pass"/><test-case name="K-SeqAVGFunc-31" result="pass"/><test-case name="K-SeqAVGFunc-32" result="pass"/><test-case name="K-SeqAVGFunc-33" result="pass"/><test-case name="K-SeqAVGFunc-34" result="pass"/><test-case name="K-SeqAVGFunc-35" result="pass"/><test-case name="K-SeqAVGFunc-36" result="pass"/><test-case name="K-SeqAVGFunc-37" result="pass"/><test-case name="K-SeqAVGFunc-38" result="pass"/><test-case name="K-SeqAVGFunc-39" result="pass"/><test-case name="K-SeqAVGFunc-40" result="pass"/><test-case name="K-SeqAVGFunc-41" result="pass"/><test-case name="K-SeqAVGFunc-42" result="pass"/><test-case name="K-SeqAVGFunc-43" result="pass"/><test-case name="K2-SeqAVGFunc-1" result="pass"/><test-case name="K2-SeqAVGFunc-2" result="pass"/><test-case name="K2-SeqAVGFunc-3" result="pass"/><test-case name="fn-maxint1args-1" result="pass"/><test-case name="fn-maxint1args-2" result="pass"/><test-case name="fn-maxint1args-3" result="pass"/><test-case name="fn-maxintg1args-1" result="pass"/><test-case name="fn-maxintg1args-2" result="pass"/><test-case name="fn-maxintg1args-3" result="pass"/><test-case name="fn-maxdec1args-1" result="fail"/><test-case name="fn-maxdec1args-2" result="fail"/><test-case name="fn-maxdec1args-3" result="fail"/><test-case name="fn-maxdbl1args-1" result="pass"/><test-case name="fn-maxdbl1args-2" result="pass"/><test-case name="fn-maxdbl1args-3" result="pass"/><test-case name="fn-maxflt1args-1" result="pass"/><test-case name="fn-maxflt1args-2" result="pass"/><test-case name="fn-maxflt1args-3" result="pass"/><test-case name="fn-maxlng1args-1" result="pass"/><test-case name="fn-maxlng1args-2" result="pass"/><test-case name="fn-maxlng1args-3" result="pass"/><test-case name="fn-maxusht1args-1" result="pass"/><test-case name="fn-maxusht1args-2" result="pass"/><test-case name="fn-maxusht1args-3" result="pass"/><test-case name="fn-maxnint1args-1" result="pass"/><test-case name="fn-maxnint1args-2" result="pass"/><test-case name="fn-maxnint1args-3" result="pass"/><test-case name="fn-maxpint1args-1" result="pass"/><test-case name="fn-maxpint1args-2" result="pass"/><test-case name="fn-maxpint1args-3" result="pass"/><test-case name="fn-maxulng1args-1" result="pass"/><test-case name="fn-maxulng1args-2" result="pass"/><test-case name="fn-maxulng1args-3" result="pass"/><test-case name="fn-maxnpi1args-1" result="pass"/><test-case name="fn-maxnpi1args-2" result="pass"/><test-case name="fn-maxnpi1args-3" result="pass"/><test-case name="fn-maxnni1args-1" result="pass"/><test-case name="fn-maxnni1args-2" result="pass"/><test-case name="fn-maxnni1args-3" result="pass"/><test-case name="fn-maxsht1args-1" result="pass"/><test-case name="fn-maxsht1args-2" result="pass"/><test-case name="fn-maxsht1args-3" result="pass"/><test-case name="fn-maxint2args-1" result="pass"/><test-case name="fn-maxint2args-2" result="pass"/><test-case name="fn-maxint2args-3" result="pass"/><test-case name="fn-maxint2args-4" result="pass"/><test-case name="fn-maxint2args-5" result="pass"/><test-case name="fn-maxintg2args-1" result="pass"/><test-case name="fn-maxintg2args-2" result="pass"/><test-case name="fn-maxintg2args-3" result="pass"/><test-case name="fn-maxintg2args-4" result="pass"/><test-case name="fn-maxintg2args-5" result="pass"/><test-case name="fn-maxdec2args-1" result="fail"/><test-case name="fn-maxdec2args-2" result="fail"/><test-case name="fn-maxdec2args-3" result="fail"/><test-case name="fn-maxdec2args-4" result="fail"/><test-case name="fn-maxdec2args-5" result="fail"/><test-case name="fn-maxdbl2args-1" result="pass"/><test-case name="fn-maxdbl2args-2" result="pass"/><test-case name="fn-maxdbl2args-3" result="pass"/><test-case name="fn-maxdbl2args-4" result="pass"/><test-case name="fn-maxdbl2args-5" result="pass"/><test-case name="fn-maxflt2args-1" result="pass"/><test-case name="fn-maxflt2args-2" result="pass"/><test-case name="fn-maxflt2args-3" result="pass"/><test-case name="fn-maxflt2args-4" result="pass"/><test-case name="fn-maxflt2args-5" result="pass"/><test-case name="fn-maxlng2args-1" result="pass"/><test-case name="fn-maxlng2args-2" result="pass"/><test-case name="fn-maxlng2args-3" result="pass"/><test-case name="fn-maxlng2args-4" result="pass"/><test-case name="fn-maxlng2args-5" result="pass"/><test-case name="fn-maxusht2args-1" result="pass"/><test-case name="fn-maxusht2args-2" result="pass"/><test-case name="fn-maxusht2args-3" result="pass"/><test-case name="fn-maxusht2args-4" result="pass"/><test-case name="fn-maxusht2args-5" result="pass"/><test-case name="fn-maxnint2args-1" result="pass"/><test-case name="fn-maxnint2args-2" result="pass"/><test-case name="fn-maxnint2args-3" result="pass"/><test-case name="fn-maxnint2args-4" result="pass"/><test-case name="fn-maxnint2args-5" result="pass"/><test-case name="fn-maxpint2args-1" result="pass"/><test-case name="fn-maxpint2args-2" result="pass"/><test-case name="fn-maxpint2args-3" result="pass"/><test-case name="fn-maxpint2args-4" result="pass"/><test-case name="fn-maxpint2args-5" result="pass"/><test-case name="fn-maxulng2args-1" result="pass"/><test-case name="fn-maxulng2args-2" result="pass"/><test-case name="fn-maxulng2args-3" result="pass"/><test-case name="fn-maxulng2args-4" result="pass"/><test-case name="fn-maxulng2args-5" result="pass"/><test-case name="fn-maxnpi2args-1" result="pass"/><test-case name="fn-maxnpi2args-2" result="pass"/><test-case name="fn-maxnpi2args-3" result="pass"/><test-case name="fn-maxnpi2args-4" result="pass"/><test-case name="fn-maxnpi2args-5" result="pass"/><test-case name="fn-maxnni2args-1" result="pass"/><test-case name="fn-maxnni2args-2" result="pass"/><test-case name="fn-maxnni2args-3" result="pass"/><test-case name="fn-maxnni2args-4" result="pass"/><test-case name="fn-maxnni2args-5" result="pass"/><test-case name="fn-maxsht2args-1" result="pass"/><test-case name="fn-maxsht2args-2" result="pass"/><test-case name="fn-maxsht2args-3" result="pass"/><test-case name="fn-maxsht2args-4" result="pass"/><test-case name="fn-maxsht2args-5" result="pass"/><test-case name="fn-max-1" result="pass"/><test-case name="fn-max-2" result="pass"/><test-case name="fn-max-3" result="pass"/><test-case name="K-SeqMAXFunc-1" result="pass"/><test-case name="K-SeqMAXFunc-2" result="pass"/><test-case name="K-SeqMAXFunc-3" result="pass"/><test-case name="K-SeqMAXFunc-4" result="pass"/><test-case name="K-SeqMAXFunc-5" result="pass"/><test-case name="K-SeqMAXFunc-6" result="pass"/><test-case name="K-SeqMAXFunc-7" result="pass"/><test-case name="K-SeqMAXFunc-8" result="pass"/><test-case name="K-SeqMAXFunc-9" result="pass"/><test-case name="K-SeqMAXFunc-10" result="pass"/><test-case name="K-SeqMAXFunc-11" result="pass"/><test-case name="K-SeqMAXFunc-12" result="pass"/><test-case name="K-SeqMAXFunc-13" result="pass"/><test-case name="K-SeqMAXFunc-14" result="pass"/><test-case name="K-SeqMAXFunc-15" result="pass"/><test-case name="K-SeqMAXFunc-16" result="pass"/><test-case name="K-SeqMAXFunc-17" result="pass"/><test-case name="K-SeqMAXFunc-18" result="pass"/><test-case name="K-SeqMAXFunc-19" result="pass"/><test-case name="K-SeqMAXFunc-20" result="pass"/><test-case name="K-SeqMAXFunc-21" result="pass"/><test-case name="K-SeqMAXFunc-22" result="pass"/><test-case name="K-SeqMAXFunc-23" result="pass"/><test-case name="K-SeqMAXFunc-24" result="pass"/><test-case name="K-SeqMAXFunc-25" result="pass"/><test-case name="K-SeqMAXFunc-26" result="pass"/><test-case name="K-SeqMAXFunc-27" result="pass"/><test-case name="K-SeqMAXFunc-28" result="pass"/><test-case name="K-SeqMAXFunc-29" result="pass"/><test-case name="K-SeqMAXFunc-30" result="pass"/><test-case name="K-SeqMAXFunc-31" result="pass"/><test-case name="K-SeqMAXFunc-32" result="pass"/><test-case name="K-SeqMAXFunc-33" result="pass"/><test-case name="K-SeqMAXFunc-34" result="pass"/><test-case name="K-SeqMAXFunc-35" result="pass"/><test-case name="K-SeqMAXFunc-36" result="pass"/><test-case name="K-SeqMAXFunc-37" result="pass"/><test-case name="K-SeqMAXFunc-38" result="pass"/><test-case name="K-SeqMAXFunc-39" result="pass"/><test-case name="K-SeqMAXFunc-40" result="pass"/><test-case name="K-SeqMAXFunc-41" result="pass"/><test-case name="K-SeqMAXFunc-42" result="pass"/><test-case name="K-SeqMAXFunc-43" result="pass"/><test-case name="K-SeqMAXFunc-44" result="pass"/><test-case name="K-SeqMAXFunc-45" result="pass"/><test-case name="K-SeqMAXFunc-46" result="pass"/><test-case name="K-SeqMAXFunc-47" result="pass"/><test-case name="K-SeqMAXFunc-48" result="pass"/><test-case name="K-SeqMAXFunc-49" result="pass"/><test-case name="K-SeqMAXFunc-50" result="pass"/><test-case name="K-SeqMAXFunc-51" result="pass"/><test-case name="K-SeqMAXFunc-52" result="pass"/><test-case name="K-SeqMAXFunc-53" result="pass"/><test-case name="K-SeqMAXFunc-54" result="pass"/><test-case name="K-SeqMAXFunc-55" result="pass"/><test-case name="K-SeqMAXFunc-56" result="pass"/><test-case name="K-SeqMAXFunc-57" result="pass"/><test-case name="K-SeqMAXFunc-58" result="pass"/><test-case name="K-SeqMAXFunc-59" result="pass"/><test-case name="K2-SeqMAXFunc-1" result="pass"/><test-case name="K2-SeqMAXFunc-2" result="pass"/><test-case name="K2-SeqMAXFunc-3" result="pass"/><test-case name="K2-SeqMAXFunc-4" result="pass"/><test-case name="K2-SeqMAXFunc-5" result="pass"/><test-case name="K2-SeqMAXFunc-6" result="pass"/><test-case name="K2-SeqMAXFunc-7" result="pass"/><test-case name="fn-minint1args-1" result="pass"/><test-case name="fn-minint1args-2" result="pass"/><test-case name="fn-minint1args-3" result="pass"/><test-case name="fn-minintg1args-1" result="pass"/><test-case name="fn-minintg1args-2" result="pass"/><test-case name="fn-minintg1args-3" result="pass"/><test-case name="fn-mindec1args-1" result="fail"/><test-case name="fn-mindec1args-2" result="fail"/><test-case name="fn-mindec1args-3" result="fail"/><test-case name="fn-mindbl1args-1" result="pass"/><test-case name="fn-mindbl1args-2" result="pass"/><test-case name="fn-mindbl1args-3" result="pass"/><test-case name="fn-minflt1args-1" result="pass"/><test-case name="fn-minflt1args-2" result="pass"/><test-case name="fn-minflt1args-3" result="pass"/><test-case name="fn-minlng1args-1" result="pass"/><test-case name="fn-minlng1args-2" result="pass"/><test-case name="fn-minlng1args-3" result="pass"/><test-case name="fn-minusht1args-1" result="pass"/><test-case name="fn-minusht1args-2" result="pass"/><test-case name="fn-minusht1args-3" result="pass"/><test-case name="fn-minnint1args-1" result="pass"/><test-case name="fn-minnint1args-2" result="pass"/><test-case name="fn-minnint1args-3" result="pass"/><test-case name="fn-minpint1args-1" result="pass"/><test-case name="fn-minpint1args-2" result="pass"/><test-case name="fn-minpint1args-3" result="pass"/><test-case name="fn-minulng1args-1" result="pass"/><test-case name="fn-minulng1args-2" result="pass"/><test-case name="fn-minulng1args-3" result="pass"/><test-case name="fn-minnpi1args-1" result="pass"/><test-case name="fn-minnpi1args-2" result="pass"/><test-case name="fn-minnpi1args-3" result="pass"/><test-case name="fn-minnni1args-1" result="pass"/><test-case name="fn-minnni1args-2" result="pass"/><test-case name="fn-minnni1args-3" result="pass"/><test-case name="fn-minsht1args-1" result="pass"/><test-case name="fn-minsht1args-2" result="pass"/><test-case name="fn-minsht1args-3" result="pass"/><test-case name="fn-minint2args-1" result="pass"/><test-case name="fn-minint2args-2" result="pass"/><test-case name="fn-minint2args-3" result="pass"/><test-case name="fn-minint2args-4" result="pass"/><test-case name="fn-minint2args-5" result="pass"/><test-case name="fn-minintg2args-1" result="pass"/><test-case name="fn-minintg2args-2" result="pass"/><test-case name="fn-minintg2args-3" result="pass"/><test-case name="fn-minintg2args-4" result="pass"/><test-case name="fn-minintg2args-5" result="pass"/><test-case name="fn-mindec2args-1" result="fail"/><test-case name="fn-mindec2args-2" result="fail"/><test-case name="fn-mindec2args-3" result="fail"/><test-case name="fn-mindec2args-4" result="fail"/><test-case name="fn-mindec2args-5" result="fail"/><test-case name="fn-mindbl2args-1" result="pass"/><test-case name="fn-mindbl2args-2" result="pass"/><test-case name="fn-mindbl2args-3" result="pass"/><test-case name="fn-mindbl2args-4" result="pass"/><test-case name="fn-mindbl2args-5" result="pass"/><test-case name="fn-minflt2args-1" result="pass"/><test-case name="fn-minflt2args-2" result="pass"/><test-case name="fn-minflt2args-3" result="pass"/><test-case name="fn-minflt2args-4" result="pass"/><test-case name="fn-minflt2args-5" result="pass"/><test-case name="fn-minlng2args-1" result="pass"/><test-case name="fn-minlng2args-2" result="pass"/><test-case name="fn-minlng2args-3" result="pass"/><test-case name="fn-minlng2args-4" result="pass"/><test-case name="fn-minlng2args-5" result="pass"/><test-case name="fn-minusht2args-1" result="pass"/><test-case name="fn-minusht2args-2" result="pass"/><test-case name="fn-minusht2args-3" result="pass"/><test-case name="fn-minusht2args-4" result="pass"/><test-case name="fn-minusht2args-5" result="pass"/><test-case name="fn-minnint2args-1" result="pass"/><test-case name="fn-minnint2args-2" result="pass"/><test-case name="fn-minnint2args-3" result="pass"/><test-case name="fn-minnint2args-4" result="pass"/><test-case name="fn-minnint2args-5" result="pass"/><test-case name="fn-minpint2args-1" result="pass"/><test-case name="fn-minpint2args-2" result="pass"/><test-case name="fn-minpint2args-3" result="pass"/><test-case name="fn-minpint2args-4" result="pass"/><test-case name="fn-minpint2args-5" result="pass"/><test-case name="fn-minulng2args-1" result="pass"/><test-case name="fn-minulng2args-2" result="pass"/><test-case name="fn-minulng2args-3" result="pass"/><test-case name="fn-minulng2args-4" result="pass"/><test-case name="fn-minulng2args-5" result="pass"/><test-case name="fn-minnpi2args-1" result="pass"/><test-case name="fn-minnpi2args-2" result="pass"/><test-case name="fn-minnpi2args-3" result="pass"/><test-case name="fn-minnpi2args-4" result="pass"/><test-case name="fn-minnpi2args-5" result="pass"/><test-case name="fn-minnni2args-1" result="pass"/><test-case name="fn-minnni2args-2" result="pass"/><test-case name="fn-minnni2args-3" result="pass"/><test-case name="fn-minnni2args-4" result="pass"/><test-case name="fn-minnni2args-5" result="pass"/><test-case name="fn-minsht2args-1" result="pass"/><test-case name="fn-minsht2args-2" result="pass"/><test-case name="fn-minsht2args-3" result="pass"/><test-case name="fn-minsht2args-4" result="pass"/><test-case name="fn-minsht2args-5" result="pass"/><test-case name="fn-min-1" result="pass"/><test-case name="fn-min-2" result="pass"/><test-case name="fn-min-3" result="pass"/><test-case name="K-SeqMINFunc-1" result="pass"/><test-case name="K-SeqMINFunc-2" result="pass"/><test-case name="K-SeqMINFunc-3" result="pass"/><test-case name="K-SeqMINFunc-4" result="pass"/><test-case name="K-SeqMINFunc-5" result="pass"/><test-case name="K-SeqMINFunc-6" result="pass"/><test-case name="K-SeqMINFunc-7" result="pass"/><test-case name="K-SeqMINFunc-8" result="pass"/><test-case name="K-SeqMINFunc-9" result="pass"/><test-case name="K-SeqMINFunc-10" result="pass"/><test-case name="K-SeqMINFunc-11" result="pass"/><test-case name="K-SeqMINFunc-12" result="pass"/><test-case name="K-SeqMINFunc-13" result="pass"/><test-case name="K-SeqMINFunc-14" result="pass"/><test-case name="K-SeqMINFunc-15" result="pass"/><test-case name="K-SeqMINFunc-16" result="pass"/><test-case name="K-SeqMINFunc-17" result="pass"/><test-case name="K-SeqMINFunc-18" result="pass"/><test-case name="K-SeqMINFunc-19" result="pass"/><test-case name="K-SeqMINFunc-20" result="pass"/><test-case name="K-SeqMINFunc-21" result="pass"/><test-case name="K-SeqMINFunc-22" result="pass"/><test-case name="K-SeqMINFunc-23" result="pass"/><test-case name="K-SeqMINFunc-24" result="pass"/><test-case name="K-SeqMINFunc-25" result="pass"/><test-case name="K-SeqMINFunc-26" result="pass"/><test-case name="K-SeqMINFunc-27" result="pass"/><test-case name="K-SeqMINFunc-28" result="pass"/><test-case name="K-SeqMINFunc-29" result="pass"/><test-case name="K-SeqMINFunc-30" result="pass"/><test-case name="K-SeqMINFunc-31" result="pass"/><test-case name="K-SeqMINFunc-32" result="pass"/><test-case name="K-SeqMINFunc-33" result="pass"/><test-case name="K-SeqMINFunc-34" result="pass"/><test-case name="K-SeqMINFunc-35" result="pass"/><test-case name="K-SeqMINFunc-36" result="pass"/><test-case name="K-SeqMINFunc-37" result="pass"/><test-case name="K-SeqMINFunc-38" result="pass"/><test-case name="K-SeqMINFunc-39" result="pass"/><test-case name="K-SeqMINFunc-40" result="pass"/><test-case name="K-SeqMINFunc-41" result="pass"/><test-case name="K-SeqMINFunc-42" result="pass"/><test-case name="K-SeqMINFunc-43" result="pass"/><test-case name="K-SeqMINFunc-44" result="pass"/><test-case name="K-SeqMINFunc-45" result="pass"/><test-case name="K-SeqMINFunc-46" result="pass"/><test-case name="K-SeqMINFunc-47" result="pass"/><test-case name="K-SeqMINFunc-48" result="pass"/><test-case name="K-SeqMINFunc-49" result="pass"/><test-case name="K-SeqMINFunc-50" result="pass"/><test-case name="K-SeqMINFunc-51" result="pass"/><test-case name="K2-SeqMINFunc-1" result="pass"/><test-case name="K2-SeqMINFunc-2" result="pass"/><test-case name="K2-SeqMINFunc-3" result="pass"/><test-case name="K2-SeqMINFunc-4" result="pass"/><test-case name="K2-SeqMINFunc-5" result="pass"/><test-case name="K2-SeqMINFunc-6" result="pass"/><test-case name="K2-SeqMINFunc-7" result="pass"/><test-case name="K2-SeqMINFunc-8" result="pass"/><test-case name="K2-SeqMINFunc-9" result="pass"/><test-case name="K2-SeqMINFunc-10" result="pass"/><test-case name="K2-SeqMINFunc-11" result="pass"/><test-case name="K2-SeqMINFunc-12" result="pass"/><test-case name="K2-SeqMINFunc-13" result="pass"/><test-case name="K2-SeqMINFunc-14" result="pass"/><test-case name="K2-SeqMINFunc-15" result="pass"/><test-case name="fn-sumint1args-1" result="pass"/><test-case name="fn-sumint1args-2" result="pass"/><test-case name="fn-sumint1args-3" result="pass"/><test-case name="fn-sumintg1args-1" result="pass"/><test-case name="fn-sumintg1args-2" result="pass"/><test-case name="fn-sumintg1args-3" result="pass"/><test-case name="fn-sumdec1args-1" result="fail"/><test-case name="fn-sumdec1args-2" result="fail"/><test-case name="fn-sumdec1args-3" result="fail"/><test-case name="fn-sumdbl1args-1" result="pass"/><test-case name="fn-sumdbl1args-2" result="pass"/><test-case name="fn-sumdbl1args-3" result="pass"/><test-case name="fn-sumflt1args-1" result="pass"/><test-case name="fn-sumflt1args-2" result="pass"/><test-case name="fn-sumflt1args-3" result="pass"/><test-case name="fn-sumlng1args-1" result="pass"/><test-case name="fn-sumlng1args-2" result="pass"/><test-case name="fn-sumlng1args-3" result="pass"/><test-case name="fn-sumusht1args-1" result="pass"/><test-case name="fn-sumusht1args-2" result="pass"/><test-case name="fn-sumusht1args-3" result="pass"/><test-case name="fn-sumnint1args-1" result="pass"/><test-case name="fn-sumnint1args-2" result="pass"/><test-case name="fn-sumnint1args-3" result="pass"/><test-case name="fn-sumpint1args-1" result="pass"/><test-case name="fn-sumpint1args-2" result="pass"/><test-case name="fn-sumpint1args-3" result="pass"/><test-case name="fn-sumulng1args-1" result="pass"/><test-case name="fn-sumulng1args-2" result="pass"/><test-case name="fn-sumulng1args-3" result="pass"/><test-case name="fn-sumnpi1args-1" result="pass"/><test-case name="fn-sumnpi1args-2" result="pass"/><test-case name="fn-sumnpi1args-3" result="pass"/><test-case name="fn-sumnni1args-1" result="pass"/><test-case name="fn-sumnni1args-2" result="pass"/><test-case name="fn-sumnni1args-3" result="pass"/><test-case name="fn-sumsht1args-1" result="pass"/><test-case name="fn-sumsht1args-2" result="pass"/><test-case name="fn-sumsht1args-3" result="pass"/><test-case name="fn-sumint2args-1" result="pass"/><test-case name="fn-sumint2args-2" result="pass"/><test-case name="fn-sumint2args-3" result="pass"/><test-case name="fn-sumint2args-4" result="pass"/><test-case name="fn-sumintg2args-1" result="pass"/><test-case name="fn-sumintg2args-2" result="pass"/><test-case name="fn-sumintg2args-3" result="pass"/><test-case name="fn-sumintg2args-4" result="pass"/><test-case name="fn-sumdec2args-1" result="fail"/><test-case name="fn-sumdec2args-2" result="pass"/><test-case name="fn-sumdec2args-3" result="fail"/><test-case name="fn-sumdec2args-4" result="pass"/><test-case name="fn-sumdbl2args-1" result="pass"/><test-case name="fn-sumdbl2args-2" result="pass"/><test-case name="fn-sumdbl2args-3" result="pass"/><test-case name="fn-sumdbl2args-4" result="pass"/><test-case name="fn-sumflt2args-1" result="pass"/><test-case name="fn-sumflt2args-2" result="pass"/><test-case name="fn-sumflt2args-3" result="pass"/><test-case name="fn-sumflt2args-4" result="pass"/><test-case name="fn-sumlng2args-1" result="pass"/><test-case name="fn-sumlng2args-2" result="pass"/><test-case name="fn-sumlng2args-3" result="pass"/><test-case name="fn-sumlng2args-4" result="pass"/><test-case name="fn-sumusht2args-1" result="pass"/><test-case name="fn-sumusht2args-2" result="pass"/><test-case name="fn-sumusht2args-3" result="pass"/><test-case name="fn-sumusht2args-4" result="pass"/><test-case name="fn-sumusht2args-5" result="pass"/><test-case name="fn-sumnint2args-1" result="pass"/><test-case name="fn-sumnint2args-2" result="pass"/><test-case name="fn-sumnint2args-3" result="pass"/><test-case name="fn-sumnint2args-4" result="pass"/><test-case name="fn-sumpint2args-1" result="pass"/><test-case name="fn-sumpint2args-2" result="pass"/><test-case name="fn-sumpint2args-3" result="pass"/><test-case name="fn-sumpint2args-4" result="pass"/><test-case name="fn-sumpint2args-5" result="pass"/><test-case name="fn-sumulng2args-1" result="pass"/><test-case name="fn-sumulng2args-2" result="pass"/><test-case name="fn-sumulng2args-3" result="pass"/><test-case name="fn-sumulng2args-4" result="pass"/><test-case name="fn-sumulng2args-5" result="pass"/><test-case name="fn-sumnpi2args-1" result="pass"/><test-case name="fn-sumnpi2args-2" result="pass"/><test-case name="fn-sumnpi2args-3" result="pass"/><test-case name="fn-sumnpi2args-4" result="pass"/><test-case name="fn-sumnni2args-1" result="pass"/><test-case name="fn-sumnni2args-2" result="pass"/><test-case name="fn-sumnni2args-3" result="pass"/><test-case name="fn-sumnni2args-4" result="pass"/><test-case name="fn-sumnni2args-5" result="pass"/><test-case name="fn-sumsht2args-1" result="pass"/><test-case name="fn-sumsht2args-2" result="pass"/><test-case name="fn-sumsht2args-3" result="pass"/><test-case name="fn-sumsht2args-4" result="pass"/><test-case name="fn-sumint3args-1" result="pass"/><test-case name="fn-sumint3args-2" result="pass"/><test-case name="fn-sumint3args-3" result="pass"/><test-case name="fn-sumint3args-4" result="pass"/><test-case name="fn-sumintg3args-1" result="pass"/><test-case name="fn-sumintg3args-2" result="pass"/><test-case name="fn-sumintg3args-3" result="pass"/><test-case name="fn-sumintg3args-4" result="pass"/><test-case name="fn-sumdec3args-1" result="fail"/><test-case name="fn-sumdec3args-2" result="fail"/><test-case name="fn-sumdec3args-3" result="fail"/><test-case name="fn-sumdec3args-4" result="fail"/><test-case name="fn-sumdbl3args-1" result="pass"/><test-case name="fn-sumdbl3args-2" result="pass"/><test-case name="fn-sumdbl3args-3" result="pass"/><test-case name="fn-sumdbl3args-4" result="pass"/><test-case name="fn-sumdbl3args-5" result="pass"/><test-case name="fn-sumdbl3args-6" result="pass"/><test-case name="fn-sumflt3args-1" result="fail"/><test-case name="fn-sumflt3args-2" result="pass"/><test-case name="fn-sumflt3args-3" result="pass"/><test-case name="fn-sumflt3args-4" result="pass"/><test-case name="fn-sumflt3args-5" result="pass"/><test-case name="fn-sumflt3args-6" result="pass"/><test-case name="fn-sumlng3args-1" result="pass"/><test-case name="fn-sumlng3args-2" result="pass"/><test-case name="fn-sumlng3args-3" result="pass"/><test-case name="fn-sumlng3args-4" result="pass"/><test-case name="fn-sumlng3args-5" result="pass"/><test-case name="fn-sumlng3args-6" result="pass"/><test-case name="fn-sumusht3args-1" result="pass"/><test-case name="fn-sumusht3args-2" result="pass"/><test-case name="fn-sumusht3args-3" result="pass"/><test-case name="fn-sumusht3args-4" result="pass"/><test-case name="fn-sumusht3args-5" result="pass"/><test-case name="fn-sumusht3args-6" result="pass"/><test-case name="fn-sumusht3args-7" result="pass"/><test-case name="fn-sumnint3args-1" result="pass"/><test-case name="fn-sumnint3args-2" result="pass"/><test-case name="fn-sumpint3args-1" result="pass"/><test-case name="fn-sumpint3args-2" result="pass"/><test-case name="fn-sumpint3args-3" result="pass"/><test-case name="fn-sumpint3args-4" result="pass"/><test-case name="fn-sumpint3args-5" result="pass"/><test-case name="fn-sumpint3args-6" result="pass"/><test-case name="fn-sumpint3args-7" result="pass"/><test-case name="fn-sumulng3args-1" result="pass"/><test-case name="fn-sumulng3args-2" result="pass"/><test-case name="fn-sumulng3args-3" result="pass"/><test-case name="fn-sumulng3args-4" result="pass"/><test-case name="fn-sumulng3args-5" result="pass"/><test-case name="fn-sumulng3args-6" result="pass"/><test-case name="fn-sumulng3args-7" result="pass"/><test-case name="fn-sumnpi3args-1" result="pass"/><test-case name="fn-sumnpi3args-2" result="pass"/><test-case name="fn-sumnpi3args-3" result="pass"/><test-case name="fn-sumnpi3args-4" result="pass"/><test-case name="fn-sumnpi3args-5" result="pass"/><test-case name="fn-sumnpi3args-6" result="pass"/><test-case name="fn-sumnni3args-1" result="pass"/><test-case name="fn-sumnni3args-2" result="pass"/><test-case name="fn-sumnni3args-3" result="pass"/><test-case name="fn-sumnni3args-4" result="pass"/><test-case name="fn-sumnni3args-5" result="pass"/><test-case name="fn-sumnni3args-6" result="pass"/><test-case name="fn-sumnni3args-7" result="pass"/><test-case name="fn-sumsht3args-1" result="pass"/><test-case name="fn-sumsht3args-2" result="pass"/><test-case name="fn-sumsht3args-3" result="pass"/><test-case name="fn-sumsht3args-4" result="pass"/><test-case name="K-SeqSUMFunc-1" result="pass"/><test-case name="K-SeqSUMFunc-2" result="pass"/><test-case name="K-SeqSUMFunc-3" result="pass"/><test-case name="K-SeqSUMFunc-4" result="pass"/><test-case name="K-SeqSUMFunc-5" result="pass"/><test-case name="K-SeqSUMFunc-6" result="pass"/><test-case name="K-SeqSUMFunc-7" result="pass"/><test-case name="K-SeqSUMFunc-8" result="pass"/><test-case name="K-SeqSUMFunc-9" result="pass"/><test-case name="K-SeqSUMFunc-10" result="pass"/><test-case name="K-SeqSUMFunc-11" result="pass"/><test-case name="K-SeqSUMFunc-12" result="pass"/><test-case name="K-SeqSUMFunc-13" result="pass"/><test-case name="K-SeqSUMFunc-14" result="pass"/><test-case name="K-SeqSUMFunc-15" result="pass"/><test-case name="K-SeqSUMFunc-16" result="pass"/><test-case name="K-SeqSUMFunc-17" result="pass"/><test-case name="K-SeqSUMFunc-18" result="pass"/><test-case name="K-SeqSUMFunc-19" result="pass"/><test-case name="K-SeqSUMFunc-20" result="pass"/><test-case name="K-SeqSUMFunc-21" result="pass"/><test-case name="K-SeqSUMFunc-22" result="pass"/><test-case name="K-SeqSUMFunc-23" result="pass"/><test-case name="K-SeqSUMFunc-24" result="pass"/><test-case name="K-SeqSUMFunc-25" result="pass"/><test-case name="K-SeqSUMFunc-26" result="pass"/><test-case name="K-SeqSUMFunc-27" result="pass"/><test-case name="K-SeqSUMFunc-28" result="pass"/><test-case name="K-SeqSUMFunc-29" result="pass"/><test-case name="K-SeqSUMFunc-30" result="pass"/><test-case name="K-SeqSUMFunc-31" result="pass"/><test-case name="K-SeqSUMFunc-32" result="pass"/><test-case name="K-SeqSUMFunc-33" result="pass"/><test-case name="K2-SeqSUMFunc-1" result="pass"/><test-case name="K2-SeqSUMFunc-2" result="pass"/><test-case name="K2-SeqSUMFunc-3" result="pass"/><test-case name="K2-SeqSUMFunc-4" result="pass"/><test-case name="fn-id-1" result="pass"/><test-case name="fn-id-2" result="pass"/><test-case name="fn-id-3" result="pass"/><test-case name="fn-id-4" result="pass"/><test-case name="fn-id-dtd-5" result="fail"/><test-case name="fn-id-dtd-6" result="pass"/><test-case name="fn-id-dtd-7" result="fail"/><test-case name="fn-id-dtd-8" result="fail"/><test-case name="fn-id-dtd-9" result="fail"/><test-case name="fn-id-dtd-10" result="pass"/><test-case name="fn-id-dtd-11" result="pass"/><test-case name="fn-id-dtd-12" result="fail"/><test-case name="fn-id-dtd-13" result="fail"/><test-case name="fn-id-dtd-14" result="pass"/><test-case name="fn-id-dtd-15" result="fail"/><test-case name="fn-id-dtd-16" result="fail"/><test-case name="fn-id-dtd-17" result="fail"/><test-case name="fn-id-dtd-18" result="fail"/><test-case name="fn-id-dtd-19" result="fail"/><test-case name="fn-id-dtd-20" result="fail"/><test-case name="fn-id-dtd-21" result="fail"/><test-case name="fn-id-22" result="pass"/><test-case name="fn-id-dtd-23" result="fail"/><test-case name="K2-SeqIDFunc-1" result="pass"/><test-case name="K2-SeqIDFunc-2" result="pass"/><test-case name="K2-SeqIDFunc-3" result="pass"/><test-case name="K2-SeqIDFunc-4" result="pass"/><test-case name="K2-SeqIDFunc-5" result="pass"/><test-case name="K2-SeqIDFunc-6" result="pass"/><test-case name="K2-SeqIDFunc-7" result="pass"/><test-case name="K2-SeqIDFunc-8" result="pass"/><test-case name="K2-SeqIDFunc-9" result="pass"/><test-case name="K2-SeqIDFunc-10" result="pass"/><test-case name="K2-SeqIDFunc-11" result="pass"/><test-case name="K2-SeqIDFunc-12" result="pass"/><test-case name="K2-SeqIDFunc-13" result="pass"/><test-case name="fn-idref-1" result="pass"/><test-case name="fn-idref-2" result="pass"/><test-case name="fn-idref-3" result="pass"/><test-case name="fn-idref-4" result="pass"/><test-case name="fn-idref-dtd-5" result="fail"/><test-case name="fn-idref-dtd-6" result="pass"/><test-case name="fn-idref-dtd-7" result="fail"/><test-case name="fn-idref-dtd-8" result="fail"/><test-case name="fn-idref-dtd-9" result="fail"/><test-case name="fn-idref-dtd-10" result="pass"/><test-case name="fn-idref-dtd-11" result="pass"/><test-case name="fn-idref-dtd-12" result="fail"/><test-case name="fn-idref-dtd-13" result="fail"/><test-case name="fn-idref-dtd-14" result="fail"/><test-case name="fn-idref-dtd-15" result="fail"/><test-case name="fn-idref-dtd-16" result="fail"/><test-case name="fn-idref-dtd-17" result="fail"/><test-case name="fn-idref-dtd-18" result="fail"/><test-case name="fn-idref-dtd-19" result="fail"/><test-case name="fn-idref-dtd-20" result="fail"/><test-case name="fn-idref-dtd-21" result="fail"/><test-case name="fn-idref-22" result="pass"/><test-case name="fn-idref-dtd-23" result="fail"/><test-case name="K2-SeqIDREFFunc-1" result="pass"/><test-case name="K2-SeqIDREFFunc-2" result="pass"/><test-case name="K2-SeqIDREFFunc-3" result="pass"/><test-case name="fn-doc-available-1" result="pass"/><test-case name="fn-doc-available-2" result="pass"/><test-case name="fn-doc-available-3" result="pass"/><test-case name="fn-doc-available-4" result="pass"/><test-case name="K2-SeqDocAvailableFunc-1" result="pass"/><test-case name="fn-doc-1" result="pass"/><test-case name="fn-doc-2" result="pass"/><test-case name="fn-doc-3" result="pass"/><test-case name="fn-doc-4" result="pass"/><test-case name="fn-doc-5" result="pass"/><test-case name="fn-doc-6" result="pass"/><test-case name="fn-doc-7" result="pass"/><test-case name="fn-doc-15" result="pass"/><test-case name="fn-doc-16" result="pass"/><test-case name="fn-doc-17" result="fail"/><test-case name="fn-doc-18" result="pass"/><test-case name="fn-doc-19" result="pass"/><test-case name="fn-doc-20" result="pass"/><test-case name="fn-doc-21" result="pass"/><test-case name="fn-doc-22" result="pass"/><test-case name="fn-doc-23" result="pass"/><test-case name="K2-SeqDocFunc-1" result="pass"/><test-case name="K2-SeqDocFunc-2" result="pass"/><test-case name="K2-SeqDocFunc-3" result="pass"/><test-case name="K2-SeqDocFunc-4" result="pass"/><test-case name="K2-SeqDocFunc-5" result="pass"/><test-case name="K2-SeqDocFunc-6" result="pass"/><test-case name="K2-SeqDocFunc-7" result="pass"/><test-case name="K2-SeqDocFunc-8" result="pass"/><test-case name="K2-SeqDocFunc-9" result="pass"/><test-case name="K2-SeqDocFunc-10" result="pass"/><test-case name="K2-SeqDocFunc-11" result="pass"/><test-case name="K2-SeqDocFunc-12" result="pass"/><test-case name="K2-SeqDocFunc-13" result="pass"/><test-case name="fn-doc-24" result="pass"/><test-case name="fn-doc-25" result="pass"/><test-case name="fn-doc-26" result="pass"/><test-case name="fn-doc-27" result="pass"/><test-case name="fn-doc-28" result="pass"/><test-case name="fn-doc-29" result="pass"/><test-case name="fn-doc-30" result="pass"/><test-case name="fn-doc-31" result="pass"/><test-case name="K2-SeqDocFunc-14" result="pass"/><test-case name="fn-doc-32" result="pass"/><test-case name="fn-doc-33" result="fail"/><test-case name="fn-doc-34" result="pass"/><test-case name="fn-doc-35" result="pass"/><test-case name="fn-doc-36" result="pass"/><test-case name="fn-doc-37" result="pass"/><test-case name="fn-collection-1" result="pass"/><test-case name="fn-collection-2" result="pass"/><test-case name="fn-collection-3" result="pass"/><test-case name="fn-collection-4" result="fail"/><test-case name="fn-collection-4d" result="fail"/><test-case name="fn-collection-5" result="fail"/><test-case name="fn-collection-5d" result="fail"/><test-case name="fn-collection-6" result="fail"/><test-case name="fn-collection-7" result="fail"/><test-case name="fn-collection-8" result="fail"/><test-case name="fn-collection-9" result="fail"/><test-case name="fn-collection-10" result="fail"/><test-case name="fn-collection-10d" result="fail"/><test-case name="K2-SeqCollectionFunc-1" result="pass"/><test-case name="K2-SeqCollectionFunc-2" result="pass"/><test-case name="position-1" result="pass"/><test-case name="position-2" result="pass"/><test-case name="position-3" result="pass"/><test-case name="position-4" result="pass"/><test-case name="position-5" result="pass"/><test-case name="position-6" result="pass"/><test-case name="position-7" result="pass"/><test-case name="position-8" result="pass"/><test-case name="position-9" result="pass"/><test-case name="position-10" result="pass"/><test-case name="position-11" result="pass"/><test-case name="position-12" result="pass"/><test-case name="position-13" result="pass"/><test-case name="position-14" result="pass"/><test-case name="position-15" result="pass"/><test-case name="position-16" result="pass"/><test-case name="position-17" result="pass"/><test-case name="position-18" result="pass"/><test-case name="position-19" result="pass"/><test-case name="position-20" result="pass"/><test-case name="position-21" result="pass"/><test-case name="position-22" result="pass"/><test-case name="K-ContextPositionFunc-1" result="pass"/><test-case name="K-ContextPositionFunc-2" result="pass"/><test-case name="K-ContextPositionFunc-3" result="pass"/><test-case name="K-ContextPositionFunc-4" result="pass"/><test-case name="K-ContextPositionFunc-5" result="pass"/><test-case name="K-ContextPositionFunc-6" result="pass"/><test-case name="K-ContextPositionFunc-7" result="pass"/><test-case name="K-ContextPositionFunc-8" result="pass"/><test-case name="K-ContextPositionFunc-9" result="pass"/><test-case name="K-ContextPositionFunc-10" result="pass"/><test-case name="K-ContextPositionFunc-11" result="pass"/><test-case name="K-ContextPositionFunc-12" result="pass"/><test-case name="K-ContextPositionFunc-13" result="pass"/><test-case name="K-ContextPositionFunc-14" result="pass"/><test-case name="K-ContextPositionFunc-15" result="pass"/><test-case name="K-ContextPositionFunc-16" result="pass"/><test-case name="K-ContextPositionFunc-17" result="pass"/><test-case name="K-ContextPositionFunc-18" result="pass"/><test-case name="K-ContextPositionFunc-19" result="pass"/><test-case name="K-ContextPositionFunc-20" result="pass"/><test-case name="K-ContextPositionFunc-21" result="pass"/><test-case name="K-ContextPositionFunc-22" result="pass"/><test-case name="K-ContextPositionFunc-23" result="pass"/><test-case name="K-ContextPositionFunc-24" result="pass"/><test-case name="K-ContextPositionFunc-25" result="pass"/><test-case name="K-ContextPositionFunc-26" result="pass"/><test-case name="K-ContextPositionFunc-27" result="pass"/><test-case name="K-ContextPositionFunc-28" result="pass"/><test-case name="K-ContextPositionFunc-29" result="pass"/><test-case name="K-ContextPositionFunc-30" result="pass"/><test-case name="K-ContextPositionFunc-31" result="pass"/><test-case name="K-ContextPositionFunc-32" result="pass"/><test-case name="K-ContextPositionFunc-33" result="pass"/><test-case name="K-ContextPositionFunc-34" result="pass"/><test-case name="K-ContextPositionFunc-35" result="pass"/><test-case name="K-ContextPositionFunc-36" result="pass"/><test-case name="K-ContextPositionFunc-37" result="pass"/><test-case name="K-ContextPositionFunc-38" result="pass"/><test-case name="K-ContextPositionFunc-39" result="pass"/><test-case name="K-ContextPositionFunc-40" result="pass"/><test-case name="K-ContextPositionFunc-41" result="pass"/><test-case name="K-ContextPositionFunc-42" result="pass"/><test-case name="K-ContextPositionFunc-43" result="pass"/><test-case name="last-1" result="pass"/><test-case name="last-2" result="pass"/><test-case name="last-3" result="pass"/><test-case name="last-4" result="pass"/><test-case name="last-5" result="pass"/><test-case name="last-6" result="pass"/><test-case name="last-7" result="pass"/><test-case name="last-8" result="pass"/><test-case name="last-9" result="fail"/><test-case name="last-10" result="pass"/><test-case name="last-11" result="pass"/><test-case name="last-12" result="pass"/><test-case name="last-13" result="pass"/><test-case name="last-14" result="pass"/><test-case name="last-15" result="pass"/><test-case name="last-16" result="pass"/><test-case name="last-17" result="pass"/><test-case name="last-18" result="pass"/><test-case name="last-19" result="pass"/><test-case name="last-20" result="pass"/><test-case name="last-21" result="pass"/><test-case name="last-22" result="pass"/><test-case name="K-ContextLastFunc-1" result="pass"/><test-case name="K-ContextLastFunc-2" result="pass"/><test-case name="K-ContextLastFunc-3" result="pass"/><test-case name="K-ContextLastFunc-4" result="pass"/><test-case name="K-ContextLastFunc-5" result="pass"/><test-case name="K-ContextLastFunc-6" result="pass"/><test-case name="K-ContextLastFunc-7" result="pass"/><test-case name="K-ContextLastFunc-8" result="pass"/><test-case name="K-ContextLastFunc-9" result="pass"/><test-case name="K-ContextLastFunc-10" result="pass"/><test-case name="K-ContextLastFunc-11" result="pass"/><test-case name="K-ContextLastFunc-12" result="pass"/><test-case name="K-ContextLastFunc-13" result="pass"/><test-case name="K-ContextLastFunc-14" result="pass"/><test-case name="K-ContextLastFunc-15" result="pass"/><test-case name="K-ContextLastFunc-16" result="pass"/><test-case name="K-ContextLastFunc-17" result="pass"/><test-case name="K-ContextLastFunc-18" result="pass"/><test-case name="K-ContextLastFunc-19" result="pass"/><test-case name="K-ContextLastFunc-20" result="pass"/><test-case name="K-ContextLastFunc-21" result="pass"/><test-case name="K-ContextLastFunc-22" result="pass"/><test-case name="K-ContextLastFunc-23" result="pass"/><test-case name="K-ContextLastFunc-24" result="pass"/><test-case name="K-ContextLastFunc-25" result="pass"/><test-case name="K-ContextLastFunc-26" result="pass"/><test-case name="K-ContextLastFunc-27" result="pass"/><test-case name="K-ContextLastFunc-28" result="pass"/><test-case name="K-ContextLastFunc-29" result="pass"/><test-case name="fn-current-dateTime-1" result="not tested"/><test-case name="fn-current-dateTime-2" result="not tested"/><test-case name="fn-current-dateTime-3" result="not tested"/><test-case name="fn-current-dateTime-4" result="not tested"/><test-case name="fn-current-dateTime-5" result="pass"/><test-case name="fn-current-dateTime-6" result="not tested"/><test-case name="fn-current-datetime-7" result="not tested"/><test-case name="fn-current-dateTime-8" result="pass"/><test-case name="fn-current-dateTime-9" result="pass"/><test-case name="fn-current-dateTime-10" result="not tested"/><test-case name="fn-current-dateTime-11" result="not tested"/><test-case name="fn-current-dateTime-12" result="pass"/><test-case name="fn-current-dateTime-13" result="pass"/><test-case name="fn-current-dateTime-14" result="pass"/><test-case name="fn-current-dateTime-15" result="pass"/><test-case name="fn-current-dateTime-16" result="pass"/><test-case name="fn-current-dateTime-17" result="pass"/><test-case name="fn-current-dateTime-18" result="pass"/><test-case name="fn-current-dateTime-19" result="pass"/><test-case name="fn-current-dateTime-20" result="pass"/><test-case name="fn-current-dateTime-21" result="not tested"/><test-case name="fn-current-dateTime-22" result="not tested"/><test-case name="fn-current-dateTime-23" result="not tested"/><test-case name="fn-current-dateTime-24" result="not tested"/><test-case name="K-ContextCurrentDatetimeFunc-1" result="pass"/><test-case name="K-ContextCurrentDatetimeFunc-2" result="pass"/><test-case name="fn-current-date-1" result="not tested"/><test-case name="fn-current-date-2" result="not tested"/><test-case name="fn-current-date-3" result="not tested"/><test-case name="fn-current-date-4" result="not tested"/><test-case name="fn-current-date-5" result="pass"/><test-case name="fn-current-date-6" result="not tested"/><test-case name="fn-current-date-7" result="not tested"/><test-case name="fn-current-date-8" result="pass"/><test-case name="fn-current-date-9" result="pass"/><test-case name="fn-current-date-10" result="not tested"/><test-case name="fn-current-date-11" result="not tested"/><test-case name="fn-current-date-12" result="pass"/><test-case name="fn-current-date-13" result="pass"/><test-case name="fn-current-date-14" result="pass"/><test-case name="fn-current-date-15" result="pass"/><test-case name="fn-current-date-16" result="pass"/><test-case name="fn-current-date-17" result="pass"/><test-case name="fn-current-date-18" result="pass"/><test-case name="fn-current-date-19" result="pass"/><test-case name="fn-current-date-20" result="pass"/><test-case name="fn-current-date-21" result="not tested"/><test-case name="K-ContextCurrentDateFunc-1" result="pass"/><test-case name="K-ContextCurrentDateFunc-2" result="pass"/><test-case name="fn-current-time-1" result="not tested"/><test-case name="fn-current-time-2" result="not tested"/><test-case name="fn-current-time-3" result="not tested"/><test-case name="fn-current-time-4" result="not tested"/><test-case name="fn-current-time-5" result="pass"/><test-case name="fn-current-time-6" result="not tested"/><test-case name="fn-current-time-7" result="not tested"/><test-case name="fn-current-time-8" result="pass"/><test-case name="fn-current-time-9" result="pass"/><test-case name="fn-current-time-10" result="not tested"/><test-case name="fn-current-time-11" result="not tested"/><test-case name="fn-current-time-12" result="pass"/><test-case name="fn-current-time-13" result="pass"/><test-case name="fn-current-time-14" result="pass"/><test-case name="fn-current-time-15" result="pass"/><test-case name="fn-current-time-16" result="pass"/><test-case name="fn-current-time-17" result="pass"/><test-case name="fn-current-time-18" result="pass"/><test-case name="fn-current-time-19" result="pass"/><test-case name="fn-current-time-20" result="pass"/><test-case name="K-ContextCurrentTimeFunc-1" result="pass"/><test-case name="K-ContextCurrentTimeFunc-2" result="pass"/><test-case name="fn-default-collation-1" result="pass"/><test-case name="fn-default-collation-2" result="pass"/><test-case name="K-ContextDefaultCollationFunc-1" result="pass"/><test-case name="K-ContextDefaultCollationFunc-2" result="pass"/><test-case name="K-ContextDefaultCollationFunc-3" result="pass"/><test-case name="fn-implicit-timezone-1" result="pass"/><test-case name="fn-implicit-timezone-2" result="not tested"/><test-case name="fn-implicit-timezone-3" result="not tested"/><test-case name="fn-implicit-timezone-4" result="pass"/><test-case name="fn-implicit-timezone-5" result="not tested"/><test-case name="fn-implicit-timezone-6" result="pass"/><test-case name="fn-implicit-timezone-7" result="pass"/><test-case name="fn-implicit-timezone-8" result="pass"/><test-case name="fn-implicit-timezone-9" result="not tested"/><test-case name="fn-implicit-timezone-10" result="pass"/><test-case name="fn-implicit-timezone-11" result="pass"/><test-case name="fn-implicit-timezone-12" result="pass"/><test-case name="fn-implicit-timezone-13" result="pass"/><test-case name="fn-implicit-timezone-14" result="not tested"/><test-case name="fn-implicit-timezone-15" result="not tested"/><test-case name="fn-implicit-timezone-16" result="not tested"/><test-case name="fn-implicit-timezone-17" result="not tested"/><test-case name="fn-implicit-timezone-18" result="not tested"/><test-case name="fn-implicit-timezone-19" result="not tested"/><test-case name="fn-implicit-timezone-20" result="not tested"/><test-case name="fn-implicit-timezone-21" result="not tested"/><test-case name="fn-implicit-timezone-22" result="not tested"/><test-case name="fn-implicit-timezone-23" result="not tested"/><test-case name="K-ContextImplicitTimezoneFunc-1" result="pass"/><test-case name="K-ContextImplicitTimezoneFunc-2" result="pass"/><test-case name="K-ContextImplicitTimezoneFunc-3" result="pass"/><test-case name="ancestor-1" result="pass"/><test-case name="ancestor-2" result="pass"/><test-case name="ancestor-3" result="pass"/><test-case name="ancestor-4" result="pass"/><test-case name="ancestor-5" result="pass"/><test-case name="ancestor-6" result="pass"/><test-case name="ancestor-7" result="pass"/><test-case name="ancestor-8" result="pass"/><test-case name="ancestor-9" result="pass"/><test-case name="ancestor-10" result="pass"/><test-case name="ancestor-11" result="pass"/><test-case name="ancestor-12" result="pass"/><test-case name="ancestor-13" result="pass"/><test-case name="ancestor-14" result="pass"/><test-case name="ancestor-15" result="pass"/><test-case name="ancestor-16" result="pass"/><test-case name="ancestor-17" result="pass"/><test-case name="ancestor-18" result="pass"/><test-case name="ancestor-19" result="pass"/><test-case name="ancestor-20" result="pass"/><test-case name="ancestor-21" result="pass"/><test-case name="unabbreviatedSyntax-10" result="pass"/><test-case name="K2-ancestorAxis-1" result="pass"/><test-case name="K2-ancestorAxis-2" result="pass"/><test-case name="K2-ancestorAxis-3" result="pass"/><test-case name="K2-ancestorAxis-4" result="pass"/><test-case name="K2-ancestorAxis-5" result="pass"/><test-case name="K2-ancestorAxis-6" result="pass"/><test-case name="K2-ancestorAxis-7" result="pass"/><test-case name="K2-ancestorAxis-8" result="pass"/><test-case name="K2-ancestorAxis-9" result="pass"/><test-case name="K2-ancestorAxis-10" result="pass"/><test-case name="K2-ancestorAxis-11" result="pass"/><test-case name="K2-ancestorAxis-12" result="pass"/><test-case name="K2-ancestorAxis-13" result="pass"/><test-case name="K2-ancestorAxis-14" result="pass"/><test-case name="K2-ancestorAxis-15" result="pass"/><test-case name="K2-ancestorAxis-16" result="pass"/><test-case name="K2-ancestorAxis-17" result="pass"/><test-case name="K2-ancestorAxis-18" result="pass"/><test-case name="K2-ancestorAxis-19" result="pass"/><test-case name="K2-ancestorAxis-20" result="pass"/><test-case name="K2-ancestorAxis-21" result="pass"/><test-case name="ancestorself-1" result="pass"/><test-case name="ancestorself-2" result="pass"/><test-case name="ancestorself-3" result="pass"/><test-case name="ancestorself-4" result="pass"/><test-case name="ancestorself-5" result="pass"/><test-case name="ancestorself-6" result="pass"/><test-case name="ancestorself-7" result="pass"/><test-case name="ancestorself-8" result="pass"/><test-case name="ancestorself-9" result="pass"/><test-case name="ancestorself-10" result="pass"/><test-case name="ancestorself-11" result="pass"/><test-case name="ancestorself-12" result="pass"/><test-case name="ancestorself-13" result="pass"/><test-case name="ancestorself-14" result="pass"/><test-case name="ancestorself-15" result="pass"/><test-case name="ancestorself-16" result="pass"/><test-case name="ancestorself-17" result="pass"/><test-case name="ancestorself-18" result="pass"/><test-case name="ancestorself-19" result="pass"/><test-case name="ancestorself-20" result="pass"/><test-case name="ancestorself-21" result="pass"/><test-case name="unabbreviatedSyntax-11" result="pass"/><test-case name="K2-ancestor-or-selfAxis-1" result="pass"/><test-case name="K2-ancestor-or-selfAxis-2" result="pass"/><test-case name="K2-ancestor-or-selfAxis-3" result="pass"/><test-case name="K2-ancestor-or-selfAxis-4" result="pass"/><test-case name="K2-ancestor-or-selfAxis-5" result="pass"/><test-case name="K2-ancestor-or-selfAxis-6" result="pass"/><test-case name="K2-ancestor-or-selfAxis-7" result="pass"/><test-case name="K2-ancestor-or-selfAxis-8" result="pass"/><test-case name="K2-ancestor-or-selfAxis-9" result="pass"/><test-case name="following-1" result="pass"/><test-case name="following-2" result="pass"/><test-case name="following-3" result="pass"/><test-case name="following-4" result="pass"/><test-case name="following-5" result="pass"/><test-case name="following-6" result="pass"/><test-case name="following-7" result="pass"/><test-case name="following-8" result="pass"/><test-case name="following-9" result="pass"/><test-case name="following-10" result="pass"/><test-case name="following-11" result="pass"/><test-case name="following-12" result="pass"/><test-case name="following-13" result="pass"/><test-case name="following-14" result="pass"/><test-case name="following-15" result="pass"/><test-case name="following-16" result="pass"/><test-case name="following-17" result="pass"/><test-case name="following-18" result="pass"/><test-case name="following-19" result="pass"/><test-case name="following-20" result="pass"/><test-case name="following-21" result="pass"/><test-case name="K2-followingAxis-1" result="pass"/><test-case name="K2-followingAxis-2" result="pass"/><test-case name="K2-followingAxis-3" result="pass"/><test-case name="K2-followingAxis-4" result="pass"/><test-case name="followingsibling-1" result="pass"/><test-case name="followingsibling-2" result="pass"/><test-case name="followingsibling-3" result="pass"/><test-case name="followingsibling-4" result="pass"/><test-case name="followingsibling-5" result="pass"/><test-case name="followingsibling-6" result="pass"/><test-case name="followingsibling-7" result="pass"/><test-case name="followingsibling-8" result="pass"/><test-case name="followingsibling-9" result="pass"/><test-case name="followingsibling-10" result="pass"/><test-case name="followingsibling-11" result="pass"/><test-case name="followingsibling-12" result="pass"/><test-case name="followingsibling-13" result="pass"/><test-case name="followingsibling-14" result="pass"/><test-case name="followingsibling-15" result="pass"/><test-case name="followingsibling-16" result="pass"/><test-case name="followingsibling-17" result="pass"/><test-case name="followingsibling-18" result="pass"/><test-case name="followingsibling-19" result="pass"/><test-case name="followingsibling-20" result="pass"/><test-case name="followingsibling-21" result="pass"/><test-case name="unabbreviatedSyntax-24" result="pass"/><test-case name="K2-following-siblingAxis-1" result="pass"/><test-case name="K2-following-siblingAxis-2" result="pass"/><test-case name="K2-following-siblingAxis-3" result="pass"/><test-case name="K2-following-siblingAxis-4" result="pass"/><test-case name="K2-following-siblingAxis-5" result="pass"/><test-case name="K2-following-siblingAxis-6" result="pass"/><test-case name="K2-following-siblingAxis-7" result="pass"/><test-case name="K2-following-siblingAxis-8" result="pass"/><test-case name="K2-following-siblingAxis-9" result="pass"/><test-case name="K2-following-siblingAxis-10" result="pass"/><test-case name="preceding-1" result="pass"/><test-case name="preceding-2" result="pass"/><test-case name="preceding-3" result="pass"/><test-case name="preceding-4" result="pass"/><test-case name="preceding-5" result="pass"/><test-case name="preceding-6" result="pass"/><test-case name="preceding-7" result="pass"/><test-case name="preceding-8" result="pass"/><test-case name="preceding-9" result="pass"/><test-case name="preceding-10" result="pass"/><test-case name="preceding-11" result="pass"/><test-case name="preceding-12" result="pass"/><test-case name="preceding-13" result="pass"/><test-case name="preceding-14" result="pass"/><test-case name="preceding-15" result="pass"/><test-case name="preceding-16" result="pass"/><test-case name="preceding-17" result="pass"/><test-case name="preceding-18" result="pass"/><test-case name="preceding-19" result="pass"/><test-case name="preceding-20" result="pass"/><test-case name="preceding-21" result="pass"/><test-case name="preceding-22" result="pass"/><test-case name="preceding-23" result="pass"/><test-case name="K2-precedingAxis-1" result="pass"/><test-case name="K2-precedingAxis-2" result="pass"/><test-case name="K2-precedingAxis-3" result="pass"/><test-case name="K2-precedingAxis-4" result="pass"/><test-case name="K2-precedingAxis-5" result="pass"/><test-case name="K2-precedingAxis-6" result="pass"/><test-case name="K2-precedingAxis-7" result="pass"/><test-case name="K2-precedingAxis-8" result="pass"/><test-case name="preceding-sibling-1" result="pass"/><test-case name="preceding-sibling-2" result="pass"/><test-case name="preceding-sibling-3" result="pass"/><test-case name="preceding-sibling-4" result="pass"/><test-case name="preceding-sibling-5" result="pass"/><test-case name="preceding-sibling-6" result="pass"/><test-case name="preceding-sibling-7" result="pass"/><test-case name="preceding-sibling-8" result="pass"/><test-case name="preceding-sibling-9" result="pass"/><test-case name="preceding-sibling-10" result="pass"/><test-case name="preceding-sibling-11" result="pass"/><test-case name="preceding-sibling-12" result="pass"/><test-case name="preceding-sibling-13" result="pass"/><test-case name="preceding-sibling-14" result="pass"/><test-case name="preceding-sibling-15" result="pass"/><test-case name="preceding-sibling-16" result="pass"/><test-case name="preceding-sibling-17" result="pass"/><test-case name="preceding-sibling-18" result="pass"/><test-case name="preceding-sibling-19" result="pass"/><test-case name="preceding-sibling-20" result="pass"/><test-case name="preceding-sibling-21" result="pass"/><test-case name="unabbreviatedSyntax-25" result="pass"/><test-case name="K2-preceding-siblingAxis-1" result="pass"/><test-case name="K2-preceding-siblingAxis-2" result="pass"/><test-case name="K2-preceding-siblingAxis-3" result="pass"/><test-case name="K2-preceding-siblingAxis-4" result="pass"/><test-case name="K2-preceding-siblingAxis-5" result="pass"/><test-case name="modules-simple" result="fail"/><test-case name="modules-bad-ns" result="fail"/><test-case name="modules-none" result="fail"/><test-case name="modules-two-import" result="fail"/><test-case name="modules-two-import-ok" result="fail"/><test-case name="modules-collide-var-001" result="fail"/><test-case name="modules-collide-var-002" result="fail"/><test-case name="modules-collide-fn-001" result="fail"/><test-case name="modules-collide-fn-002" result="fail"/><test-case name="modules-emptyns" result="pass"/><test-case name="modules-circular" result="fail"/><test-case name="modules-1" result="fail"/><test-case name="modules-2" result="fail"/><test-case name="modules-3" result="fail"/><test-case name="modules-4" result="fail"/><test-case name="modules-5" result="fail"/><test-case name="modules-6" result="fail"/><test-case name="modules-7" result="fail"/><test-case name="modules-8" result="fail"/><test-case name="modules-9" result="fail"/><test-case name="modules-10" result="fail"/><test-case name="modules-11" result="fail"/><test-case name="modules-12" result="fail"/><test-case name="modules-13" result="fail"/><test-case name="modules-14" result="fail"/><test-case name="modules-15" result="fail"/><test-case name="modules-16" result="fail"/><test-case name="modules-17" result="fail"/><test-case name="modules-18" result="fail"/><test-case name="K-ModuleImport-1" result="pass"/><test-case name="K-ModuleImport-2" result="pass"/><test-case name="K-ModuleImport-3" result="pass"/><test-case name="K2-ModuleImport-1" result="pass"/><test-case name="K2-ModuleProlog-1" result="pass"/><test-case name="K2-Serialization-1" result="pass"/><test-case name="K2-Serialization-2" result="pass"/><test-case name="K2-Serialization-3" result="pass"/><test-case name="K2-Serialization-4" result="pass"/><test-case name="K2-Serialization-5" result="pass"/><test-case name="K2-Serialization-6" result="pass"/><test-case name="K2-Serialization-7" result="pass"/><test-case name="K2-Serialization-8" result="pass"/><test-case name="K2-Serialization-9" result="pass"/><test-case name="K2-Serialization-10" result="pass"/><test-case name="K2-Serialization-11" result="pass"/><test-case name="K2-Serialization-12" result="pass"/><test-case name="appendix-A4-1" result="pass"/><test-case name="appendix-A4-2" result="pass"/><test-case name="appendix-A4-3" result="pass"/><test-case name="appendix-A4-4" result="pass"/><test-case name="appendix-A4-5" result="pass"/><test-case name="appendix-A4-6" result="pass"/><test-case name="appendix-A4-7" result="pass"/><test-case name="appendix-A4-8" result="pass"/><test-case name="appendix-A4-9" result="pass"/><test-case name="annex-1" result="pass"/><test-case name="annex-2" result="pass"/><test-case name="annex-3" result="pass"/><test-case name="annex-4" result="pass"/><test-case name="annex-5" result="pass"/><test-case name="annex-6" result="fail"/><test-case name="annex-7" result="pass"/><test-case name="annex-8" result="pass"/><test-case name="xmp-queries-results-q1" result="pass"/><test-case name="xmp-queries-results-q2" result="pass"/><test-case name="xmp-queries-results-q3" result="pass"/><test-case name="xmp-queries-results-q4" result="pass"/><test-case name="xmp-queries-results-q5" result="pass"/><test-case name="xmp-queries-results-q6" result="pass"/><test-case name="xmp-queries-results-q7" result="pass"/><test-case name="xmp-queries-results-q8" result="pass"/><test-case name="xmp-queries-results-q9" result="pass"/><test-case name="xmp-queries-results-q10" result="pass"/><test-case name="xmp-queries-results-q11" result="pass"/><test-case name="xmp-queries-results-q12" result="pass"/><test-case name="tree-queries-results-q1" result="pass"/><test-case name="tree-queries-results-q2" result="pass"/><test-case name="tree-queries-results-q3" result="pass"/><test-case name="tree-queries-results-q4" result="pass"/><test-case name="tree-queries-results-q5" result="pass"/><test-case name="tree-queries-results-q6" result="pass"/><test-case name="seq-queries-results-q1" result="pass"/><test-case name="seq-queries-results-q2" result="pass"/><test-case name="seq-queries-results-q3" result="pass"/><test-case name="seq-queries-results-q4" result="pass"/><test-case name="seq-queries-results-q5" result="pass"/><test-case name="rdb-queries-results-q1" result="pass"/><test-case name="rdb-queries-results-q2" result="pass"/><test-case name="rdb-queries-results-q3" result="pass"/><test-case name="rdb-queries-results-q4" result="pass"/><test-case name="rdb-queries-results-q5" result="pass"/><test-case name="rdb-queries-results-q6" result="fail"/><test-case name="rdb-queries-results-q7" result="pass"/><test-case name="rdb-queries-results-q8" result="pass"/><test-case name="rdb-queries-results-q9" result="pass"/><test-case name="rdb-queries-results-q10" result="pass"/><test-case name="rdb-queries-results-q11" result="pass"/><test-case name="rdb-queries-results-q12" result="pass"/><test-case name="rdb-queries-results-q13" result="pass"/><test-case name="rdb-queries-results-q14" result="fail"/><test-case name="rdb-queries-results-q15" result="pass"/><test-case name="rdb-queries-results-q16" result="pass"/><test-case name="rdb-queries-results-q17" result="pass"/><test-case name="rdb-queries-results-q18" result="fail"/><test-case name="sgml-queries-results-q1" result="pass"/><test-case name="sgml-queries-results-q2" result="pass"/><test-case name="sgml-queries-results-q3" result="pass"/><test-case name="sgml-queries-results-q4" result="pass"/><test-case name="sgml-queries-results-q5" result="pass"/><test-case name="sgml-queries-results-q6" result="pass"/><test-case name="sgml-queries-results-q7" result="pass"/><test-case name="sgml-queries-results-q8a" result="pass"/><test-case name="sgml-queries-results-q8b" result="pass"/><test-case name="sgml-queries-results-q9" result="pass"/><test-case name="sgml-queries-results-q10" result="pass"/><test-case name="string-queries-results-q1" result="pass"/><test-case name="string-queries-results-q2" result="pass"/><test-case name="string-queries-results-q4" result="pass"/><test-case name="string-queries-results-q5" result="pass"/><test-case name="ns-queries-results-q1" result="pass"/><test-case name="ns-queries-results-q2" result="pass"/><test-case name="ns-queries-results-q3" result="pass"/><test-case name="ns-queries-results-q4" result="pass"/><test-case name="ns-queries-results-q5" result="pass"/><test-case name="ns-queries-results-q6" result="pass"/><test-case name="ns-queries-results-q7" result="pass"/><test-case name="ns-queries-results-q8" result="pass"/><test-case name="parts-queries-results-q1" result="pass"/><test-case name="functx-fn-abs-1" result="pass"/><test-case name="functx-fn-abs-2" result="pass"/><test-case name="functx-fn-abs-3" result="pass"/><test-case name="functx-fn-abs-all" result="pass"/><test-case name="functx-fn-adjust-dateTime-to-timezone-1" result="pass"/><test-case name="functx-fn-adjust-dateTime-to-timezone-2" result="pass"/><test-case name="functx-fn-adjust-dateTime-to-timezone-3" result="pass"/><test-case name="functx-fn-adjust-dateTime-to-timezone-4" result="pass"/><test-case name="functx-fn-adjust-dateTime-to-timezone-5" result="pass"/><test-case name="functx-fn-adjust-dateTime-to-timezone-all" result="pass"/><test-case name="functx-fn-adjust-date-to-timezone-1" result="pass"/><test-case name="functx-fn-adjust-date-to-timezone-2" result="pass"/><test-case name="functx-fn-adjust-date-to-timezone-3" result="pass"/><test-case name="functx-fn-adjust-date-to-timezone-4" result="pass"/><test-case name="functx-fn-adjust-date-to-timezone-all" result="pass"/><test-case name="functx-fn-adjust-time-to-timezone-1" result="pass"/><test-case name="functx-fn-adjust-time-to-timezone-2" result="pass"/><test-case name="functx-fn-adjust-time-to-timezone-3" result="pass"/><test-case name="functx-fn-adjust-time-to-timezone-4" result="pass"/><test-case name="functx-fn-adjust-time-to-timezone-all" result="pass"/><test-case name="functx-fn-avg-1" result="pass"/><test-case name="functx-fn-avg-2" result="pass"/><test-case name="functx-fn-avg-3" result="pass"/><test-case name="functx-fn-avg-4" result="pass"/><test-case name="functx-fn-avg-5" result="pass"/><test-case name="functx-fn-avg-all" result="pass"/><test-case name="functx-fn-base-uri-1" result="pass"/><test-case name="functx-fn-base-uri-2" result="pass"/><test-case name="functx-fn-base-uri-3" result="pass"/><test-case name="functx-fn-base-uri-all" result="pass"/><test-case name="functx-fn-boolean-1" result="pass"/><test-case name="functx-fn-boolean-2" result="pass"/><test-case name="functx-fn-boolean-3" result="pass"/><test-case name="functx-fn-boolean-4" result="pass"/><test-case name="functx-fn-boolean-5" result="pass"/><test-case name="functx-fn-boolean-6" result="pass"/><test-case name="functx-fn-boolean-7" result="pass"/><test-case name="functx-fn-boolean-8" result="pass"/><test-case name="functx-fn-boolean-9" result="pass"/><test-case name="functx-fn-boolean-all" result="pass"/><test-case name="functx-fn-ceiling-1" result="pass"/><test-case name="functx-fn-ceiling-2" result="pass"/><test-case name="functx-fn-ceiling-3" result="pass"/><test-case name="functx-fn-ceiling-4" result="pass"/><test-case name="functx-fn-ceiling-5" result="pass"/><test-case name="functx-fn-ceiling-6" result="pass"/><test-case name="functx-fn-ceiling-all" result="pass"/><test-case name="functx-fn-codepoint-equal-1" result="pass"/><test-case name="functx-fn-codepoint-equal-2" result="pass"/><test-case name="functx-fn-codepoint-equal-3" result="pass"/><test-case name="functx-fn-codepoint-equal-all" result="pass"/><test-case name="functx-fn-codepoints-to-string-1" result="pass"/><test-case name="functx-fn-codepoints-to-string-2" result="pass"/><test-case name="functx-fn-codepoints-to-string-3" result="pass"/><test-case name="functx-fn-codepoints-to-string-all" result="pass"/><test-case name="functx-fn-compare-1" result="pass"/><test-case name="functx-fn-compare-2" result="pass"/><test-case name="functx-fn-compare-3" result="pass"/><test-case name="functx-fn-compare-4" result="pass"/><test-case name="functx-fn-compare-5" result="pass"/><test-case name="functx-fn-compare-6" result="pass"/><test-case name="functx-fn-compare-7" result="pass"/><test-case name="functx-fn-compare-all" result="pass"/><test-case name="functx-fn-concat-1" result="pass"/><test-case name="functx-fn-concat-2" result="pass"/><test-case name="functx-fn-concat-3" result="pass"/><test-case name="functx-fn-concat-4" result="pass"/><test-case name="functx-fn-concat-all" result="pass"/><test-case name="functx-fn-contains-1" result="pass"/><test-case name="functx-fn-contains-2" result="pass"/><test-case name="functx-fn-contains-3" result="pass"/><test-case name="functx-fn-contains-4" result="pass"/><test-case name="functx-fn-contains-5" result="pass"/><test-case name="functx-fn-contains-6" result="pass"/><test-case name="functx-fn-contains-7" result="pass"/><test-case name="functx-fn-contains-all" result="pass"/><test-case name="functx-fn-count-1" result="pass"/><test-case name="functx-fn-count-2" result="pass"/><test-case name="functx-fn-count-3" result="pass"/><test-case name="functx-fn-count-4" result="pass"/><test-case name="functx-fn-count-5" result="pass"/><test-case name="functx-fn-count-all" result="pass"/><test-case name="functx-fn-data-1" result="pass"/><test-case name="functx-fn-data-2" result="pass"/><test-case name="functx-fn-data-3" result="pass"/><test-case name="functx-fn-data-4" result="pass"/><test-case name="functx-fn-data-5" result="pass"/><test-case name="functx-fn-data-6" result="pass"/><test-case name="functx-fn-data-all" result="pass"/><test-case name="functx-fn-dateTime-1" result="pass"/><test-case name="functx-fn-day-from-dateTime-1" result="pass"/><test-case name="functx-fn-day-from-date-1" result="pass"/><test-case name="functx-fn-days-from-duration-1" result="pass"/><test-case name="functx-fn-days-from-duration-2" result="pass"/><test-case name="functx-fn-days-from-duration-3" result="pass"/><test-case name="functx-fn-days-from-duration-4" result="pass"/><test-case name="functx-fn-days-from-duration-5" result="pass"/><test-case name="functx-fn-days-from-duration-all" result="pass"/><test-case name="functx-fn-deep-equal-1" result="pass"/><test-case name="functx-fn-deep-equal-2" result="pass"/><test-case name="functx-fn-deep-equal-3" result="pass"/><test-case name="functx-fn-deep-equal-4" result="pass"/><test-case name="functx-fn-deep-equal-5" result="pass"/><test-case name="functx-fn-deep-equal-6" result="pass"/><test-case name="functx-fn-deep-equal-all" result="pass"/><test-case name="functx-fn-default-collation-1" result="pass"/><test-case name="functx-fn-distinct-values-1" result="pass"/><test-case name="functx-fn-distinct-values-2" result="pass"/><test-case name="functx-fn-distinct-values-3" result="pass"/><test-case name="functx-fn-distinct-values-4" result="pass"/><test-case name="functx-fn-distinct-values-5" result="pass"/><test-case name="functx-fn-distinct-values-6" result="pass"/><test-case name="functx-fn-distinct-values-all" result="pass"/><test-case name="functx-fn-doc-available-1" result="pass"/><test-case name="functx-fn-empty-1" result="pass"/><test-case name="functx-fn-empty-2" result="pass"/><test-case name="functx-fn-empty-3" result="pass"/><test-case name="functx-fn-empty-4" result="pass"/><test-case name="functx-fn-empty-5" result="pass"/><test-case name="functx-fn-empty-6" result="pass"/><test-case name="functx-fn-empty-7" result="pass"/><test-case name="functx-fn-empty-all" result="pass"/><test-case name="functx-fn-encode-for-uri-1" result="pass"/><test-case name="functx-fn-encode-for-uri-2" result="pass"/><test-case name="functx-fn-encode-for-uri-all" result="pass"/><test-case name="functx-fn-ends-with-1" result="pass"/><test-case name="functx-fn-ends-with-2" result="pass"/><test-case name="functx-fn-ends-with-3" result="pass"/><test-case name="functx-fn-ends-with-4" result="pass"/><test-case name="functx-fn-ends-with-5" result="pass"/><test-case name="functx-fn-ends-with-all" result="pass"/><test-case name="functx-fn-escape-html-uri-1" result="fail"/><test-case name="functx-fn-escape-html-uri-2" result="pass"/><test-case name="functx-fn-escape-html-uri-all" result="fail"/><test-case name="functx-fn-exactly-one-1" result="pass"/><test-case name="functx-fn-exists-1" result="pass"/><test-case name="functx-fn-exists-2" result="pass"/><test-case name="functx-fn-exists-3" result="pass"/><test-case name="functx-fn-exists-4" result="pass"/><test-case name="functx-fn-exists-all" result="pass"/><test-case name="functx-fn-false-1" result="pass"/><test-case name="functx-fn-floor-1" result="pass"/><test-case name="functx-fn-floor-2" result="pass"/><test-case name="functx-fn-floor-3" result="pass"/><test-case name="functx-fn-floor-4" result="pass"/><test-case name="functx-fn-floor-5" result="pass"/><test-case name="functx-fn-floor-6" result="pass"/><test-case name="functx-fn-floor-all" result="pass"/><test-case name="functx-fn-hours-from-dateTime-1" result="pass"/><test-case name="functx-fn-hours-from-dateTime-2" result="pass"/><test-case name="functx-fn-hours-from-dateTime-all" result="pass"/><test-case name="functx-fn-hours-from-duration-1" result="pass"/><test-case name="functx-fn-hours-from-duration-2" result="pass"/><test-case name="functx-fn-hours-from-duration-3" result="pass"/><test-case name="functx-fn-hours-from-duration-4" result="pass"/><test-case name="functx-fn-hours-from-duration-5" result="pass"/><test-case name="functx-fn-hours-from-duration-all" result="pass"/><test-case name="functx-fn-hours-from-time-1" result="pass"/><test-case name="functx-fn-hours-from-time-2" result="pass"/><test-case name="functx-fn-hours-from-time-all" result="pass"/><test-case name="functx-fn-index-of-1" result="pass"/><test-case name="functx-fn-index-of-2" result="pass"/><test-case name="functx-fn-index-of-3" result="pass"/><test-case name="functx-fn-index-of-4" result="pass"/><test-case name="functx-fn-index-of-5" result="pass"/><test-case name="functx-fn-index-of-6" result="pass"/><test-case name="functx-fn-index-of-7" result="pass"/><test-case name="functx-fn-index-of-all" result="pass"/><test-case name="functx-fn-insert-before-1" result="pass"/><test-case name="functx-fn-insert-before-2" result="pass"/><test-case name="functx-fn-insert-before-3" result="pass"/><test-case name="functx-fn-insert-before-4" result="pass"/><test-case name="functx-fn-insert-before-5" result="pass"/><test-case name="functx-fn-insert-before-6" result="pass"/><test-case name="functx-fn-insert-before-all" result="pass"/><test-case name="functx-fn-iri-to-uri-1" result="pass"/><test-case name="functx-fn-lang-1" result="pass"/><test-case name="functx-fn-lang-2" result="pass"/><test-case name="functx-fn-lang-3" result="pass"/><test-case name="functx-fn-lang-4" result="pass"/><test-case name="functx-fn-lang-5" result="pass"/><test-case name="functx-fn-lang-6" result="pass"/><test-case name="functx-fn-lang-all" result="pass"/><test-case name="functx-fn-last-1" result="pass"/><test-case name="functx-fn-local-name-from-QName-1" result="pass"/><test-case name="functx-fn-local-name-from-QName-2" result="pass"/><test-case name="functx-fn-local-name-from-QName-3" result="pass"/><test-case name="functx-fn-local-name-from-QName-all" result="pass"/><test-case name="functx-fn-local-name-1" result="pass"/><test-case name="functx-fn-local-name-2" result="pass"/><test-case name="functx-fn-local-name-3" result="pass"/><test-case name="functx-fn-local-name-4" result="pass"/><test-case name="functx-fn-local-name-5" result="pass"/><test-case name="functx-fn-local-name-all" result="pass"/><test-case name="functx-fn-lower-case-1" result="pass"/><test-case name="functx-fn-lower-case-2" result="pass"/><test-case name="functx-fn-lower-case-3" result="pass"/><test-case name="functx-fn-lower-case-all" result="pass"/><test-case name="functx-fn-matches-1" result="pass"/><test-case name="functx-fn-matches-2" result="pass"/><test-case name="functx-fn-matches-3" result="pass"/><test-case name="functx-fn-matches-4" result="pass"/><test-case name="functx-fn-matches-5" result="pass"/><test-case name="functx-fn-matches-6" result="pass"/><test-case name="functx-fn-matches-7" result="pass"/><test-case name="functx-fn-matches-8" result="pass"/><test-case name="functx-fn-matches-9" result="fail"/><test-case name="functx-fn-matches-10" result="pass"/><test-case name="functx-fn-matches-11" result="pass"/><test-case name="functx-fn-matches-12" result="fail"/><test-case name="functx-fn-matches-13" result="pass"/><test-case name="functx-fn-matches-14" result="pass"/><test-case name="functx-fn-matches-15" result="pass"/><test-case name="functx-fn-matches-16" result="fail"/><test-case name="functx-fn-matches-17" result="fail"/><test-case name="functx-fn-matches-18" result="fail"/><test-case name="functx-fn-matches-all" result="fail"/><test-case name="functx-fn-max-1" result="pass"/><test-case name="functx-fn-max-2" result="pass"/><test-case name="functx-fn-max-3" result="pass"/><test-case name="functx-fn-max-4" result="pass"/><test-case name="functx-fn-max-all" result="pass"/><test-case name="functx-fn-minutes-from-dateTime-1" result="pass"/><test-case name="functx-fn-minutes-from-duration-1" result="pass"/><test-case name="functx-fn-minutes-from-duration-2" result="pass"/><test-case name="functx-fn-minutes-from-duration-3" result="pass"/><test-case name="functx-fn-minutes-from-duration-4" result="pass"/><test-case name="functx-fn-minutes-from-duration-5" result="pass"/><test-case name="functx-fn-minutes-from-duration-all" result="pass"/><test-case name="functx-fn-minutes-from-time-1" result="pass"/><test-case name="functx-fn-min-1" result="pass"/><test-case name="functx-fn-min-2" result="pass"/><test-case name="functx-fn-min-3" result="pass"/><test-case name="functx-fn-min-4" result="pass"/><test-case name="functx-fn-min-all" result="pass"/><test-case name="functx-fn-month-from-dateTime-1" result="pass"/><test-case name="functx-fn-month-from-date-1" result="pass"/><test-case name="functx-fn-months-from-duration-1" result="pass"/><test-case name="functx-fn-months-from-duration-2" result="pass"/><test-case name="functx-fn-months-from-duration-3" result="pass"/><test-case name="functx-fn-months-from-duration-4" result="pass"/><test-case name="functx-fn-months-from-duration-all" result="pass"/><test-case name="functx-fn-namespace-uri-for-prefix-1" result="pass"/><test-case name="functx-fn-namespace-uri-for-prefix-2" result="pass"/><test-case name="functx-fn-namespace-uri-for-prefix-3" result="pass"/><test-case name="functx-fn-namespace-uri-for-prefix-4" result="pass"/><test-case name="functx-fn-namespace-uri-for-prefix-all" result="pass"/><test-case name="functx-fn-namespace-uri-from-QName-1" result="pass"/><test-case name="functx-fn-namespace-uri-from-QName-2" result="pass"/><test-case name="functx-fn-namespace-uri-from-QName-3" result="pass"/><test-case name="functx-fn-namespace-uri-from-QName-all" result="pass"/><test-case name="functx-fn-namespace-uri-1" result="pass"/><test-case name="functx-fn-namespace-uri-2" result="pass"/><test-case name="functx-fn-namespace-uri-3" result="pass"/><test-case name="functx-fn-namespace-uri-4" result="pass"/><test-case name="functx-fn-namespace-uri-5" result="pass"/><test-case name="functx-fn-namespace-uri-all" result="pass"/><test-case name="functx-fn-name-1" result="pass"/><test-case name="functx-fn-name-2" result="pass"/><test-case name="functx-fn-name-3" result="pass"/><test-case name="functx-fn-name-4" result="pass"/><test-case name="functx-fn-name-5" result="pass"/><test-case name="functx-fn-name-all" result="pass"/><test-case name="functx-fn-nilled-1" result="pass"/><test-case name="functx-fn-nilled-2" result="pass"/><test-case name="functx-fn-nilled-3" result="pass"/><test-case name="functx-fn-nilled-4" result="pass"/><test-case name="functx-fn-nilled-all" result="pass"/><test-case name="functx-fn-node-name-1" result="pass"/><test-case name="functx-fn-node-name-2" result="pass"/><test-case name="functx-fn-node-name-3" result="pass"/><test-case name="functx-fn-node-name-4" result="pass"/><test-case name="functx-fn-node-name-5" result="pass"/><test-case name="functx-fn-node-name-all" result="pass"/><test-case name="functx-fn-normalize-space-1" result="pass"/><test-case name="functx-fn-normalize-space-2" result="pass"/><test-case name="functx-fn-normalize-space-3" result="pass"/><test-case name="functx-fn-normalize-space-4" result="pass"/><test-case name="functx-fn-normalize-space-5" result="pass"/><test-case name="functx-fn-normalize-space-6" result="pass"/><test-case name="functx-fn-normalize-space-7" result="pass"/><test-case name="functx-fn-normalize-space-8" result="pass"/><test-case name="functx-fn-normalize-space-9" result="pass"/><test-case name="functx-fn-normalize-space-all" result="pass"/><test-case name="functx-fn-normalize-unicode-1" result="pass"/><test-case name="functx-fn-normalize-unicode-2" result="pass"/><test-case name="functx-fn-normalize-unicode-all" result="pass"/><test-case name="functx-fn-not-1" result="pass"/><test-case name="functx-fn-not-2" result="pass"/><test-case name="functx-fn-not-3" result="pass"/><test-case name="functx-fn-not-4" result="pass"/><test-case name="functx-fn-not-5" result="pass"/><test-case name="functx-fn-not-6" result="pass"/><test-case name="functx-fn-not-7" result="pass"/><test-case name="functx-fn-not-all" result="pass"/><test-case name="functx-fn-number-1" result="pass"/><test-case name="functx-fn-number-2" result="pass"/><test-case name="functx-fn-number-3" result="pass"/><test-case name="functx-fn-number-4" result="pass"/><test-case name="functx-fn-number-5" result="pass"/><test-case name="functx-fn-number-6" result="pass"/><test-case name="functx-fn-number-all" result="pass"/><test-case name="functx-fn-one-or-more-1" result="pass"/><test-case name="functx-fn-one-or-more-2" result="pass"/><test-case name="functx-fn-one-or-more-all" result="pass"/><test-case name="functx-fn-position-1" result="pass"/><test-case name="functx-fn-position-2" result="pass"/><test-case name="functx-fn-position-3" result="pass"/><test-case name="functx-fn-position-all" result="pass"/><test-case name="functx-fn-prefix-from-QName-1" result="pass"/><test-case name="functx-fn-prefix-from-QName-2" result="pass"/><test-case name="functx-fn-prefix-from-QName-3" result="pass"/><test-case name="functx-fn-prefix-from-QName-4" result="pass"/><test-case name="functx-fn-prefix-from-QName-5" result="pass"/><test-case name="functx-fn-prefix-from-QName-6" result="pass"/><test-case name="functx-fn-prefix-from-QName-all" result="pass"/><test-case name="functx-fn-QName-1" result="pass"/><test-case name="functx-fn-QName-2" result="pass"/><test-case name="functx-fn-QName-3" result="pass"/><test-case name="functx-fn-QName-all" result="pass"/><test-case name="functx-fn-remove-1" result="pass"/><test-case name="functx-fn-remove-2" result="pass"/><test-case name="functx-fn-remove-3" result="pass"/><test-case name="functx-fn-remove-all" result="pass"/><test-case name="functx-fn-replace-1" result="pass"/><test-case name="functx-fn-replace-2" result="pass"/><test-case name="functx-fn-replace-3" result="pass"/><test-case name="functx-fn-replace-4" result="pass"/><test-case name="functx-fn-replace-5" result="pass"/><test-case name="functx-fn-replace-6" result="pass"/><test-case name="functx-fn-replace-7" result="pass"/><test-case name="functx-fn-replace-8" result="fail"/><test-case name="functx-fn-replace-9" result="pass"/><test-case name="functx-fn-replace-10" result="fail"/><test-case name="functx-fn-replace-11" result="pass"/><test-case name="functx-fn-replace-12" result="fail"/><test-case name="functx-fn-replace-13" result="pass"/><test-case name="functx-fn-replace-14" result="fail"/><test-case name="functx-fn-replace-15" result="pass"/><test-case name="functx-fn-replace-16" result="pass"/><test-case name="functx-fn-replace-17" result="pass"/><test-case name="functx-fn-replace-18" result="pass"/><test-case name="functx-fn-replace-19" result="fail"/><test-case name="functx-fn-replace-all" result="fail"/><test-case name="functx-fn-resolve-QName-1" result="pass"/><test-case name="functx-fn-resolve-QName-2" result="pass"/><test-case name="functx-fn-resolve-QName-3" result="pass"/><test-case name="functx-fn-resolve-QName-all" result="pass"/><test-case name="functx-fn-resolve-uri-1" result="pass"/><test-case name="functx-fn-resolve-uri-2" result="pass"/><test-case name="functx-fn-resolve-uri-3" result="pass"/><test-case name="functx-fn-resolve-uri-4" result="pass"/><test-case name="functx-fn-resolve-uri-5" result="pass"/><test-case name="functx-fn-resolve-uri-all" result="pass"/><test-case name="functx-fn-reverse-1" result="pass"/><test-case name="functx-fn-reverse-2" result="pass"/><test-case name="functx-fn-reverse-3" result="pass"/><test-case name="functx-fn-reverse-all" result="pass"/><test-case name="functx-fn-root-1" result="pass"/><test-case name="functx-fn-root-2" result="pass"/><test-case name="functx-fn-root-all" result="pass"/><test-case name="functx-fn-round-half-to-even-1" result="fail"/><test-case name="functx-fn-round-half-to-even-2" result="fail"/><test-case name="functx-fn-round-half-to-even-3" result="fail"/><test-case name="functx-fn-round-half-to-even-4" result="fail"/><test-case name="functx-fn-round-half-to-even-5" result="fail"/><test-case name="functx-fn-round-half-to-even-all" result="fail"/><test-case name="functx-fn-round-1" result="pass"/><test-case name="functx-fn-round-2" result="pass"/><test-case name="functx-fn-round-3" result="pass"/><test-case name="functx-fn-round-4" result="pass"/><test-case name="functx-fn-round-5" result="pass"/><test-case name="functx-fn-round-all" result="pass"/><test-case name="functx-fn-seconds-from-dateTime-1" result="pass"/><test-case name="functx-fn-seconds-from-duration-1" result="pass"/><test-case name="functx-fn-seconds-from-duration-2" result="pass"/><test-case name="functx-fn-seconds-from-duration-3" result="pass"/><test-case name="functx-fn-seconds-from-duration-4" result="pass"/><test-case name="functx-fn-seconds-from-duration-all" result="pass"/><test-case name="functx-fn-seconds-from-time-1" result="pass"/><test-case name="functx-fn-starts-with-1" result="pass"/><test-case name="functx-fn-starts-with-2" result="pass"/><test-case name="functx-fn-starts-with-3" result="pass"/><test-case name="functx-fn-starts-with-4" result="pass"/><test-case name="functx-fn-starts-with-5" result="pass"/><test-case name="functx-fn-starts-with-6" result="pass"/><test-case name="functx-fn-starts-with-7" result="pass"/><test-case name="functx-fn-starts-with-8" result="pass"/><test-case name="functx-fn-starts-with-all" result="pass"/><test-case name="functx-fn-string-join-1" result="pass"/><test-case name="functx-fn-string-join-2" result="pass"/><test-case name="functx-fn-string-join-3" result="pass"/><test-case name="functx-fn-string-join-4" result="pass"/><test-case name="functx-fn-string-join-5" result="pass"/><test-case name="functx-fn-string-join-all" result="pass"/><test-case name="functx-fn-string-length-1" result="pass"/><test-case name="functx-fn-string-length-2" result="pass"/><test-case name="functx-fn-string-length-3" result="pass"/><test-case name="functx-fn-string-length-4" result="pass"/><test-case name="functx-fn-string-length-5" result="pass"/><test-case name="functx-fn-string-length-6" result="pass"/><test-case name="functx-fn-string-length-all" result="pass"/><test-case name="functx-fn-string-to-codepoints-1" result="pass"/><test-case name="functx-fn-string-to-codepoints-2" result="pass"/><test-case name="functx-fn-string-to-codepoints-3" result="pass"/><test-case name="functx-fn-string-to-codepoints-all" result="fail"/><test-case name="functx-fn-string-1" result="pass"/><test-case name="functx-fn-string-2" result="pass"/><test-case name="functx-fn-string-3" result="pass"/><test-case name="functx-fn-string-all" result="pass"/><test-case name="functx-fn-subsequence-1" result="pass"/><test-case name="functx-fn-subsequence-2" result="pass"/><test-case name="functx-fn-subsequence-3" result="pass"/><test-case name="functx-fn-subsequence-4" result="pass"/><test-case name="functx-fn-subsequence-5" result="fail"/><test-case name="functx-fn-subsequence-6" result="pass"/><test-case name="functx-fn-subsequence-all" result="fail"/><test-case name="functx-fn-substring-after-1" result="pass"/><test-case name="functx-fn-substring-after-2" result="pass"/><test-case name="functx-fn-substring-after-3" result="pass"/><test-case name="functx-fn-substring-after-4" result="pass"/><test-case name="functx-fn-substring-after-5" result="pass"/><test-case name="functx-fn-substring-after-6" result="pass"/><test-case name="functx-fn-substring-after-all" result="pass"/><test-case name="functx-fn-substring-before-1" result="pass"/><test-case name="functx-fn-substring-before-2" result="pass"/><test-case name="functx-fn-substring-before-3" result="pass"/><test-case name="functx-fn-substring-before-4" result="pass"/><test-case name="functx-fn-substring-before-5" result="pass"/><test-case name="functx-fn-substring-before-6" result="pass"/><test-case name="functx-fn-substring-before-7" result="pass"/><test-case name="functx-fn-substring-before-all" result="pass"/><test-case name="functx-fn-substring-1" result="pass"/><test-case name="functx-fn-substring-2" result="pass"/><test-case name="functx-fn-substring-3" result="pass"/><test-case name="functx-fn-substring-4" result="pass"/><test-case name="functx-fn-substring-5" result="pass"/><test-case name="functx-fn-substring-6" result="pass"/><test-case name="functx-fn-substring-7" result="pass"/><test-case name="functx-fn-substring-8" result="pass"/><test-case name="functx-fn-substring-9" result="pass"/><test-case name="functx-fn-substring-10" result="pass"/><test-case name="functx-fn-substring-11" result="pass"/><test-case name="functx-fn-substring-all" result="pass"/><test-case name="functx-fn-sum-1" result="pass"/><test-case name="functx-fn-sum-2" result="pass"/><test-case name="functx-fn-sum-3" result="pass"/><test-case name="functx-fn-sum-4" result="pass"/><test-case name="functx-fn-sum-5" result="pass"/><test-case name="functx-fn-sum-6" result="pass"/><test-case name="functx-fn-sum-all" result="pass"/><test-case name="functx-fn-timezone-from-dateTime-1" result="pass"/><test-case name="functx-fn-timezone-from-dateTime-2" result="pass"/><test-case name="functx-fn-timezone-from-dateTime-all" result="pass"/><test-case name="functx-fn-timezone-from-date-1" result="pass"/><test-case name="functx-fn-timezone-from-date-2" result="pass"/><test-case name="functx-fn-timezone-from-date-all" result="pass"/><test-case name="functx-fn-timezone-from-time-1" result="pass"/><test-case name="functx-fn-timezone-from-time-2" result="pass"/><test-case name="functx-fn-timezone-from-time-3" result="pass"/><test-case name="functx-fn-timezone-from-time-4" result="pass"/><test-case name="functx-fn-timezone-from-time-all" result="pass"/><test-case name="functx-fn-tokenize-1" result="pass"/><test-case name="functx-fn-tokenize-2" result="pass"/><test-case name="functx-fn-tokenize-3" result="pass"/><test-case name="functx-fn-tokenize-4" result="pass"/><test-case name="functx-fn-tokenize-5" result="pass"/><test-case name="functx-fn-tokenize-6" result="pass"/><test-case name="functx-fn-tokenize-7" result="pass"/><test-case name="functx-fn-tokenize-8" result="pass"/><test-case name="functx-fn-tokenize-9" result="fail"/><test-case name="functx-fn-tokenize-10" result="pass"/><test-case name="functx-fn-tokenize-11" result="pass"/><test-case name="functx-fn-tokenize-12" result="fail"/><test-case name="functx-fn-tokenize-all" result="fail"/><test-case name="functx-fn-translate-1" result="pass"/><test-case name="functx-fn-translate-2" result="pass"/><test-case name="functx-fn-translate-3" result="pass"/><test-case name="functx-fn-translate-4" result="pass"/><test-case name="functx-fn-translate-5" result="pass"/><test-case name="functx-fn-translate-6" result="pass"/><test-case name="functx-fn-translate-7" result="pass"/><test-case name="functx-fn-translate-all" result="pass"/><test-case name="functx-fn-true-1" result="pass"/><test-case name="functx-fn-upper-case-1" result="pass"/><test-case name="functx-fn-upper-case-2" result="pass"/><test-case name="functx-fn-upper-case-3" result="pass"/><test-case name="functx-fn-upper-case-4" result="pass"/><test-case name="functx-fn-upper-case-all" result="pass"/><test-case name="functx-fn-year-from-dateTime-1" result="pass"/><test-case name="functx-fn-year-from-date-1" result="pass"/><test-case name="functx-fn-years-from-duration-1" result="pass"/><test-case name="functx-fn-years-from-duration-2" result="pass"/><test-case name="functx-fn-years-from-duration-3" result="pass"/><test-case name="functx-fn-years-from-duration-4" result="pass"/><test-case name="functx-fn-years-from-duration-5" result="pass"/><test-case name="functx-fn-years-from-duration-all" result="pass"/><test-case name="functx-fn-zero-or-one-1" result="pass"/><test-case name="functx-fn-zero-or-one-2" result="pass"/><test-case name="functx-fn-zero-or-one-all" result="pass"/><test-case name="functx-functx-add-attributes-1" result="pass"/><test-case name="functx-functx-add-attributes-2" result="pass"/><test-case name="functx-functx-add-attributes-3" result="pass"/><test-case name="functx-functx-add-attributes-4" result="pass"/><test-case name="functx-functx-add-attributes-5" result="pass"/><test-case name="functx-functx-add-attributes-all" result="pass"/><test-case name="functx-functx-add-months-1" result="fail"/><test-case name="functx-functx-add-months-2" result="fail"/><test-case name="functx-functx-add-months-3" result="fail"/><test-case name="functx-functx-add-months-all" result="fail"/><test-case name="functx-functx-add-or-update-attributes-1" result="pass"/><test-case name="functx-functx-add-or-update-attributes-2" result="pass"/><test-case name="functx-functx-add-or-update-attributes-3" result="pass"/><test-case name="functx-functx-add-or-update-attributes-4" result="pass"/><test-case name="functx-functx-add-or-update-attributes-5" result="pass"/><test-case name="functx-functx-add-or-update-attributes-all" result="pass"/><test-case name="functx-functx-all-whitespace-1" result="pass"/><test-case name="functx-functx-all-whitespace-2" result="pass"/><test-case name="functx-functx-all-whitespace-3" result="pass"/><test-case name="functx-functx-all-whitespace-4" result="pass"/><test-case name="functx-functx-all-whitespace-5" result="pass"/><test-case name="functx-functx-all-whitespace-6" result="pass"/><test-case name="functx-functx-all-whitespace-all" result="pass"/><test-case name="functx-functx-are-distinct-values-1" result="pass"/><test-case name="functx-functx-are-distinct-values-2" result="pass"/><test-case name="functx-functx-are-distinct-values-3" result="pass"/><test-case name="functx-functx-are-distinct-values-all" result="pass"/><test-case name="functx-functx-atomic-type-1" result="fail"/><test-case name="functx-functx-atomic-type-2" result="fail"/><test-case name="functx-functx-atomic-type-3" result="fail"/><test-case name="functx-functx-atomic-type-4" result="fail"/><test-case name="functx-functx-atomic-type-all" result="fail"/><test-case name="functx-functx-avg-empty-is-zero-1" result="pass"/><test-case name="functx-functx-between-exclusive-1" result="pass"/><test-case name="functx-functx-between-exclusive-2" result="pass"/><test-case name="functx-functx-between-exclusive-3" result="pass"/><test-case name="functx-functx-between-exclusive-4" result="pass"/><test-case name="functx-functx-between-exclusive-5" result="pass"/><test-case name="functx-functx-between-exclusive-all" result="pass"/><test-case name="functx-functx-between-inclusive-1" result="pass"/><test-case name="functx-functx-between-inclusive-2" result="pass"/><test-case name="functx-functx-between-inclusive-3" result="pass"/><test-case name="functx-functx-between-inclusive-4" result="pass"/><test-case name="functx-functx-between-inclusive-5" result="pass"/><test-case name="functx-functx-between-inclusive-all" result="pass"/><test-case name="functx-functx-camel-case-to-words-1" result="pass"/><test-case name="functx-functx-camel-case-to-words-2" result="pass"/><test-case name="functx-functx-camel-case-to-words-all" result="pass"/><test-case name="functx-functx-capitalize-first-1" result="pass"/><test-case name="functx-functx-capitalize-first-2" result="pass"/><test-case name="functx-functx-capitalize-first-3" result="pass"/><test-case name="functx-functx-capitalize-first-all" result="pass"/><test-case name="functx-functx-change-element-names-deep-1" result="fail"/><test-case name="functx-functx-change-element-names-deep-2" result="fail"/><test-case name="functx-functx-change-element-names-deep-3" result="fail"/><test-case name="functx-functx-change-element-names-deep-all" result="fail"/><test-case name="functx-functx-change-element-ns-deep-1" result="pass"/><test-case name="functx-functx-change-element-ns-deep-2" result="pass"/><test-case name="functx-functx-change-element-ns-deep-all" result="pass"/><test-case name="functx-functx-change-element-ns-1" result="fail"/><test-case name="functx-functx-change-element-ns-2" result="pass"/><test-case name="functx-functx-change-element-ns-all" result="fail"/><test-case name="functx-functx-chars-1" result="pass"/><test-case name="functx-functx-chars-2" result="pass"/><test-case name="functx-functx-chars-all" result="pass"/><test-case name="functx-functx-contains-any-of-1" result="pass"/><test-case name="functx-functx-contains-any-of-2" result="pass"/><test-case name="functx-functx-contains-any-of-all" result="pass"/><test-case name="functx-functx-contains-case-insensitive-1" result="pass"/><test-case name="functx-functx-contains-case-insensitive-2" result="fail"/><test-case name="functx-functx-contains-case-insensitive-all" result="fail"/><test-case name="functx-functx-contains-word-1" result="pass"/><test-case name="functx-functx-contains-word-2" result="pass"/><test-case name="functx-functx-contains-word-3" result="pass"/><test-case name="functx-functx-contains-word-4" result="pass"/><test-case name="functx-functx-contains-word-5" result="pass"/><test-case name="functx-functx-contains-word-all" result="pass"/><test-case name="functx-functx-copy-attributes-1" result="pass"/><test-case name="functx-functx-copy-attributes-2" result="pass"/><test-case name="functx-functx-copy-attributes-3" result="pass"/><test-case name="functx-functx-copy-attributes-all" result="pass"/><test-case name="functx-functx-dateTime-1" result="pass"/><test-case name="functx-functx-dateTime-2" result="pass"/><test-case name="functx-functx-dateTime-all" result="pass"/><test-case name="functx-functx-date-1" result="pass"/><test-case name="functx-functx-date-2" result="pass"/><test-case name="functx-functx-date-all" result="pass"/><test-case name="functx-functx-day-in-year-1" result="pass"/><test-case name="functx-functx-day-in-year-2" result="pass"/><test-case name="functx-functx-day-in-year-3" result="pass"/><test-case name="functx-functx-day-in-year-all" result="pass"/><test-case name="functx-functx-day-of-week-abbrev-en-1" result="fail"/><test-case name="functx-functx-day-of-week-abbrev-en-2" result="fail"/><test-case name="functx-functx-day-of-week-abbrev-en-all" result="fail"/><test-case name="functx-functx-day-of-week-name-en-1" result="fail"/><test-case name="functx-functx-day-of-week-name-en-2" result="fail"/><test-case name="functx-functx-day-of-week-name-en-all" result="fail"/><test-case name="functx-functx-day-of-week-1" result="fail"/><test-case name="functx-functx-day-of-week-2" result="fail"/><test-case name="functx-functx-day-of-week-3" result="fail"/><test-case name="functx-functx-day-of-week-all" result="fail"/><test-case name="functx-functx-days-in-month-1" result="pass"/><test-case name="functx-functx-days-in-month-2" result="pass"/><test-case name="functx-functx-days-in-month-3" result="pass"/><test-case name="functx-functx-days-in-month-all" result="pass"/><test-case name="functx-functx-dayTimeDuration-1" result="pass"/><test-case name="functx-functx-dayTimeDuration-2" result="pass"/><test-case name="functx-functx-dayTimeDuration-3" result="fail"/><test-case name="functx-functx-dayTimeDuration-4" result="pass"/><test-case name="functx-functx-dayTimeDuration-5" result="pass"/><test-case name="functx-functx-dayTimeDuration-all" result="fail"/><test-case name="functx-functx-ddmmyyyy-to-date-1" result="pass"/><test-case name="functx-functx-ddmmyyyy-to-date-2" result="pass"/><test-case name="functx-functx-ddmmyyyy-to-date-3" result="pass"/><test-case name="functx-functx-ddmmyyyy-to-date-all" result="pass"/><test-case name="functx-functx-depth-of-node-1" result="pass"/><test-case name="functx-functx-depth-of-node-2" result="pass"/><test-case name="functx-functx-depth-of-node-3" result="pass"/><test-case name="functx-functx-depth-of-node-all" result="pass"/><test-case name="functx-functx-distinct-attribute-names-1" result="pass"/><test-case name="functx-functx-distinct-deep-1" result="pass"/><test-case name="functx-functx-distinct-deep-2" result="pass"/><test-case name="functx-functx-distinct-deep-3" result="pass"/><test-case name="functx-functx-distinct-deep-all" result="pass"/><test-case name="functx-functx-distinct-element-names-1" result="pass"/><test-case name="functx-functx-distinct-element-names-2" result="pass"/><test-case name="functx-functx-distinct-element-names-all" result="pass"/><test-case name="functx-functx-distinct-element-paths-1" result="pass"/><test-case name="functx-functx-distinct-element-paths-2" result="pass"/><test-case name="functx-functx-distinct-element-paths-all" result="pass"/><test-case name="functx-functx-distinct-nodes-1" result="pass"/><test-case name="functx-functx-distinct-nodes-2" result="pass"/><test-case name="functx-functx-distinct-nodes-all" result="pass"/><test-case name="functx-functx-duration-from-timezone-1" result="pass"/><test-case name="functx-functx-duration-from-timezone-2" result="pass"/><test-case name="functx-functx-duration-from-timezone-3" result="pass"/><test-case name="functx-functx-duration-from-timezone-all" result="pass"/><test-case name="functx-functx-dynamic-path-1" result="fail"/><test-case name="functx-functx-dynamic-path-2" result="pass"/><test-case name="functx-functx-dynamic-path-3" result="pass"/><test-case name="functx-functx-dynamic-path-4" result="fail"/><test-case name="functx-functx-dynamic-path-all" result="fail"/><test-case name="functx-functx-escape-for-regex-1" result="pass"/><test-case name="functx-functx-escape-for-regex-2" result="pass"/><test-case name="functx-functx-escape-for-regex-all" result="pass"/><test-case name="functx-functx-exclusive-or-1" result="pass"/><test-case name="functx-functx-exclusive-or-2" result="pass"/><test-case name="functx-functx-exclusive-or-3" result="pass"/><test-case name="functx-functx-exclusive-or-all" result="pass"/><test-case name="functx-functx-first-day-of-month-1" result="pass"/><test-case name="functx-functx-first-day-of-month-2" result="pass"/><test-case name="functx-functx-first-day-of-month-3" result="pass"/><test-case name="functx-functx-first-day-of-month-all" result="pass"/><test-case name="functx-functx-first-day-of-year-1" result="pass"/><test-case name="functx-functx-first-day-of-year-2" result="pass"/><test-case name="functx-functx-first-day-of-year-3" result="pass"/><test-case name="functx-functx-first-day-of-year-all" result="pass"/><test-case name="functx-functx-first-node-1" result="pass"/><test-case name="functx-functx-first-node-2" result="pass"/><test-case name="functx-functx-first-node-all" result="pass"/><test-case name="functx-functx-follows-not-descendant-1" result="pass"/><test-case name="functx-functx-follows-not-descendant-2" result="pass"/><test-case name="functx-functx-follows-not-descendant-3" result="pass"/><test-case name="functx-functx-follows-not-descendant-all" result="pass"/><test-case name="functx-functx-format-as-title-en-1" result="fail"/><test-case name="functx-functx-fragment-from-uri-1" result="pass"/><test-case name="functx-functx-fragment-from-uri-2" result="pass"/><test-case name="functx-functx-fragment-from-uri-all" result="pass"/><test-case name="functx-functx-get-matches-and-non-matches-1" result="fail"/><test-case name="functx-functx-get-matches-and-non-matches-2" result="fail"/><test-case name="functx-functx-get-matches-and-non-matches-3" result="fail"/><test-case name="functx-functx-get-matches-and-non-matches-all" result="fail"/><test-case name="functx-functx-get-matches-1" result="fail"/><test-case name="functx-functx-get-matches-2" result="fail"/><test-case name="functx-functx-get-matches-3" result="fail"/><test-case name="functx-functx-get-matches-all" result="fail"/><test-case name="functx-functx-has-element-only-content-1" result="pass"/><test-case name="functx-functx-has-element-only-content-2" result="pass"/><test-case name="functx-functx-has-element-only-content-3" result="pass"/><test-case name="functx-functx-has-element-only-content-4" result="pass"/><test-case name="functx-functx-has-element-only-content-5" result="pass"/><test-case name="functx-functx-has-element-only-content-6" result="pass"/><test-case name="functx-functx-has-element-only-content-7" result="pass"/><test-case name="functx-functx-has-element-only-content-8" result="pass"/><test-case name="functx-functx-has-element-only-content-9" result="pass"/><test-case name="functx-functx-has-element-only-content-all" result="pass"/><test-case name="functx-functx-has-empty-content-1" result="pass"/><test-case name="functx-functx-has-empty-content-2" result="pass"/><test-case name="functx-functx-has-empty-content-3" result="pass"/><test-case name="functx-functx-has-empty-content-4" result="pass"/><test-case name="functx-functx-has-empty-content-5" result="pass"/><test-case name="functx-functx-has-empty-content-6" result="pass"/><test-case name="functx-functx-has-empty-content-7" result="pass"/><test-case name="functx-functx-has-empty-content-all" result="pass"/><test-case name="functx-functx-has-mixed-content-1" result="pass"/><test-case name="functx-functx-has-mixed-content-2" result="pass"/><test-case name="functx-functx-has-mixed-content-3" result="pass"/><test-case name="functx-functx-has-mixed-content-4" result="pass"/><test-case name="functx-functx-has-mixed-content-5" result="pass"/><test-case name="functx-functx-has-mixed-content-6" result="pass"/><test-case name="functx-functx-has-mixed-content-7" result="pass"/><test-case name="functx-functx-has-mixed-content-all" result="pass"/><test-case name="functx-functx-has-simple-content-1" result="pass"/><test-case name="functx-functx-has-simple-content-2" result="pass"/><test-case name="functx-functx-has-simple-content-3" result="pass"/><test-case name="functx-functx-has-simple-content-4" result="pass"/><test-case name="functx-functx-has-simple-content-5" result="pass"/><test-case name="functx-functx-has-simple-content-6" result="pass"/><test-case name="functx-functx-has-simple-content-all" result="pass"/><test-case name="functx-functx-id-from-element-1" result="fail"/><test-case name="functx-functx-id-untyped-1" result="pass"/><test-case name="functx-functx-id-untyped-2" result="pass"/><test-case name="functx-functx-id-untyped-3" result="pass"/><test-case name="functx-functx-id-untyped-all" result="pass"/><test-case name="functx-functx-if-absent-1" result="pass"/><test-case name="functx-functx-if-absent-2" result="pass"/><test-case name="functx-functx-if-absent-3" result="pass"/><test-case name="functx-functx-if-absent-all" result="pass"/><test-case name="functx-functx-if-empty-1" result="pass"/><test-case name="functx-functx-if-empty-2" result="pass"/><test-case name="functx-functx-if-empty-3" result="pass"/><test-case name="functx-functx-if-empty-4" result="pass"/><test-case name="functx-functx-if-empty-5" result="pass"/><test-case name="functx-functx-if-empty-6" result="pass"/><test-case name="functx-functx-if-empty-all" result="pass"/><test-case name="functx-functx-index-of-deep-equal-node-1" result="pass"/><test-case name="functx-functx-index-of-deep-equal-node-2" result="pass"/><test-case name="functx-functx-index-of-deep-equal-node-3" result="pass"/><test-case name="functx-functx-index-of-deep-equal-node-all" result="pass"/><test-case name="functx-functx-index-of-match-first-1" result="pass"/><test-case name="functx-functx-index-of-match-first-2" result="pass"/><test-case name="functx-functx-index-of-match-first-3" result="pass"/><test-case name="functx-functx-index-of-match-first-4" result="pass"/><test-case name="functx-functx-index-of-match-first-5" result="pass"/><test-case name="functx-functx-index-of-match-first-all" result="pass"/><test-case name="functx-functx-index-of-node-1" result="pass"/><test-case name="functx-functx-index-of-node-2" result="pass"/><test-case name="functx-functx-index-of-node-3" result="pass"/><test-case name="functx-functx-index-of-node-all" result="pass"/><test-case name="functx-functx-index-of-string-first-1" result="pass"/><test-case name="functx-functx-index-of-string-first-2" result="pass"/><test-case name="functx-functx-index-of-string-first-3" result="pass"/><test-case name="functx-functx-index-of-string-first-all" result="pass"/><test-case name="functx-functx-index-of-string-last-1" result="pass"/><test-case name="functx-functx-index-of-string-last-2" result="pass"/><test-case name="functx-functx-index-of-string-last-3" result="pass"/><test-case name="functx-functx-index-of-string-last-all" result="pass"/><test-case name="functx-functx-index-of-string-1" result="pass"/><test-case name="functx-functx-index-of-string-2" result="pass"/><test-case name="functx-functx-index-of-string-3" result="pass"/><test-case name="functx-functx-index-of-string-all" result="pass"/><test-case name="functx-functx-insert-string-1" result="pass"/><test-case name="functx-functx-insert-string-2" result="pass"/><test-case name="functx-functx-insert-string-3" result="pass"/><test-case name="functx-functx-insert-string-4" result="pass"/><test-case name="functx-functx-insert-string-all" result="pass"/><test-case name="functx-functx-is-absolute-uri-1" result="pass"/><test-case name="functx-functx-is-absolute-uri-2" result="pass"/><test-case name="functx-functx-is-absolute-uri-3" result="pass"/><test-case name="functx-functx-is-absolute-uri-4" result="pass"/><test-case name="functx-functx-is-absolute-uri-5" result="pass"/><test-case name="functx-functx-is-absolute-uri-all" result="pass"/><test-case name="functx-functx-is-ancestor-1" result="pass"/><test-case name="functx-functx-is-ancestor-2" result="pass"/><test-case name="functx-functx-is-ancestor-3" result="pass"/><test-case name="functx-functx-is-ancestor-4" result="pass"/><test-case name="functx-functx-is-ancestor-all" result="pass"/><test-case name="functx-functx-is-a-number-1" result="pass"/><test-case name="functx-functx-is-a-number-2" result="pass"/><test-case name="functx-functx-is-a-number-3" result="pass"/><test-case name="functx-functx-is-a-number-4" result="pass"/><test-case name="functx-functx-is-a-number-5" result="pass"/><test-case name="functx-functx-is-a-number-6" result="pass"/><test-case name="functx-functx-is-a-number-7" result="pass"/><test-case name="functx-functx-is-a-number-8" result="pass"/><test-case name="functx-functx-is-a-number-all" result="pass"/><test-case name="functx-functx-is-descendant-1" result="pass"/><test-case name="functx-functx-is-descendant-2" result="pass"/><test-case name="functx-functx-is-descendant-3" result="pass"/><test-case name="functx-functx-is-descendant-4" result="pass"/><test-case name="functx-functx-is-descendant-all" result="pass"/><test-case name="functx-functx-is-leap-year-1" result="pass"/><test-case name="functx-functx-is-leap-year-2" result="pass"/><test-case name="functx-functx-is-leap-year-3" result="pass"/><test-case name="functx-functx-is-leap-year-all" result="pass"/><test-case name="functx-functx-is-node-among-descendants-deep-equal-1" result="pass"/><test-case name="functx-functx-is-node-among-descendants-deep-equal-2" result="pass"/><test-case name="functx-functx-is-node-among-descendants-deep-equal-3" result="pass"/><test-case name="functx-functx-is-node-among-descendants-deep-equal-4" result="pass"/><test-case name="functx-functx-is-node-among-descendants-deep-equal-all" result="pass"/><test-case name="functx-functx-is-node-among-descendants-1" result="pass"/><test-case name="functx-functx-is-node-among-descendants-2" result="pass"/><test-case name="functx-functx-is-node-among-descendants-3" result="fail"/><test-case name="functx-functx-is-node-among-descendants-4" result="pass"/><test-case name="functx-functx-is-node-among-descendants-all" result="fail"/><test-case name="functx-functx-is-node-in-sequence-deep-equal-1" result="pass"/><test-case name="functx-functx-is-node-in-sequence-deep-equal-2" result="pass"/><test-case name="functx-functx-is-node-in-sequence-deep-equal-3" result="pass"/><test-case name="functx-functx-is-node-in-sequence-deep-equal-all" result="pass"/><test-case name="functx-functx-is-node-in-sequence-1" result="pass"/><test-case name="functx-functx-is-node-in-sequence-2" result="pass"/><test-case name="functx-functx-is-node-in-sequence-3" result="pass"/><test-case name="functx-functx-is-node-in-sequence-all" result="pass"/><test-case name="functx-functx-is-value-in-sequence-1" result="pass"/><test-case name="functx-functx-is-value-in-sequence-2" result="pass"/><test-case name="functx-functx-is-value-in-sequence-3" result="pass"/><test-case name="functx-functx-is-value-in-sequence-all" result="pass"/><test-case name="functx-functx-last-day-of-month-1" result="pass"/><test-case name="functx-functx-last-day-of-month-2" result="pass"/><test-case name="functx-functx-last-day-of-month-3" result="pass"/><test-case name="functx-functx-last-day-of-month-all" result="pass"/><test-case name="functx-functx-last-day-of-year-1" result="pass"/><test-case name="functx-functx-last-day-of-year-2" result="pass"/><test-case name="functx-functx-last-day-of-year-3" result="pass"/><test-case name="functx-functx-last-day-of-year-all" result="pass"/><test-case name="functx-functx-last-node-1" result="pass"/><test-case name="functx-functx-last-node-2" result="pass"/><test-case name="functx-functx-last-node-all" result="pass"/><test-case name="functx-functx-leaf-elements-1" result="pass"/><test-case name="functx-functx-leaf-elements-2" result="pass"/><test-case name="functx-functx-leaf-elements-all" result="pass"/><test-case name="functx-functx-left-trim-1" result="pass"/><test-case name="functx-functx-left-trim-2" result="pass"/><test-case name="functx-functx-left-trim-3" result="pass"/><test-case name="functx-functx-left-trim-all" result="pass"/><test-case name="functx-functx-line-count-1" result="pass"/><test-case name="functx-functx-line-count-2" result="pass"/><test-case name="functx-functx-line-count-all" result="pass"/><test-case name="functx-functx-lines-1" result="pass"/><test-case name="functx-functx-lines-2" result="pass"/><test-case name="functx-functx-lines-all" result="pass"/><test-case name="functx-functx-max-depth-1" result="pass"/><test-case name="functx-functx-max-depth-2" result="pass"/><test-case name="functx-functx-max-depth-all" result="pass"/><test-case name="functx-functx-max-determine-type-1" result="pass"/><test-case name="functx-functx-max-determine-type-2" result="pass"/><test-case name="functx-functx-max-determine-type-3" result="pass"/><test-case name="functx-functx-max-determine-type-all" result="pass"/><test-case name="functx-functx-max-line-length-1" result="pass"/><test-case name="functx-functx-max-line-length-2" result="pass"/><test-case name="functx-functx-max-line-length-all" result="pass"/><test-case name="functx-functx-max-node-1" result="fail"/><test-case name="functx-functx-max-string-1" result="pass"/><test-case name="functx-functx-max-string-2" result="pass"/><test-case name="functx-functx-max-string-all" result="pass"/><test-case name="functx-functx-min-determine-type-1" result="pass"/><test-case name="functx-functx-min-determine-type-2" result="pass"/><test-case name="functx-functx-min-determine-type-3" result="pass"/><test-case name="functx-functx-min-determine-type-all" result="pass"/><test-case name="functx-functx-min-node-1" result="pass"/><test-case name="functx-functx-min-non-empty-string-1" result="pass"/><test-case name="functx-functx-min-string-1" result="pass"/><test-case name="functx-functx-min-string-2" result="pass"/><test-case name="functx-functx-min-string-all" result="pass"/><test-case name="functx-functx-mmddyyyy-to-date-1" result="pass"/><test-case name="functx-functx-mmddyyyy-to-date-2" result="pass"/><test-case name="functx-functx-mmddyyyy-to-date-3" result="pass"/><test-case name="functx-functx-mmddyyyy-to-date-all" result="pass"/><test-case name="functx-functx-month-abbrev-en-1" result="pass"/><test-case name="functx-functx-month-abbrev-en-2" result="pass"/><test-case name="functx-functx-month-abbrev-en-3" result="pass"/><test-case name="functx-functx-month-abbrev-en-all" result="pass"/><test-case name="functx-functx-month-name-en-1" result="pass"/><test-case name="functx-functx-month-name-en-2" result="pass"/><test-case name="functx-functx-month-name-en-3" result="pass"/><test-case name="functx-functx-month-name-en-all" result="pass"/><test-case name="functx-functx-namespaces-in-use-1" result="pass"/><test-case name="functx-functx-name-test-1" result="pass"/><test-case name="functx-functx-name-test-2" result="pass"/><test-case name="functx-functx-name-test-3" result="pass"/><test-case name="functx-functx-name-test-4" result="pass"/><test-case name="functx-functx-name-test-5" result="pass"/><test-case name="functx-functx-name-test-all" result="pass"/><test-case name="functx-functx-next-day-1" result="pass"/><test-case name="functx-functx-next-day-2" result="pass"/><test-case name="functx-functx-next-day-all" result="pass"/><test-case name="functx-functx-node-kind-1" result="pass"/><test-case name="functx-functx-node-kind-2" result="pass"/><test-case name="functx-functx-node-kind-3" result="pass"/><test-case name="functx-functx-node-kind-4" result="pass"/><test-case name="functx-functx-node-kind-5" result="pass"/><test-case name="functx-functx-node-kind-6" result="pass"/><test-case name="functx-functx-node-kind-all" result="pass"/><test-case name="functx-functx-non-distinct-values-1" result="pass"/><test-case name="functx-functx-non-distinct-values-2" result="fail"/><test-case name="functx-functx-non-distinct-values-3" result="pass"/><test-case name="functx-functx-non-distinct-values-all" result="fail"/><test-case name="functx-functx-number-of-matches-1" result="pass"/><test-case name="functx-functx-number-of-matches-2" result="fail"/><test-case name="functx-functx-number-of-matches-3" result="fail"/><test-case name="functx-functx-number-of-matches-all" result="fail"/><test-case name="functx-functx-ordinal-number-en-1" result="pass"/><test-case name="functx-functx-ordinal-number-en-2" result="pass"/><test-case name="functx-functx-ordinal-number-en-all" result="pass"/><test-case name="functx-functx-pad-integer-to-length-1" result="pass"/><test-case name="functx-functx-pad-integer-to-length-2" result="pass"/><test-case name="functx-functx-pad-integer-to-length-3" result="pass"/><test-case name="functx-functx-pad-integer-to-length-all" result="pass"/><test-case name="functx-functx-pad-string-to-length-1" result="pass"/><test-case name="functx-functx-pad-string-to-length-2" result="pass"/><test-case name="functx-functx-pad-string-to-length-3" result="pass"/><test-case name="functx-functx-pad-string-to-length-all" result="pass"/><test-case name="functx-functx-path-to-node-with-pos-1" result="pass"/><test-case name="functx-functx-path-to-node-with-pos-2" result="pass"/><test-case name="functx-functx-path-to-node-with-pos-all" result="pass"/><test-case name="functx-functx-path-to-node-1" result="pass"/><test-case name="functx-functx-path-to-node-2" result="pass"/><test-case name="functx-functx-path-to-node-all" result="pass"/><test-case name="functx-functx-precedes-not-ancestor-1" result="pass"/><test-case name="functx-functx-precedes-not-ancestor-2" result="pass"/><test-case name="functx-functx-precedes-not-ancestor-3" result="pass"/><test-case name="functx-functx-precedes-not-ancestor-all" result="pass"/><test-case name="functx-functx-previous-day-1" result="pass"/><test-case name="functx-functx-previous-day-2" result="pass"/><test-case name="functx-functx-previous-day-all" result="pass"/><test-case name="functx-functx-remove-attributes-deep-1" result="pass"/><test-case name="functx-functx-remove-attributes-deep-2" result="fail"/><test-case name="functx-functx-remove-attributes-deep-3" result="fail"/><test-case name="functx-functx-remove-attributes-deep-all" result="fail"/><test-case name="functx-functx-remove-attributes-1" result="pass"/><test-case name="functx-functx-remove-attributes-2" result="fail"/><test-case name="functx-functx-remove-attributes-3" result="pass"/><test-case name="functx-functx-remove-attributes-4" result="fail"/><test-case name="functx-functx-remove-attributes-all" result="fail"/><test-case name="functx-functx-remove-elements-deep-1" result="pass"/><test-case name="functx-functx-remove-elements-deep-2" result="pass"/><test-case name="functx-functx-remove-elements-deep-3" result="pass"/><test-case name="functx-functx-remove-elements-deep-4" result="pass"/><test-case name="functx-functx-remove-elements-deep-all" result="pass"/><test-case name="functx-functx-remove-elements-not-contents-1" result="pass"/><test-case name="functx-functx-remove-elements-not-contents-2" result="pass"/><test-case name="functx-functx-remove-elements-not-contents-3" result="pass"/><test-case name="functx-functx-remove-elements-not-contents-4" result="pass"/><test-case name="functx-functx-remove-elements-not-contents-all" result="pass"/><test-case name="functx-functx-remove-elements-1" result="fail"/><test-case name="functx-functx-remove-elements-2" result="fail"/><test-case name="functx-functx-remove-elements-3" result="fail"/><test-case name="functx-functx-remove-elements-all" result="fail"/><test-case name="functx-functx-repeat-string-1" result="pass"/><test-case name="functx-functx-repeat-string-2" result="pass"/><test-case name="functx-functx-repeat-string-all" result="pass"/><test-case name="functx-functx-replace-beginning-1" result="fail"/><test-case name="functx-functx-replace-beginning-2" result="fail"/><test-case name="functx-functx-replace-beginning-3" result="fail"/><test-case name="functx-functx-replace-beginning-4" result="fail"/><test-case name="functx-functx-replace-beginning-all" result="fail"/><test-case name="functx-functx-replace-element-values-1" result="pass"/><test-case name="functx-functx-replace-element-values-2" result="pass"/><test-case name="functx-functx-replace-element-values-all" result="pass"/><test-case name="functx-functx-replace-first-1" result="fail"/><test-case name="functx-functx-replace-first-2" result="fail"/><test-case name="functx-functx-replace-first-3" result="fail"/><test-case name="functx-functx-replace-first-4" result="fail"/><test-case name="functx-functx-replace-first-5" result="fail"/><test-case name="functx-functx-replace-first-all" result="fail"/><test-case name="functx-functx-replace-multi-1" result="pass"/><test-case name="functx-functx-reverse-string-1" result="pass"/><test-case name="functx-functx-reverse-string-2" result="pass"/><test-case name="functx-functx-reverse-string-all" result="pass"/><test-case name="functx-functx-right-trim-1" result="pass"/><test-case name="functx-functx-right-trim-2" result="pass"/><test-case name="functx-functx-right-trim-3" result="pass"/><test-case name="functx-functx-right-trim-all" result="pass"/><test-case name="functx-functx-scheme-from-uri-1" result="pass"/><test-case name="functx-functx-scheme-from-uri-2" result="pass"/><test-case name="functx-functx-scheme-from-uri-3" result="pass"/><test-case name="functx-functx-scheme-from-uri-4" result="pass"/><test-case name="functx-functx-scheme-from-uri-5" result="pass"/><test-case name="functx-functx-scheme-from-uri-all" result="pass"/><test-case name="functx-functx-sequence-deep-equal-1" result="pass"/><test-case name="functx-functx-sequence-deep-equal-2" result="pass"/><test-case name="functx-functx-sequence-deep-equal-3" result="pass"/><test-case name="functx-functx-sequence-deep-equal-all" result="pass"/><test-case name="functx-functx-sequence-node-equal-any-order-1" result="pass"/><test-case name="functx-functx-sequence-node-equal-any-order-2" result="pass"/><test-case name="functx-functx-sequence-node-equal-any-order-3" result="pass"/><test-case name="functx-functx-sequence-node-equal-any-order-all" result="pass"/><test-case name="functx-functx-sequence-node-equal-1" result="pass"/><test-case name="functx-functx-sequence-node-equal-2" result="pass"/><test-case name="functx-functx-sequence-node-equal-3" result="pass"/><test-case name="functx-functx-sequence-node-equal-all" result="pass"/><test-case name="functx-functx-sequence-type-1" result="fail"/><test-case name="functx-functx-sequence-type-2" result="fail"/><test-case name="functx-functx-sequence-type-3" result="fail"/><test-case name="functx-functx-sequence-type-4" result="fail"/><test-case name="functx-functx-sequence-type-5" result="fail"/><test-case name="functx-functx-sequence-type-6" result="fail"/><test-case name="functx-functx-sequence-type-7" result="fail"/><test-case name="functx-functx-sequence-type-8" result="fail"/><test-case name="functx-functx-sequence-type-9" result="fail"/><test-case name="functx-functx-sequence-type-10" result="fail"/><test-case name="functx-functx-sequence-type-11" result="fail"/><test-case name="functx-functx-sequence-type-all" result="fail"/><test-case name="functx-functx-siblings-same-name-1" result="pass"/><test-case name="functx-functx-siblings-same-name-2" result="pass"/><test-case name="functx-functx-siblings-same-name-all" result="pass"/><test-case name="functx-functx-siblings-1" result="pass"/><test-case name="functx-functx-siblings-2" result="pass"/><test-case name="functx-functx-siblings-all" result="pass"/><test-case name="functx-functx-sort-as-numeric-1" result="pass"/><test-case name="functx-functx-sort-as-numeric-2" result="pass"/><test-case name="functx-functx-sort-as-numeric-all" result="pass"/><test-case name="functx-functx-sort-case-insensitive-1" result="pass"/><test-case name="functx-functx-sort-case-insensitive-2" result="pass"/><test-case name="functx-functx-sort-case-insensitive-all" result="pass"/><test-case name="functx-functx-sort-document-order-1" result="pass"/><test-case name="functx-functx-sort-1" result="pass"/><test-case name="functx-functx-sort-2" result="pass"/><test-case name="functx-functx-sort-all" result="pass"/><test-case name="functx-functx-substring-after-if-contains-1" result="pass"/><test-case name="functx-functx-substring-after-if-contains-2" result="pass"/><test-case name="functx-functx-substring-after-if-contains-all" result="pass"/><test-case name="functx-functx-substring-after-last-match-1" result="pass"/><test-case name="functx-functx-substring-after-last-match-2" result="pass"/><test-case name="functx-functx-substring-after-last-match-3" result="pass"/><test-case name="functx-functx-substring-after-last-match-all" result="pass"/><test-case name="functx-functx-substring-after-last-1" result="pass"/><test-case name="functx-functx-substring-after-last-2" result="pass"/><test-case name="functx-functx-substring-after-last-3" result="pass"/><test-case name="functx-functx-substring-after-last-all" result="pass"/><test-case name="functx-functx-substring-after-match-1" result="fail"/><test-case name="functx-functx-substring-after-match-2" result="fail"/><test-case name="functx-functx-substring-after-match-3" result="fail"/><test-case name="functx-functx-substring-after-match-all" result="fail"/><test-case name="functx-functx-substring-before-if-contains-1" result="pass"/><test-case name="functx-functx-substring-before-if-contains-2" result="pass"/><test-case name="functx-functx-substring-before-if-contains-all" result="pass"/><test-case name="functx-functx-substring-before-last-match-1" result="pass"/><test-case name="functx-functx-substring-before-last-match-2" result="pass"/><test-case name="functx-functx-substring-before-last-match-3" result="pass"/><test-case name="functx-functx-substring-before-last-match-all" result="pass"/><test-case name="functx-functx-substring-before-last-1" result="pass"/><test-case name="functx-functx-substring-before-last-2" result="pass"/><test-case name="functx-functx-substring-before-last-3" result="pass"/><test-case name="functx-functx-substring-before-last-all" result="pass"/><test-case name="functx-functx-substring-before-match-1" result="pass"/><test-case name="functx-functx-substring-before-match-2" result="pass"/><test-case name="functx-functx-substring-before-match-3" result="pass"/><test-case name="functx-functx-substring-before-match-all" result="pass"/><test-case name="functx-functx-time-1" result="pass"/><test-case name="functx-functx-time-2" result="pass"/><test-case name="functx-functx-time-all" result="pass"/><test-case name="functx-functx-timezone-from-duration-1" result="pass"/><test-case name="functx-functx-timezone-from-duration-2" result="pass"/><test-case name="functx-functx-timezone-from-duration-3" result="pass"/><test-case name="functx-functx-timezone-from-duration-all" result="pass"/><test-case name="functx-functx-total-days-from-duration-1" result="pass"/><test-case name="functx-functx-total-days-from-duration-2" result="pass"/><test-case name="functx-functx-total-days-from-duration-3" result="pass"/><test-case name="functx-functx-total-days-from-duration-4" result="pass"/><test-case name="functx-functx-total-days-from-duration-all" result="pass"/><test-case name="functx-functx-total-hours-from-duration-1" result="pass"/><test-case name="functx-functx-total-hours-from-duration-2" result="pass"/><test-case name="functx-functx-total-hours-from-duration-3" result="pass"/><test-case name="functx-functx-total-hours-from-duration-4" result="pass"/><test-case name="functx-functx-total-hours-from-duration-5" result="pass"/><test-case name="functx-functx-total-hours-from-duration-all" result="pass"/><test-case name="functx-functx-total-minutes-from-duration-1" result="pass"/><test-case name="functx-functx-total-minutes-from-duration-2" result="pass"/><test-case name="functx-functx-total-minutes-from-duration-3" result="pass"/><test-case name="functx-functx-total-minutes-from-duration-4" result="pass"/><test-case name="functx-functx-total-minutes-from-duration-all" result="pass"/><test-case name="functx-functx-total-months-from-duration-1" result="pass"/><test-case name="functx-functx-total-months-from-duration-2" result="pass"/><test-case name="functx-functx-total-months-from-duration-3" result="pass"/><test-case name="functx-functx-total-months-from-duration-all" result="pass"/><test-case name="functx-functx-total-seconds-from-duration-1" result="pass"/><test-case name="functx-functx-total-seconds-from-duration-2" result="pass"/><test-case name="functx-functx-total-seconds-from-duration-3" result="pass"/><test-case name="functx-functx-total-seconds-from-duration-4" result="pass"/><test-case name="functx-functx-total-seconds-from-duration-all" result="pass"/><test-case name="functx-functx-total-years-from-duration-1" result="pass"/><test-case name="functx-functx-total-years-from-duration-2" result="pass"/><test-case name="functx-functx-total-years-from-duration-3" result="pass"/><test-case name="functx-functx-total-years-from-duration-all" result="pass"/><test-case name="functx-functx-trim-1" result="pass"/><test-case name="functx-functx-trim-2" result="pass"/><test-case name="functx-functx-trim-3" result="pass"/><test-case name="functx-functx-trim-all" result="pass"/><test-case name="functx-functx-update-attributes-1" result="pass"/><test-case name="functx-functx-update-attributes-2" result="pass"/><test-case name="functx-functx-update-attributes-3" result="pass"/><test-case name="functx-functx-update-attributes-4" result="pass"/><test-case name="functx-functx-update-attributes-all" result="pass"/><test-case name="functx-functx-value-except-1" result="pass"/><test-case name="functx-functx-value-except-2" result="pass"/><test-case name="functx-functx-value-except-3" result="pass"/><test-case name="functx-functx-value-except-4" result="pass"/><test-case name="functx-functx-value-except-all" result="pass"/><test-case name="functx-functx-value-intersect-1" result="pass"/><test-case name="functx-functx-value-intersect-2" result="pass"/><test-case name="functx-functx-value-intersect-3" result="pass"/><test-case name="functx-functx-value-intersect-4" result="pass"/><test-case name="functx-functx-value-intersect-all" result="pass"/><test-case name="functx-functx-value-union-1" result="pass"/><test-case name="functx-functx-value-union-2" result="pass"/><test-case name="functx-functx-value-union-3" result="pass"/><test-case name="functx-functx-value-union-4" result="pass"/><test-case name="functx-functx-value-union-all" result="pass"/><test-case name="functx-functx-word-count-1" result="pass"/><test-case name="functx-functx-word-count-2" result="pass"/><test-case name="functx-functx-word-count-3" result="pass"/><test-case name="functx-functx-word-count-all" result="pass"/><test-case name="functx-functx-words-to-camel-case-1" result="pass"/><test-case name="functx-functx-words-to-camel-case-2" result="pass"/><test-case name="functx-functx-words-to-camel-case-all" result="pass"/><test-case name="functx-functx-wrap-values-in-elements-1" result="pass"/><test-case name="functx-functx-wrap-values-in-elements-2" result="pass"/><test-case name="functx-functx-wrap-values-in-elements-3" result="pass"/><test-case name="functx-functx-wrap-values-in-elements-4" result="pass"/><test-case name="functx-functx-wrap-values-in-elements-all" result="pass"/><test-case name="functx-functx-yearMonthDuration-1" result="pass"/><test-case name="functx-functx-yearMonthDuration-2" result="pass"/><test-case name="functx-functx-yearMonthDuration-3" result="pass"/><test-case name="functx-functx-yearMonthDuration-4" result="pass"/><test-case name="functx-functx-yearMonthDuration-5" result="pass"/><test-case name="functx-functx-yearMonthDuration-6" result="pass"/><test-case name="functx-functx-yearMonthDuration-7" result="pass"/><test-case name="functx-functx-yearMonthDuration-all" result="pass"/><test-case name="functx-functx-yyyyddmm-to-date-1" result="pass"/><test-case name="functx-functx-yyyyddmm-to-date-2" result="pass"/><test-case name="functx-functx-yyyyddmm-to-date-3" result="pass"/><test-case name="functx-functx-yyyyddmm-to-date-all" result="pass"/><test-case name="functx-functx-yyyymmdd-to-date-1" result="pass"/><test-case name="functx-functx-yyyymmdd-to-date-2" result="pass"/><test-case name="functx-functx-yyyymmdd-to-date-3" result="pass"/><test-case name="functx-functx-yyyymmdd-to-date-all" result="pass"/><test-case name="Catalog001" result="pass"/><test-case name="Catalog002" result="pass"/><test-case name="Catalog003" result="pass"/></test-suite-result>
\ No newline at end of file diff --git a/tests/auto/xmlpatternsxqts/TODO b/tests/auto/xmlpatternsxqts/TODO new file mode 100644 index 0000000..d25a6a3 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/TODO @@ -0,0 +1,241 @@ +Various issues/ideas +-------------------- + +Regressions due to erratas: + + K2-ComputeConAttr-42 + K2-ComputeConAttr-43 + K2-CopyNamespacesProlog-9 + combiningnodeseqexcepthc5 + +Public API: + - Have overloads for attribute() etc which take StringRefs? + - Test reusing the context and change bindings each time. Rebind the predefined namespace bindings fn, xs, xml, and use them again in a subsequent query. + - Check properties in the static & dynamic context, that they actually propagate through(and with changes). For instance, static base URI. + - Change StandardPrefixes/etc to be namespaces instead of classes. + - Test that prefixes doesn't affect name lookups. + - You need to decide on how `patternist' should treat non-wellformedness. + - Changefrom QList to QVector. Maybe add a toFooVector() to QAbstractForwardIterator, so we can use a custom vector class in the future. + +- Tons of tests are missing for serialization. Go through all the error codes, ERE0003 for instance. +- Trigger toList in DeduplicateIterator. + +- Rewrite/test descendant-or-sel::node-type() (etc) from a node which isn't the node type. This can be rewritten to descendant::node-type() +- Preceding/following axis selects always nothing from a root node. +- No tests for ordering empty sequence when the decl. is not global. Also several sort keys. +- Check PlainSharedPtr for thread safety. Switch to Qt's one. +- Add weird scheme for doc-available/doc(). ftp, ssh, unknown scheme. +- Forward/Reverse iterators on top level nodes with "siblings". +- Let UserFunctionCallsite return DisableTypingDeduction instead of doing hackery in ExpressionSequence. +- Add exceptions support explicitly to the pro files. +- Maybe we can merge ArgumenentReference and ExpressionVariableReference? +- ArgumenentReference does not implement evaluateToSequenceReceiver() +- Let VariableReference store the whole VariableDeclaration instead +- EvaluationCache.cpp:189: return m_operand->properties() & (DisableElimination | IsEvaluated | DisableTypingDeduction); should probably use + deepProperties(), no? Try to trigger it and fix it. +- It turns out VariableDeclaration::ExternalVariable was actually needed. Currently we use an ExpressionReference to an External reference which is a double layer. +- It seems that for each Literal, a new Literal is created in Expression::constantPropagate. +- Trigger bug: newMe should be returned, not Expression::Ptr(this) in AndExpression. +- Trigger all the paths in Expression::constantPropagate() for error reporting. +- Type inference in K2-Axes-2 doesn't work very well. ItemVerifiers are inserted. +- Write test of the public API that the static/dynamic context in one query compilation doesn't affect in another one. +- Maybe "$foo, $foo" can be handled with a content receiver that doubles events, somehow? +- If you use weird EOLs in namespace bindings in direct attrs, one get bugs, because attributeAsRaw() doesn't do EOL normalization. +- Aren't we doing too aggressive caching in UserFunctionCallsite::setSource()? +- 4763 +- We wrap the context item with an evaluation cache, because it's considered creative, probably. But is the cache really necessary? Huge slowdown.. +- If a type is declared as exactly one for an external variable, evaluateSequence() gets called anyway. A problem? +- Search for use of QString::isSpace(), write tests, and check if it really is intentioonal to check for the separartor group, as opposed the dead old ASCII whitespace characters. fn:normalize-space() and fn:normalize-unicode() are characters. +- Write test, xmlns.xml, for checking basic namespace handling. xmlns.xml contained: + <?xml version="1.0" encoding="UTF-8"?> + <anElement xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:space="preserve"/> +- Pass SourceLocationReflection to Boolean::evaluateEBV() +- Factor out the C++ code in createReportContext.xsl into a template +- I'm afraid that setting/using the type of the context item is not thoroughly tested; LetClause. +- Preallocate like a maniac in AccelTree +- Write tests for 4621 +- In return tokenAndChangeState(t->token... is it really safe to deref t? Write tests.. +- Use all weird numeric literals chars in char refs and num literals to get rid of locale dependent parsing. +- 1. Grep sources for trimmed(), simplified(), isSpace(), as well as home written versions(typeswitches over chars) + 2. Find out what the spec says regarding weird Unicode whitespace. For instance, hair space, U+200A (8202 decimal), THIN SPACE. Non breaking space is another case. + 3. Write tests triggering all current cases + 4. Make the tests pass +- Write function decl that use all types(for parsing) +- trigger if(m_pos == m_length) + return END_OF_FILE; in ignoreComment() + +- Use actual qnames("p:a") in all branches of for/let +- Make Token's ctors explcit +- Trigger the bugs the tokenizer have by using QChar::cell(). +- Add http://forums.oracle.com/forums/thread.jspa?messageID=1570246& to test cases. +- Look at the TreeModelCompleter, and steal code to Patternist View. +- Consider/test extracting EBV from a sorted, possibly mixed sequence. +- Move FunctionCall to expr/ +- Can RequiresFocus and RequiresContextItem be merged? +- Move janitors/* to expr/ +- Check that ItemSequenceCache is tested with StackContextBase +- It is imperative to optimize x[last()] +- Apply fn:count() to CachingIterator. +- Test cache for booleans. +- Write test that use all XML 1.0 characters. +- Fixed: 4462 4460 +- Add test where AxisStep::evaluateSingleton() gets called with no initialized focus. +- Attribute normalization.. <e attr=" "/> +- Node::namespaceBindings() doesn't discuss uniqueness. +- Move common.pri to src/.. +- Write tests for node test source in attribute foo. +- Isn't end-of-line handling applied to text nodes in direct ctors? Yupp, it does. The whole freakin' query: A.2.3 End-of-Line Handling. +- Write tests for cardinalities in let & for. +- Write test for invalud anyURI in xmlns attr that is extr. with namespace-uri(). +- is nameToElements in AccelTree used/needed? +- Overflow is not captured when going from abs(unsignedLong(largeNNN)) and between all the other aggregate functions. avg() as well.. +- Turn NamespaceResolver::Bindings into NamespaceBinding::Vector ffs. +- Property IsNodeConstructor isn't used, right? +- Write tests for things like function-available that depend on tricky namespace contexts. Especially the default element in the typeCheck stage(). +- Gather all functions that stores the namespace context, and ensure they get it right with element constructors, of all its kinds. +- Add tests for where the local name is xmlns, in attrs. +- Implement AxisStep::evaluateEBV() +- One can reduce the three type/*NameTest classes to one probably, by passing in two template parameters: a mask(prefix, ns, zero), and the type + of the comparator(prefix, ns, ln) to store. +- How are axis steps without tests handled? +- Convert the NamespaceResolver to use the NamePool +- Write tests for deep-equal() involving different trees. Spectacular things can happen there with the AccelTree... +- Ask Andreas on file:/, file://, file:/// +- Secure up on brain damage in DelegateQDomNode.cpp#430. +- Apply reverse() to all axes. +- Dump all qHash(QUrl) functions when we have switched to Qt 4.3. +- Rename retrieveFunctionSignature to retieveSignature() or just signature(). Same with functionSignatures(). +- Don't use toLexical() in Serializer. It triggers unnecessary heap allocations, +- Replace SequenceReceiver::processingInstruction(QName) with QName::LocalNameCode. +- Delete DoubledNodeTest +- Replace allocateQName(QString() with StandardNamespaces::empty +- TODO http://www.pms.ifi.lmu.de/forschung/xpath-eval.html +- Write tests that test whitespace normalization in URI/namespace declarations. +- Tests: use namespace-uri-for-prefix with prefix "xml" and supply a node( can const fold) +- Add tests to resolve-uri() for invalid xs:anyURI values +- Make sure that xml:base affects the static context. Or? +- We need a systematic way to convert QUrl to xs:string instances. Same goes for static inline String::Ptr fromValue(const QUrl &value) +- QUrl can't handle empty strings: + K-CondExpr-9 + K-LogicExpr-10 + K-LogicExpr-11 + K-LogicExpr-35 + K-LogicExpr-36 + K-NodeNamespaceURIFunc-3 + K-NotFunc-8 + K-SeqBooleanFunc-8 + K-SeqExprCast-1373 + K-WhereExpr-11 + +- It's very important that the auto tests for the public API tests different features: + - fn:trace() + - external variables + - node constructors + - that node building happens, as opposed to just node events + - warnings/errors + - file loading: fn:doc() + - fn:collection() + - serialization error + +- Should SeqReceiver::attribute() really be passed a QString? Shouldn't it be an Item::Ptr since + it may be typed? Or should we use overloads somehow? +- base-URI-8 has an interesting problem with evaluation mode..? No idea what it is. +- base-URI-24: we should be normalizing, not trimming whitespace. +- xs:anyURI("http://www.example.org/%20%20examples") should output the percentage signs. base-uri-25 +- base-URI-21, base-URI-15 because QUrl transform htpp://A to a. +- fn-nilled-2 regressed for unknown reason, probably related to paths. +- TODO How are we to handle empty string URIs? +- Write one test for each time URILiteral is used in the grammar, and pass in an invalid URI. XQST0046. +- Someone creates a StackContextBase at compile time, gr.. +- Follow up on the "Computed attributes: 'xmlns' with non-empty namespace" topic. +- Write tests for root() while using the context item. +- UserFunctionCallsite::staticType() is quite broken, and needs thinking, followed by writing test cases to triggers + its faults. +- Write tests for: +"certain characters MUST be output as character references, to ensure that +they survive the round trip through serialization and parsing. Specifically, +CR, NEL and LINE SEPARATOR characters in text nodes MUST be output +respectively as "
", "…", and "
", or their equivalents;". +- Write test for XQST0093 +- Write tests for where NameChar is used. +- Optimize (a = b) where a and b are of type xs:string of any length, by putting the values into QMaps? +- Perhaps add tests that ensure locale-specific integer parsing isn't used? Read QChar::isDigit() to find out. +- Add assert in DerivedInteger +- It looks like the type is incorrectly inferred for min/max(), see Aggregator.*. + * Add tests that trigger this + * http://sourceforge.net/tracker/index.php?func=detail&aid=1552670&group_id=29872&atid=397617 +- Regression in the function refactoring: The Function Signatures View only show + the constructor functions, the F&O stuff doesn't show up. The reason for this is that with the + recent refactoring the ability to retrieve all signatures was lost. A signature is first inserted + into m_signatures when a matching function call has been asked for. The regression in Patternist View is not + very important but if we want to do things like displaying signatures that "almost" match etc, we will need to + get back the "give me all signatures in a list"-feature. We need to regression test this: + Q_VERIFY(FunctionFactoryCollection::xpath20Factory().signatures().count(), N); +- Would it be an optimization to apply the cardinality verifier before the untyped atomic converter? +- Document in Mainpage.h to not use capturing paranteses, and review existing code. +- Find invalid use of ElementName in .ypp and write tests +- Rewrite SubsequenceFN::staticType/compress(). It's really weird. Take advantage + of the new Cardinality class. +- Get rid of AtomicValue::hasError() in favor of returning null.. +- ResourceLoader::announceDocument() should return an ItemType? +- ResourceLoader::announceUnparsedText() should return false/true? E.g, always be a string? Nope, bad idea.. +- rename xdtTypeMatches to isOfType() -- much cleaner. Finally found a good name for that + function. Stolen from XQJ. Or perhaps also isInstanceOf().. +- Optimize Decimal/AbstractFloat::stringValue() by using QByteArray and QByteArray::fromRawData(). +- TODO ComparisonPlatform: + * prepareComparison is pretty pointless. My idea is that it should do all the operator lookup. For + example, CastingPlatform::prepareCasting() actually do something and provide convenience. + +- Actually make ParentNodeAxis::create() do what it says(return singleton) +- Think about base URI for Node +- Fix doxygen @file warnings, pending: http://bugzilla.gnome.org/show_bug.cgi?id=345481 +- 'case 0:' in XQueryTokenizer.cpp will break +- TruthPredicate::map() is never called because of regression in the Iterator refactoring. + GenericPredicate's members are called instead. This is a performance regression. +- Perhaps provide suitable default implementation of expectedOperandTypes in *Container classes? +- Make And/OrExpression a template class. +- Reduce UserFunctionCallsite object size by storing arity&name as a FunctionSignature that + is replaced by the real one. +- Perhaps one of the error codes in QNameConstructor::expandQName can be used(the same in each case.) +- Move FunctionCall to expr/ +- The scanner has problem with Unicode characters. Have a look at the tests + in functions-assemblestring.xml. +- When converting to KDOM's WebCore names, also camel case the CommonSequenceTypes::* names. +- For namespace nodes implementation, see: http://lists.w3.org/Archives/Public/www-ql/2003OctDec/0001.html +- XPathExpression::evaluate() is supposed to return a + DOMObject, but currently returns an XPathResult. +- String/Float conversion: + - For return "Decimal::fromValue(this->toDecimal())->stringValue();" for AF.cpp: perhaps a static toString should be added to Decimal that both AbstractFloat and Decimal calls. It would avoid allocating Decimal when calling stringValue(). +- data/AnyURI, the implementation of xs:anyURI, is halfy complete, and needs attention. Error + handling with casting needs a look as well. +- Investigate nilled PSVI + + +KXQTS +-------------------- +* Rename TestSuite::testResult(); it's not exactly a getter +* Grr, rename identifiers and files from *BaseLine* into *Baseline*. +* Speed up --run-outofprocess by keeping patternistrunsuite running as long as possible. +* Make text fields in test case view, selectable. Same with AST view. + +- Code cleaning commands: + * Find cases where stuff looks like "const Foo& var" instead of "const Foo &var": + `grep -nHR "\& .*,"` * + * Convert modeline: + sed -i -e 's+// vim:ts=4:noet+// vim: et:ts=4:sw=4:sts=4+g' `find -name "*.cpp" -or -name "*.h"` + * Bump copyright year: + sed -i -e 's/2005/2006/g' `find -name "*.h" -or -name "*.cpp"` + + grep "if ([[:space:]]*[[:alnum:]]*[[:space:]]*=[[:space:]]*[[:alnum:]]" + * Find and remove whitespace after lines: + sed -i -e 's/[ \t]\+$//' `find -name "*.cpp" -or -name "*.h" -or -name "*.ypp" -or -name "*.pri" -or -name "*.pro"` + +- The new suite runner should: + - Be completely in process + - QTestLib based + - Baseline the final AST + - Baseline messages + - Be stream based + - Consider to what degree it should replace all the old code in sdk/lib. There's so much old, obsolete code. + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/ASTItem.cpp b/tests/auto/xmlpatternsxqts/lib/ASTItem.cpp new file mode 100644 index 0000000..a9aeb39 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ASTItem.cpp @@ -0,0 +1,202 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QList> +#include <QPointer> +#include <QVariant> + +#include "ASTItem.h" + +using namespace QPatternistSDK; + +/** + * This is what the AST rendering is indented with. + */ +static const QLatin1String astIndent(" "); +// STATIC DATA + +ASTItem::ASTItem(ASTItem *p, + const QString &name, + const QString &details, + const QString &staticType, + const QString &reqType) : m_name(name), + m_details(details), + m_reqType(reqType), + m_staticType(staticType), + m_parent(p) +{ +} + +ASTItem::~ASTItem() +{ + qDeleteAll(m_children); +} + +QString ASTItem::toString() const +{ + /* The first ASTItem* is a virtual root node, so skip "this". */ + Q_ASSERT(m_children.count() == 1); + TreeItem *treeChild = m_children.first(); + Q_ASSERT(treeChild); + + ASTItem *astChild = static_cast<ASTItem *>(treeChild); + + return astChild->toString(QString()); +} + +QString ASTItem::toString(const QString &indent) const +{ + QString retval; + + retval += indent; + retval += m_name; + retval += QLatin1Char('('); + retval += m_details; + retval += QLatin1String(")\n"); + + const TreeItem::List::const_iterator end(m_children.constEnd()); + + for(TreeItem::List::const_iterator it(m_children.constBegin()); it != end; ++it) + { + TreeItem *treeChild = *it; /* Cast away the QPointer with its casting operator. */ + ASTItem *astChild = static_cast<ASTItem *>(treeChild); + + retval += astChild->toString(indent + astIndent); + } + + return retval; +} + +QVariant ASTItem::data(const Qt::ItemDataRole role, int column) const +{ + if(role != Qt::DisplayRole) + return QVariant(); + + switch(column) + { + case 0: + return m_name; + case 1: + return m_details; + case 2: + return m_staticType; + case 3: + return m_reqType; + default: + { + Q_ASSERT(false); + return QVariant(); + } + } +} + +int ASTItem::columnCount() const +{ + return 4; +} + +TreeItem::List ASTItem::children() const +{ + return m_children; +} + +void ASTItem::appendChild(TreeItem *item) +{ + m_children.append(item); +} + +TreeItem *ASTItem::child(const unsigned int rowP) const +{ + return m_children.value(rowP); +} + +unsigned int ASTItem::childCount() const +{ + return m_children.count(); +} + +TreeItem *ASTItem::parent() const +{ + return m_parent; +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/ASTItem.h b/tests/auto/xmlpatternsxqts/lib/ASTItem.h new file mode 100644 index 0000000..7d72db7 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ASTItem.h @@ -0,0 +1,156 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_ASTItem_H +#define PatternistSDK_ASTItem_H + +#include <QList> +#include <QString> + +#include "TreeItem.h" +#include "Global.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + /** + * @short Is a node in a ASTItem tree; each ASTItem contains + * debug information about an QPatternist::Expression. + * + * ASTItem, by implementing TreeItem, leverages debug data about QPatternist::Expression + * instances into Qt's model/view framework. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT ASTItem : public TreeItem + { + public: + virtual ~ASTItem(); + ASTItem(ASTItem *parent, + const QString &name, + const QString &details = QString(), + const QString &staticType = QString(), + const QString &reqType = QString()); + + virtual void appendChild(TreeItem *item); + virtual TreeItem *child(const unsigned int row) const; + virtual unsigned int childCount() const; + virtual QVariant data(const Qt::ItemDataRole role, int column) const; + virtual TreeItem::List children() const; + virtual TreeItem *parent() const; + int columnCount() const; + + /** + * Returns a string representation of this AST node, recursively including + * children. For example, the query <tt>1 eq number()</tt> would result in the string: + * +@verbatim +ValueComparison(eq) + xs:integer(0) + FunctionCall(fn:number) + ContextItem +@endverbatim + */ + QString toString() const; + + private: + QString toString(const QString &indent) const; + + const QString m_name; + const QString m_details; + const QString m_reqType; + const QString m_staticType; + TreeItem::List m_children; + TreeItem *m_parent; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/DebugExpressionFactory.cpp b/tests/auto/xmlpatternsxqts/lib/DebugExpressionFactory.cpp new file mode 100644 index 0000000..888c14f --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/DebugExpressionFactory.cpp @@ -0,0 +1,305 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QStringList> +#include <QVariant> +#include <QtDebug> +#include <QXmlNamePool> + +#include "qfunctionfactorycollection_p.h" + +#include "ASTItem.h" +#include "ExpressionInfo.h" +#include "ExpressionNamer.h" +#include "Global.h" + +#include "DebugExpressionFactory.h" + +using namespace QPatternistSDK; +using namespace QPatternist; + +static const QPatternist::ExpressionVisitor::Ptr namer(new ExpressionNamer()); + +QStringList DebugExpressionFactory::availableFunctionSignatures() +{ + const QPatternist::FunctionFactory::Ptr factory(QPatternist::FunctionFactoryCollection::xpath20Factory(Global::namePool())); + const QPatternist::FunctionSignature::Hash signs(factory->functionSignatures()); + const QPatternist::FunctionSignature::Hash::const_iterator end(signs.constEnd()); + QPatternist::FunctionSignature::Hash::const_iterator it(signs.constBegin()); + QStringList retval; + + while(it != end) + { + retval << it.value()->displayName(Global::namePool()); + ++it; + } + + return retval; +} + +ASTItem *DebugExpressionFactory::buildASTTree(const QPatternist::Expression::Ptr &expr, + ASTItem *parent, + const QPatternist::SequenceType::Ptr &reqType) +{ + Q_ASSERT(expr); + const QPatternist::ExpressionVisitorResult::Ptr exprInfo(expr->accept(namer)); + Q_ASSERT(exprInfo); + const ExpressionInfo *const constExprInfo = static_cast<const ExpressionInfo *>(exprInfo.data()); + const QString name(constExprInfo->first); + const QString details(constExprInfo->second); + const QString rType(reqType ? reqType->displayName(Global::namePool()) : QLatin1String("Not specified")); + + /* ---------- Handle its staticType() -------- */ + const QPatternist::SequenceType::Ptr type(expr->staticType()); + QString seqType; + + if(type) + seqType = type->displayName(Global::namePool()); + else + seqType = QLatin1String("no type, null pointer returned"); + /* ------------------------------------------- */ + + ASTItem *const node = new ASTItem(parent, name, details, seqType, rType); + + /* ------------ Handle child nodes ----------- */ + const QPatternist::Expression::List children(expr->operands()); + QPatternist::Expression::List::const_iterator it(children.constBegin()); + const QPatternist::Expression::List::const_iterator end(children.constEnd()); + + const QPatternist::SequenceType::List reqTypes(expr->expectedOperandTypes()); + const QPatternist::SequenceType::List::const_iterator typeEnd(reqTypes.constEnd()); + QPatternist::SequenceType::List::const_iterator typeIt(reqTypes.constBegin()); + QPatternist::SequenceType::Ptr t; + + for(; it != end; ++it) + { + if(typeIt != typeEnd) + { + t = *typeIt; + ++typeIt; + } + + node->appendChild(buildASTTree(*it, node, t)); + } + /* ------------------------------------------- */ + + return node; +} + +QPatternist::Expression::Ptr +DebugExpressionFactory::createExpression(QIODevice *const expr, + const QPatternist::StaticContext::Ptr &context, + const QXmlQuery::QueryLanguage lang, + const QPatternist::SequenceType::Ptr &requiredType, + const QUrl &baseURI, + const QXmlName &initialTemplateName) +{ + /* Create the root node. */ + m_ast = new ASTItem(0, QString()); + + return ExpressionFactory::createExpression(expr, context, lang, requiredType, baseURI, initialTemplateName); +} + +void DebugExpressionFactory::processTreePass(const QPatternist::Expression::Ptr &expr, + const CompilationStage stage) +{ + ASTItem *newChild = 0; + + switch(stage) + { + case QueryBodyInitial: + { + newChild = new ASTItem(m_ast, QLatin1String("Initial Build")); + break; + } + case QueryBodyTypeCheck: + { + newChild = new ASTItem(m_ast, QLatin1String("Type Check")); + break; + } + case QueryBodyCompression: + { + newChild = new ASTItem(m_ast, QLatin1String("Compression")); + break; + } + case UserFunctionTypeCheck: + { + newChild = new ASTItem(m_ast, QLatin1String("User Function Type Check")); + break; + } + case UserFunctionCompression: + { + newChild = new ASTItem(m_ast, QLatin1String("User Function Compression")); + break; + } + case GlobalVariableTypeCheck: + { + newChild = new ASTItem(m_ast, QLatin1String("Global Variable Type Check")); + break; + } + } + + Q_ASSERT(newChild); + m_ast->appendChild(newChild); + newChild->appendChild(buildASTTree(expr, newChild, QPatternist::SequenceType::Ptr())); +} + +void DebugExpressionFactory::processTemplateRule(const Expression::Ptr &body, + const TemplatePattern::Ptr &pattern, + const QXmlName &mode, + const TemplateCompilationStage stage) +{ + const char * title; + + switch(stage) + { + case TemplateInitial: + { + title = "Initial Build"; + break; + } + case TemplateTypeCheck: + { + title = "Type Check"; + break; + } + case TemplateCompress: + { + title = "Compression"; + break; + } + } + + const QString modeName(Global::namePool()->displayName(mode)); + Q_ASSERT(title); + ASTItem *const newChild = new ASTItem(m_ast, QLatin1String("T-Rule ") + + QLatin1String(title) + + QLatin1String(" mode: ") + + modeName + + QLatin1String(" priority: ") + + QString::number(pattern->priority())); + m_ast->appendChild(newChild); + + newChild->appendChild(buildASTTree(pattern->matchPattern(), newChild, QPatternist::SequenceType::Ptr())); + newChild->appendChild(buildASTTree(body, newChild, QPatternist::SequenceType::Ptr())); +} + +void DebugExpressionFactory::processNamedTemplate(const QXmlName &name, + const Expression::Ptr &body, + const TemplateCompilationStage stage) +{ + const char * title; + + switch(stage) + { + case TemplateInitial: + { + title = "Named Template Initial Build"; + break; + } + case TemplateTypeCheck: + { + title = "Named Template Type Check"; + break; + } + case TemplateCompress: + { + title = "Named Template Compression"; + break; + } + } + + Q_ASSERT(title); + ASTItem *const newChild = new ASTItem(m_ast, QLatin1String(title) + + QLatin1String(": ") + + Global::namePool()->displayName(name)); + + m_ast->appendChild(newChild); + newChild->appendChild(buildASTTree(body, newChild, QPatternist::SequenceType::Ptr())); +} + +ASTItem *DebugExpressionFactory::astTree() const +{ + return m_ast; +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/DebugExpressionFactory.h b/tests/auto/xmlpatternsxqts/lib/DebugExpressionFactory.h new file mode 100644 index 0000000..235e936 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/DebugExpressionFactory.h @@ -0,0 +1,169 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_DebugExpressionFactory_H +#define PatternistSDK_DebugExpressionFactory_H + +#include "Global.h" +#include "qexpressionfactory_p.h" +#include "qfunctionfactory_p.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + class ASTItem; + + /** + * @short Is a QPatternist::ExpressionFactory, with the + * difference that it provides the hooks for building from a tree of + * debug data from the compiled expression. + * + * This tree can be retrieved via astTree(). The astTree() function + * returns the AST built the last time createExpression() was called. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT DebugExpressionFactory : public QPatternist::ExpressionFactory + { + public: + DebugExpressionFactory() : m_ast(0) + { + } + + typedef QExplicitlySharedDataPointer<DebugExpressionFactory> Ptr; + /** + * Identical to ExpressionFactory::createExpression() with the difference + * that it builds an ASTItem tree which can be accessed via astTree(). + */ + virtual QPatternist::Expression::Ptr createExpression(QIODevice *const expr, + const QPatternist::StaticContext::Ptr &context, + const QXmlQuery::QueryLanguage lang, + const QPatternist::SequenceType::Ptr &requiredType, + const QUrl &queryURI, + const QXmlName &initialTemplateName); + + /** + * @returns an ASTItem tree built for the last created expression, + * via createExpression(). + */ + virtual ASTItem *astTree() const; + + /** + * @returns a list containing string representations of all available + * functions in Patternist. Each QString in the returned QStringList + * is a function synopsis for human consumption. + */ + static QStringList availableFunctionSignatures(); + + protected: + /** + * Performs the ASTItem tree building. + */ + virtual void processTreePass(const QPatternist::Expression::Ptr &tree, + const CompilationStage stage); + + void processTemplateRule(const QPatternist::Expression::Ptr &body, + const QPatternist::TemplatePattern::Ptr &pattern, + const QXmlName &mode, + const TemplateCompilationStage stage); + + void processNamedTemplate(const QXmlName &name, + const QPatternist::Expression::Ptr &body, + const TemplateCompilationStage stage); + private: + static ASTItem *buildASTTree(const QPatternist::Expression::Ptr &expr, + ASTItem *const parent, + const QPatternist::SequenceType::Ptr &reqType); + ASTItem *m_ast; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/ErrorHandler.cpp b/tests/auto/xmlpatternsxqts/lib/ErrorHandler.cpp new file mode 100644 index 0000000..35d7b74 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ErrorHandler.cpp @@ -0,0 +1,207 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <cstdio> + +#include <QBuffer> +#include <QStringList> +#include <QtDebug> +#include <QtTest> +#include <QtGlobal> +#include <QXmlQuery> +#include <QXmlResultItems> + +#include "ErrorHandler.h" + +using namespace QPatternistSDK; + +ErrorHandler *ErrorHandler::handler = 0; + +void qMessageHandler(QtMsgType type, const char *description) +{ + if(type == QtDebugMsg) + { + std::fprintf(stderr, "%s\n", description); + return; + } + + QtMsgType t; + + switch(type) + { + case QtWarningMsg: + { + t = QtWarningMsg; + break; + } + case QtCriticalMsg: + { + t = QtFatalMsg; + break; + } + case QtFatalMsg: + { + /* We can't swallow Q_ASSERTs, we need to fail the hard way here. + * But maybe not: when run from "patternistrunsingle" it could be an idea + * to actually try to record it(but nevertheless fail somehow) such + * that it gets reported. */ + std::fprintf(stderr, "Fatal error: %s\n", description); + t = QtFatalMsg; /* Dummy, to silence a bogus compiler warning. */ + return; + } + case QtDebugMsg: /* This enum is handled above in the if-clause. */ + /* Fallthrough. */ + default: + { + Q_ASSERT(false); + return; + } + } + + Q_ASSERT(ErrorHandler::handler); + /* This message is hacky. Ideally, we should do it the same way + * ReportContext::error() constructs messages, but this is just testing + * code. */ + ErrorHandler::handler->message(t, QLatin1String("<p>") + QPatternist::escape(QLatin1String(description)) + QLatin1String("</p>")); +} + +void ErrorHandler::installQtMessageHandler(ErrorHandler *const h) +{ + handler = h; + + if(h) + qInstallMsgHandler(qMessageHandler); + else + qInstallMsgHandler(0); +} + +void ErrorHandler::handleMessage(QtMsgType type, + const QString &description, + const QUrl &identifier, + const QSourceLocation &) +{ + /* Don't use pDebug() in this function, it results in infinite + * recursion. Talking from experience.. */ + + Message msg; + msg.setType(type); + msg.setIdentifier(identifier); + + /* Let's remove all the XHTML markup. */ + QBuffer buffer; + buffer.setData(description.toLatin1()); + buffer.open(QIODevice::ReadOnly); + + QXmlQuery query; + query.bindVariable(QLatin1String("desc"), &buffer); + query.setQuery(QLatin1String("string(doc($desc))")); + + QStringList result; + const bool success = query.evaluateTo(&result); + + if(!description.startsWith(QLatin1String("\"Test-suite harness error:"))) + { + const QString msg(QString::fromLatin1("Invalid description: %1").arg(description)); + QVERIFY2(success, qPrintable(msg)); + + if(!success) + QTextStream(stderr) << msg; + } + + + if(!result.isEmpty()) + msg.setDescription(result.first()); + + m_messages.append(msg); +} + +ErrorHandler::Message::List ErrorHandler::messages() const +{ + return m_messages; +} + +void ErrorHandler::reset() +{ + m_messages.clear(); +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/ErrorHandler.h b/tests/auto/xmlpatternsxqts/lib/ErrorHandler.h new file mode 100644 index 0000000..150a522 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ErrorHandler.h @@ -0,0 +1,190 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_ErrorHandler_H +#define PatternistSDK_ErrorHandler_H + +#include "Global.h" +#include "qabstractmessagehandler.h" + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +template<typename T> class QList; + +namespace QPatternistSDK +{ + /** + * @short A MessageHandler which + * accumulates all its received ErrorHandler::Message instances + * in a list, retrievable via messages(). + * + * Thus, ErrorHandler does not report errors, but collects them + * and allows easy access to them. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT ErrorHandler : public QAbstractMessageHandler + { + public: + class Message + { + public: + typedef QList<Message> List; + + QString description() const + { + return m_description; + } + + void setDescription(const QString &desc) + { + m_description = desc; + } + + void setIdentifier(const QUrl &newId) + { + m_identifier = newId; + } + + QUrl identifier() const + { + return m_identifier; + } + + QtMsgType type() const + { + return m_type; + } + + void setType(const QtMsgType t) + { + m_type = t; + } + + private: + QUrl m_identifier; + QtMsgType m_type; + QString m_description; + }; + + /** + * Clears all accumulated errors. + */ + void reset(); + + Message::List messages() const; + + /** + * Calling this function causes all Qt's internal debug messages to be + * sent to @p handler. If @p handler is @c null, Qt's default message + * handler is re-installed. In other words, via an internal proxy function, + * it installs @p handler as Qt's message handler. + * + * If @p handler is heap allocated, it will be leaked. + * + * @see qInstallMsgHandler() + */ + static void installQtMessageHandler(ErrorHandler *const handler); + + static ErrorHandler *handler; + + protected: + virtual void handleMessage(QtMsgType type, + const QString &description, + const QUrl &identifier = QUrl(), + const QSourceLocation &sourceLocation = QSourceLocation()); + + private: + ErrorHandler::Message::List m_messages; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/ErrorItem.cpp b/tests/auto/xmlpatternsxqts/lib/ErrorItem.cpp new file mode 100644 index 0000000..955e261 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ErrorItem.cpp @@ -0,0 +1,183 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QList> +#include <QPointer> +#include <QVariant> + +#include "qreportcontext_p.h" +#include "qcommonnamespaces_p.h" + +#include "ErrorItem.h" + +using namespace QPatternistSDK; + +QString ErrorItem::toString(const QtMsgType type) +{ + switch(type) + { + case QtWarningMsg: + return QLatin1String("Warning"); + case QtFatalMsg: + return QLatin1String("Error"); + default: + { + Q_ASSERT(false); + return QString(); + } + } +} + +ErrorItem::ErrorItem(const ErrorHandler::Message &error, + ErrorItem *p) : m_message(error), + m_parent(p) +{ +} + +ErrorItem::~ErrorItem() +{ + qDeleteAll(m_children); +} + +int ErrorItem::columnCount() const +{ + return 3; +} + +QVariant ErrorItem::data(const Qt::ItemDataRole role, int column) const +{ + if(role != Qt::DisplayRole) + return QVariant(); + + switch(column) + { + case 0: + return toString(m_message.type()); + case 1: + { + if(!m_message.type()) /* It's a warning, likely. */ + return QString(); + + QString ns; + const QString code(QPatternist::ReportContext::codeFromURI(m_message.identifier().toString(), ns)); + + if(ns == QPatternist::CommonNamespaces::XPERR) + return code; + else /* Do the full version. */ + return m_message.type(); + } + case 2: + return m_message.description(); + default: + { + Q_ASSERT(false); + return QVariant(); + } + } +} + +TreeItem::List ErrorItem::children() const +{ + return m_children; +} + +void ErrorItem::appendChild(TreeItem *item) +{ + m_children.append(item); +} + +TreeItem *ErrorItem::child(const unsigned int rowP) const +{ + return m_children.value(rowP); +} + +unsigned int ErrorItem::childCount() const +{ + return m_children.count(); +} + +TreeItem *ErrorItem::parent() const +{ + return m_parent; +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/ErrorItem.h b/tests/auto/xmlpatternsxqts/lib/ErrorItem.h new file mode 100644 index 0000000..fe0602d --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ErrorItem.h @@ -0,0 +1,135 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_ErrorItem_H +#define PatternistSDK_ErrorItem_H + +#include <QList> + +#include "ErrorHandler.h" +#include "Global.h" +#include "TreeItem.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + /** + * @short Delegates a ErrorHandler::Message through the interface + * exposed by TreeItem, such that errors from DOM related code + * can be displayed/used in Qt's model/view framework. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT ErrorItem : public TreeItem + { + public: + ErrorItem(const ErrorHandler::Message &error, ErrorItem *parent); + virtual ~ErrorItem(); + + virtual QVariant data(const Qt::ItemDataRole role, int column) const; + + virtual void appendChild(TreeItem *item); + virtual TreeItem *child(const unsigned int row) const; + virtual unsigned int childCount() const; + virtual TreeItem::List children() const; + virtual TreeItem *parent() const; + int columnCount() const; + + private: + static QString toString(const QtMsgType sev); + + const ErrorHandler::Message m_message; + ErrorItem * m_parent; + TreeItem::List m_children; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/ExitCode.h b/tests/auto/xmlpatternsxqts/lib/ExitCode.h new file mode 100644 index 0000000..a419796 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ExitCode.h @@ -0,0 +1,146 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_ExitCode_H +#define PatternistSDK_ExitCode_H + +#include "Global.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + /** + * @short Houses program exit codes for PatternistSDK utilities. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT ExitCode + { + public: + /** + * Exit codes for programs part of PatternistSDK. The values for the enums are specified + * to make it easily understandable what number a symbol corresponds to. + */ + enum Code + { + Success = 0, + InvalidArgCount = 1, + InvalidArgs = 2, + + /** + * Used in @c patternistrunsuite + */ + InvalidCatalogFile = 3, + FileNotExists = 4, + OpenError = 5, + WriteError = 6, + + /** + * Used in the test program used for comparing files on the byte level. + */ + NotEqual = 7, + UnevenTestCount = 8, + InternalError = 9, + Regression = 10 + }; + + private: + /** + * This constructor is private and has no implementation, because this + * class is not supposed to be instantiated. + */ + inline ExitCode(); + + Q_DISABLE_COPY(ExitCode) + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/ExpressionInfo.cpp b/tests/auto/xmlpatternsxqts/lib/ExpressionInfo.cpp new file mode 100644 index 0000000..a9137ba --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ExpressionInfo.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QtDebug> + +#include "ExpressionInfo.h" + +using namespace QPatternistSDK; + +ExpressionInfo::ExpressionInfo(const QString &name, + const QString &details) : QPair<QString, QString>(name, details) +{ +} + +// vim: et:ts=4:sw=4:sts=4 + diff --git a/tests/auto/xmlpatternsxqts/lib/ExpressionInfo.h b/tests/auto/xmlpatternsxqts/lib/ExpressionInfo.h new file mode 100644 index 0000000..a48cfbe --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ExpressionInfo.h @@ -0,0 +1,121 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_ExpressionInfo_H +#define PatternistSDK_ExpressionInfo_H + +#include "Global.h" +#include "qexpressiondispatch_p.h" + +#include <QPair> +#include <QString> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + /** + * @short Houses debug information about an QPatternist::Expression instance. + * + * An Expression's name, typically its class name, can be retrieved + * via the member variable first, and additional data, for example its string + * value or operator, can be retrieved via the member variable second. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT ExpressionInfo : public QPatternist::ExpressionVisitorResult + , public QPair<QString, QString> + { + public: + ExpressionInfo(const QString &name, const QString &details); + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/ExpressionNamer.cpp b/tests/auto/xmlpatternsxqts/lib/ExpressionNamer.cpp new file mode 100644 index 0000000..0286366 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ExpressionNamer.cpp @@ -0,0 +1,357 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QtDebug> + +#include "qabstractfloat_p.h" +#include "qandexpression_p.h" +#include "qanyuri_p.h" +#include "qapplytemplate_p.h" +#include "qargumentreference_p.h" +#include "qarithmeticexpression_p.h" +#include "qatomicstring_p.h" +#include "qatomizer_p.h" +#include "qattributeconstructor_p.h" +#include "qattributenamevalidator_p.h" +#include "qaxisstep_p.h" +#include "qbase64binary_p.h" +#include "qboolean_p.h" +#include "qcardinalityverifier_p.h" +#include "qcastableas_p.h" +#include "qcastas_p.h" +#include "qcombinenodes_p.h" +#include "qcontextitem_p.h" +#include "qdate_p.h" +#include "qdecimal_p.h" +#include "qdynamiccontextstore_p.h" +#include "qelementconstructor_p.h" +#include "qemptysequence_p.h" +#include "qevaluationcache_p.h" +#include "qexpressionsequence_p.h" +#include "qexpressionvariablereference_p.h" +#include "qfirstitempredicate_p.h" +#include "qforclause_p.h" +#include "qfunctioncall_p.h" +#include "qgday_p.h" +#include "qgeneralcomparison_p.h" +#include "qgenericpredicate_p.h" +#include "qgmonthday_p.h" +#include "qgmonth_p.h" +#include "qgyearmonth_p.h" +#include "qgyear_p.h" +#include "qhexbinary_p.h" +#include "qifthenclause_p.h" +#include "qinstanceof_p.h" +#include "qinteger_p.h" +#include "qitem_p.h" +#include "qitemverifier_p.h" +#include "qliteral_p.h" +#include "qnamespaceconstructor_p.h" +#include "qncnameconstructor_p.h" +#include "qnodecomparison_p.h" +#include "qorexpression_p.h" +#include "qpath_p.h" +#include "qpositionalvariablereference_p.h" +#include "qqnameconstructor_p.h" +#include "qqnamevalue_p.h" +#include "qquantifiedexpression_p.h" +#include "qrangeexpression_p.h" +#include "qrangevariablereference_p.h" +#include "qschemadatetime_p.h" +#include "qschematime_p.h" +#include "qsimplecontentconstructor_p.h" +#include "qtreatas_p.h" +#include "qtruthpredicate_p.h" +#include "quntypedatomicconverter_p.h" +#include "quntypedatomic_p.h" +#include "quserfunctioncallsite_p.h" +#include "qvalidationerror_p.h" +#include "qvaluecomparison_p.h" + +#include "ExpressionInfo.h" +#include "Global.h" + +#include "ExpressionNamer.h" + +using namespace QPatternistSDK; + +/* Simple ones, they have no additional data. */ +#define implClass(cls) \ +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::cls *) const \ +{ \ + return QPatternist::ExpressionVisitorResult::Ptr \ + (new ExpressionInfo(QLatin1String(#cls), QString())); \ +} + +implClass(AndExpression) +implClass(ArgumentConverter) +implClass(Atomizer) +implClass(AttributeConstructor) +implClass(AttributeNameValidator) +implClass(CallTemplate) +implClass(CardinalityVerifier) +implClass(CollationChecker) +implClass(CommentConstructor) +implClass(ComputedNamespaceConstructor) +implClass(ContextItem) +implClass(CopyOf) +implClass(CurrentItemStore) +implClass(DocumentConstructor) +implClass(DynamicContextStore) +implClass(EBVExtractor) +implClass(ElementConstructor) +implClass(EmptySequence) +implClass(ExpressionSequence) +implClass(ExternalVariableReference) +implClass(FirstItemPredicate) +implClass(ForClause) +implClass(GenericPredicate) +implClass(IfThenClause) +implClass(ItemVerifier) +implClass(LetClause) +implClass(LiteralSequence) +implClass(NCNameConstructor) +implClass(NodeSortExpression) +implClass(OrderBy) +implClass(OrExpression) +implClass(ParentNodeAxis) +implClass(ProcessingInstructionConstructor) +implClass(QNameConstructor) +implClass(RangeExpression) +implClass(ReturnOrderBy) +implClass(SimpleContentConstructor) +implClass(StaticBaseURIStore) +implClass(StaticCompatibilityStore) +implClass(TemplateParameterReference) +implClass(TextNodeConstructor) +implClass(TreatAs) +implClass(TruthPredicate) +implClass(UnresolvedVariableReference) +implClass(UntypedAtomicConverter) +implClass(UserFunctionCallsite) +implClass(ValidationError) +#undef implClass + +/** Variable references. */ +#define implVarRef(name) \ +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::name *i) const \ +{ \ + return QPatternist::ExpressionVisitorResult::Ptr \ + (new ExpressionInfo(QLatin1String(#name), \ + QString(QLatin1String("Slot: %1")).arg(i->slot()))); \ +} +implVarRef(RangeVariableReference) +implVarRef(ArgumentReference) +implVarRef(ExpressionVariableReference) +implVarRef(PositionalVariableReference) +#undef implVarRef + +/* Type related classes which have a targetType() function. */ +#define implTypeClass(cls) \ +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::cls *i) const \ +{ \ + return QPatternist::ExpressionVisitorResult::Ptr(new ExpressionInfo(QLatin1String(#cls), \ + i->targetType()->displayName(Global::namePool()))); \ +} + +implTypeClass(InstanceOf) +implTypeClass(CastableAs) +#undef implTypeClass + +/* Type related classes which have a targetType() function. */ +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::CastAs *i) const +{ + return QPatternist::ExpressionVisitorResult::Ptr(new ExpressionInfo(QLatin1String("CastAs"), + i->targetSequenceType()->displayName(Global::namePool()))); +} + +/* Classes which represent operators. */ +#define implOPClass(cls, compClass) \ +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::cls *i) const \ +{ \ + return QPatternist::ExpressionVisitorResult::Ptr(new ExpressionInfo(QLatin1String(#cls), \ + QPatternist::compClass::displayName(i->operatorID()))); \ +} + +implOPClass(ArithmeticExpression, AtomicMathematician) +implOPClass(NodeComparison, NodeComparison) +implOPClass(QuantifiedExpression, QuantifiedExpression) +implOPClass(CombineNodes, CombineNodes) +#undef implOPClass + +/* Classes which represent operators. */ +#define implCompClass(cls, type) \ +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::cls *i) const \ +{ \ + return QPatternist::ExpressionVisitorResult::Ptr(new ExpressionInfo(QLatin1String(#cls), \ + QPatternist::AtomicComparator::displayName(i->operatorID(), \ + QPatternist::AtomicComparator::type))); \ +} + +implCompClass(GeneralComparison, AsGeneralComparison) +implCompClass(ValueComparison, AsValueComparison) +#undef implCompClass + +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::FunctionCall *i) const +{ + return QPatternist::ExpressionVisitorResult::Ptr + (new ExpressionInfo(QLatin1String("FunctionCall"), + Global::namePool()->displayName(i->signature()->name()))); +} + +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::Literal *i) const +{ + return QPatternist::ExpressionVisitorResult::Ptr(new ExpressionInfo( + i->item().type()->displayName(Global::namePool()), + i->item().stringValue())); +} + +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::AxisStep *i) const +{ + return QPatternist::ExpressionVisitorResult::Ptr(new ExpressionInfo(QLatin1String("AxisStep"), + QPatternist::AxisStep::axisName(i->axis()) + + QLatin1String("::") + + i->nodeTest()->displayName(Global::namePool()))); + +} + + +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::EvaluationCache<true> *i) const +{ + return QPatternist::ExpressionVisitorResult::Ptr(new ExpressionInfo(QLatin1String("EvaluationCache<IsForGlobal=true>"), + QLatin1String("Slot: ") + QString::number(i->slot()))); + +} + +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::EvaluationCache<false> *i) const +{ + return QPatternist::ExpressionVisitorResult::Ptr(new ExpressionInfo(QLatin1String("EvaluationCache<IsForGlobal=false>"), + QLatin1String("Slot: ") + QString::number(i->slot()))); + +} + +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::NamespaceConstructor *i) const +{ + return QPatternist::ExpressionVisitorResult::Ptr(new ExpressionInfo(QLatin1String("NamespaceConstructor"), + Global::namePool()->stringForPrefix(i->namespaceBinding().prefix()) + + QLatin1Char('=') + + Global::namePool()->stringForNamespace(i->namespaceBinding().namespaceURI()))); + +} + +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::Path *path) const +{ + + QPatternist::Path::Kind k = path->kind(); + QString type; + + switch(k) + { + case QPatternist::Path::XSLTForEach: + { + type = QLatin1String("XSLTForEach"); + break; + } + case QPatternist::Path::RegularPath: + { + type = QLatin1String("RegularPath"); + break; + } + case QPatternist::Path::ForApplyTemplate: + { + type = QLatin1String("ForApplyTemplate"); + break; + } + } + + return QPatternist::ExpressionVisitorResult::Ptr(new ExpressionInfo(QLatin1String("Path"), type)); +} + +QPatternist::ExpressionVisitorResult::Ptr ExpressionNamer::visit(const QPatternist::ApplyTemplate *path) const +{ + const QPatternist::TemplateMode::Ptr mode(path->mode()); + return QPatternist::ExpressionVisitorResult::Ptr + (new ExpressionInfo(QLatin1String("ApplyTemplate"), mode ? Global::namePool()->displayName(mode->name()) : QString::fromLatin1("#current"))); +} + +// vim: et:ts=4:sw=4:sts=4 + diff --git a/tests/auto/xmlpatternsxqts/lib/ExpressionNamer.h b/tests/auto/xmlpatternsxqts/lib/ExpressionNamer.h new file mode 100644 index 0000000..1fb44d3 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ExpressionNamer.h @@ -0,0 +1,322 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_ExpressionNamer_H +#define PatternistSDK_ExpressionNamer_H + +#include "Global.h" +#include "qexpressiondispatch_p.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + /** + * @short Extracts debug information from a QPatternist::Expression tree. + * + * This data is the name of the AST node(typically the class name), + * and additional data such as the value, type of operator, and so forth. The result + * is returned(from visit()), is an ExpressionInfo instance. + * + * @see ExpressionInfo + * @see ASTItem + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT ExpressionNamer : public QPatternist::ExpressionVisitor + { + public: + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::AndExpression *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ApplyTemplate *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ArgumentReference *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ArithmeticExpression *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::Atomizer *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::AttributeConstructor *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::AttributeNameValidator *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::CallTemplate *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::CardinalityVerifier *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::CastAs *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::CastableAs *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::CollationChecker *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::CombineNodes *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ComputedNamespaceConstructor *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::CommentConstructor *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ContextItem *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::CopyOf *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::CurrentItemStore *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::DocumentConstructor *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::DynamicContextStore *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::EBVExtractor *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ElementConstructor *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::EmptySequence *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ExpressionSequence *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ExpressionVariableReference *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ExternalVariableReference *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::EvaluationCache<true> *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::EvaluationCache<false> *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::FirstItemPredicate *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ForClause *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::FunctionCall *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::GeneralComparison *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::GenericPredicate *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::IfThenClause *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::InstanceOf *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ItemVerifier *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::LetClause *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::Literal *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::LiteralSequence *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::NCNameConstructor *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::NodeComparison *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::NodeSortExpression *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::OrderBy *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::OrExpression *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ParentNodeAxis *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::Path *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::PositionalVariableReference *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ProcessingInstructionConstructor *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::QNameConstructor *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::QuantifiedExpression *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::RangeExpression *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::RangeVariableReference *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ReturnOrderBy *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::SimpleContentConstructor *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::StaticBaseURIStore *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::StaticCompatibilityStore *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::AxisStep *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::TemplateParameterReference *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::TextNodeConstructor *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::TreatAs *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::TruthPredicate *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::UntypedAtomicConverter *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::UnresolvedVariableReference *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ArgumentConverter *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::UserFunctionCallsite *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ValidationError *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::ValueComparison *) const; + + virtual QPatternist::ExpressionVisitorResult::Ptr + visit(const QPatternist::NamespaceConstructor *) const; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/ExternalSourceLoader.cpp b/tests/auto/xmlpatternsxqts/lib/ExternalSourceLoader.cpp new file mode 100644 index 0000000..5d62889 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ExternalSourceLoader.cpp @@ -0,0 +1,181 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QCoreApplication> +#include <QFile> +#include <QtDebug> +#include <QXmlResultItems> +#include <QXmlNamePool> + +#include "Global.h" + +#include "qcommonsequencetypes_p.h" +#include "qdebug_p.h" +#include "qatomicstring_p.h" + +#include "ExternalSourceLoader.h" + +using namespace QPatternistSDK; +using namespace QPatternist; + +ExternalSourceLoader::ExternalSourceLoader(const VariableMap &varMap, + const QPatternist::ResourceLoader::Ptr &r) : m_variableMap(varMap) + , m_resourceLoader(r) + , m_query(Global::namePoolAsPublic()) +{ + Q_ASSERT(m_resourceLoader); +} + +QPatternist::SequenceType::Ptr +ExternalSourceLoader::announceExternalVariable(const QXmlName name, + const QPatternist::SequenceType::Ptr &declaredType) +{ + pDebug() << "ExternalSourceLoader::announceExternalVariable()"; + Q_ASSERT(!name.isNull()); + Q_ASSERT(declaredType); + Q_UNUSED(declaredType); /* Needed when bulding in release mode. */ + + if(name.namespaceURI() == QPatternist::StandardNamespaces::empty) + { + const VariableValue variable(m_variableMap.value(Global::namePool()->stringForLocalName(name.localName()))); + + if(variable.first.isEmpty()) + return QPatternist::SequenceType::Ptr(); + else + { + /* If announceDocument() can't load a document for uriForVar, it will return + * null, which we will too, which is fine, since we can't supply a value for + * this variable then. */ + if(variable.second == Document) + return m_resourceLoader->announceDocument(variable.first, QPatternist::ResourceLoader::WillUse); + else if(variable.second == URI) + { + return QPatternist::CommonSequenceTypes::ExactlyOneString; + } + else + { + /* The type is Query, and we don't pre-load + * them. No particular reason, just not worth it. */ + return QPatternist::CommonSequenceTypes::ZeroOrMoreItems; + } + } + } + else + return QPatternist::SequenceType::Ptr(); +} + +QPatternist::Item +ExternalSourceLoader::evaluateSingleton(const QXmlName name, + const QPatternist::DynamicContext::Ptr &context) +{ + Q_ASSERT(!name.isNull()); + const VariableValue variable(m_variableMap.value(Global::namePool()->stringForLocalName(name.localName()))); + + if(variable.second == Document) + { + Q_ASSERT_X(QFile::exists(variable.first.toLocalFile()), Q_FUNC_INFO, + qPrintable(QString::fromLatin1("The file %1 doesn't exist").arg(variable.first.toLocalFile()))); + Q_ASSERT_X(m_resourceLoader->openDocument(variable.first, context), Q_FUNC_INFO, + "We're supposed to have the value. If not, an error should have been issued at query compile time."); + + return m_resourceLoader->openDocument(variable.first, context); + } + else if(variable.second == Query) + { + /* Well, here we open the file and execute it. */ + m_query.setQuery(QUrl::fromLocalFile(variable.first.toLocalFile())); + Q_ASSERT(m_query.isValid()); + + QXmlResultItems result; + m_query.evaluateTo(&result); + + return QPatternist::Item::fromPublic(result.next()); + } + else + { + Q_ASSERT(variable.second == URI); + return QPatternist::AtomicString::fromValue(variable.first.toString()); + } +} + +// vim: et:ts=4:sw=4:sts=4 + diff --git a/tests/auto/xmlpatternsxqts/lib/ExternalSourceLoader.h b/tests/auto/xmlpatternsxqts/lib/ExternalSourceLoader.h new file mode 100644 index 0000000..802f5b4 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ExternalSourceLoader.h @@ -0,0 +1,178 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_ExternalSourceLoader_H +#define PatternistSDK_ExternalSourceLoader_H + +#include <QHash> +#include <QUrl> +#include <QXmlQuery> + +#include "qdynamiccontext_p.h" +#include "qresourceloader_p.h" +#include "qexternalvariableloader_p.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + /** + * @short Handles external variables in XQTS queries, such as <tt>$input-context</tt>, + * by loading appropriate XML source files. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT ExternalSourceLoader : public QPatternist::ExternalVariableLoader + { + public: + enum TargetOfURI + { + /** + * Identifies @c input-file. + */ + Document, + + /** + * Identifies @c input-URI. + */ + URI, + + /** + * Identifies @c input-query. + */ + Query + }; + + /** + * The first is the complete, absolute, final URI to the file to be loaded, + * and the second is the type of source found at that URI. + */ + typedef QPair<QUrl, TargetOfURI> VariableValue; + + /** + * In the XQTSCatalog.xml each source file in each test is referred to + * by a key, which can be fully looked up in the @c sources element. This QHash + * maps the keys to absolute URIs pointing to the source file. + */ + typedef QHash<QString, QUrl> SourceMap; + + /** + * The first value is the variable name, and the second is the URI identifying + * the XML source file that's supposed to be loaded as a document. + * + * This is one for every test case, except for @c rdb-queries-results-q5, + * @c rdb-queries-results-q17 and @c rdb-queries-results-q18(at least in XQTS 1.0). + */ + typedef QHash<QString, VariableValue> VariableMap; + + ExternalSourceLoader(const VariableMap &varMap, + const QPatternist::ResourceLoader::Ptr &resourceLoader); + + virtual QPatternist::SequenceType::Ptr + announceExternalVariable(const QXmlName name, + const QPatternist::SequenceType::Ptr &declaredType); + + virtual QPatternist::Item + evaluateSingleton(const QXmlName name, + const QPatternist::DynamicContext::Ptr &context); + + VariableMap variableMap() const + { + return m_variableMap; + } + + private: + const VariableMap m_variableMap; + const QPatternist::ResourceLoader::Ptr m_resourceLoader; + QXmlQuery m_query; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/Global.cpp b/tests/auto/xmlpatternsxqts/lib/Global.cpp new file mode 100644 index 0000000..b5aa189 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/Global.cpp @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QXmlNamePool> + +#include "Global.h" + +using namespace QPatternistSDK; + +const QString Global::xqtsCatalogNS (QLatin1String("http://www.w3.org/2005/02/query-test-XQTSCatalog")); +const QString Global::xqtsResultNS (QLatin1String("http://www.w3.org/2005/02/query-test-XQTSResult")); +const QString Global::xsltsCatalogNS (QLatin1String("http://www.w3.org/2005/05/xslt20-test-catalog")); +const QString Global::organizationName (QLatin1String("Patternist Team")); +const qint16 Global::versionNumber (0x01); + +static QXmlNamePool s_namePool; + +QPatternist::NamePool::Ptr Global::namePool() +{ + return s_namePool.d; +} + +QXmlNamePool Global::namePoolAsPublic() +{ + return s_namePool; +} + +bool Global::readBoolean(const QString &value) +{ + const QString normd(value.simplified()); + + if(normd == QLatin1String("true") || + normd == QLatin1String("1")) + return true; + else if(normd.isEmpty() || + normd == QLatin1String("false") || + normd == QLatin1String("0")) + return false; + + Q_ASSERT_X(false, Q_FUNC_INFO, + "The lexical representation of xs:boolean was invalid"); + return false; +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/Global.h b/tests/auto/xmlpatternsxqts/lib/Global.h new file mode 100644 index 0000000..640ca32 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/Global.h @@ -0,0 +1,169 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_Global_H +#define PatternistSDK_Global_H + +#include <QString> + +#include "private/qitem_p.h" +#include "private/qnamepool_p.h" + +#ifdef Q_WS_WIN +# ifdef Q_PATTERNISTSDK_BUILDING + #define Q_PATTERNISTSDK_EXPORT __declspec(dllexport) + #else + #define Q_PATTERNISTSDK_EXPORT __declspec(dllimport) + #endif +#else + #define Q_PATTERNISTSDK_EXPORT +#endif + +/** + * @short Contains testing utilities for Patternist, interfacing W3C's XQuery Test Suite. + * + * @see <a href="http://www.w3.org/XML/Query/test-suite/">XML Query Test Suite</a> + * @author Frans Englich <fenglich@trolltech.com> + */ +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + /** + * @short Contains global constants. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT Global + { + public: + + /** + * The namespace which the XQTS test case catalog(specified by Catalog.xsd) + * is in. The namespace is: <tt>http://www.w3.org/2005/02/query-test-XQTSCatalog</tt> + */ + static const QString xqtsCatalogNS; + + /** + * The namespace which the XQTS test results collection(specified by XQTSResult.xsd) + * is in. The namespace is: <tt>http://www.w3.org/2005/02/query-test-XQTSResult</tt> + */ + static const QString xqtsResultNS; + + /** + * The organization which created PatternistSDK. It say something + * in the direction of "Patternist Team", and is used for QSettings and the like. + */ + static const QString organizationName; + + /** + * The namespace which W3C's XSL-T test suite resides in. + */ + static const QString xsltsCatalogNS; + + /** + * The version of PatternistSDK. The value has currently no other + * meaning than that larger means older. This version information is supplied to + * QMainWindow::restoreState() and QMainWindow::saveState(). + */ + static const qint16 versionNumber; + + /** + * Parses the lexical space of @c xs:boolean, + * with the exception that the empty string is considered @c false. + */ + static bool readBoolean(const QString &lexicalSpace); + + static QPatternist::NamePool::Ptr namePool(); + static QXmlNamePool namePoolAsPublic(); + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/ResultThreader.cpp b/tests/auto/xmlpatternsxqts/lib/ResultThreader.cpp new file mode 100644 index 0000000..44dc8a2 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ResultThreader.cpp @@ -0,0 +1,117 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QEventLoop> + +#include "ResultThreader.h" + +using namespace QPatternistSDK; + +ResultThreader::ResultThreader(QEventLoop &ev, + QFile *file, + const Type t, + QObject *p) : QThread(p) + , m_file(file) + , m_type(t) + , m_eventLoop(ev) +{ + Q_ASSERT_X(p, Q_FUNC_INFO, "Should have a parent"); + Q_ASSERT_X(file, Q_FUNC_INFO, "Should have a valid file"); + Q_ASSERT(m_type == Baseline || m_type == Result); +} + +void ResultThreader::run() +{ + QXmlSimpleReader reader; + reader.setContentHandler(this); + + QXmlInputSource source(m_file); + reader.parse(source); + m_file->close(); +} + +ResultThreader::Type ResultThreader::type() const +{ + return m_type; +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/ResultThreader.h b/tests/auto/xmlpatternsxqts/lib/ResultThreader.h new file mode 100644 index 0000000..8c511a8 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/ResultThreader.h @@ -0,0 +1,151 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_ResultThreader_H +#define PatternistSDK_ResultThreader_H + +#include <QFile> +#include <QFileInfo> +#include <QThread> + +#include "TestResultHandler.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +class QEventLoop; + +namespace QPatternistSDK +{ + /** + * @short Reads XML in the @c XQTSResult.xsd format, as a thread, allowing + * multiple parses to be done simultaneously. + * + * @author Frans Englich <fenglich@trolltech.com> + * @ingroup PatternistSDK + */ + class Q_PATTERNISTSDK_EXPORT ResultThreader : public QThread + , public TestResultHandler + { + public: + enum Type + { + Baseline = 1, + Result + }; + + /** + * Creates a ResultThreader that will read @p file when run() is called. + */ + ResultThreader(QEventLoop &ev, + QFile *file, + const Type type, + QObject *parent); + + /** + * Parses the file passed in this class's constructor with this ResultHandlerTH::Item::LisT + * as the QXmlContentHandler, and returns. + */ + virtual void run(); + + /** + * @note Do not reimplement this function. + * @returns whether this ResultThreader handles the baseline or the result. + */ + Type type() const; + + private: + Q_DISABLE_COPY(ResultThreader) + + QFile *const m_file; + const Type m_type; + QEventLoop & m_eventLoop; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp b/tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp new file mode 100644 index 0000000..b699ead --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp @@ -0,0 +1,545 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QDomDocument> +#include <QFile> +#include <QFileInfo> +#include <QRegExp> +#include <QtDebug> +#include <QUrl> +#include <QXmlAttributes> +#include <QXmlSimpleReader> + +#include "qdebug_p.h" +#include "XMLWriter.h" + +#include "TestBaseLine.h" + +using namespace QPatternistSDK; +using namespace QPatternist; + +Q_GLOBAL_STATIC_WITH_ARGS(QRegExp, errorRegExp, (QLatin1String("[A-Z]{4}[0-9]{4}"))) + +TestBaseLine::TestBaseLine(const Type t) : m_type(t) +{ + Q_ASSERT(errorRegExp()->isValid()); +} + +TestResult::Status TestBaseLine::scan(const QString &serialized, + const TestBaseLine::List &lines) +{ + Q_ASSERT_X(lines.count() >= 1, Q_FUNC_INFO, + "At least one base line must be passed, otherwise there's nothing " + "to compare to."); + + const TestBaseLine::List::const_iterator end(lines.constEnd()); + TestBaseLine::List::const_iterator it(lines.constBegin()); + for(; it != end; ++it) + { + const TestResult::Status retval((*it)->verify(serialized)); + + if(retval == TestResult::Pass || retval == TestResult::NotTested) + return retval; + } + + return TestResult::Fail; +} + +TestResult::Status TestBaseLine::scanErrors(const ErrorHandler::Message::List &errors, + const TestBaseLine::List &lines) +{ + pDebug() << "TestBaseLine::scanErrors()"; + + /* 1. Find the first error in @p errors that's a Patternist + * error(not warning and not from Qt) and extract the error code. */ + QString errorCode; + + const ErrorHandler::Message::List::const_iterator end(errors.constEnd()); + ErrorHandler::Message::List::const_iterator it(errors.constBegin()); + for(; it != end; ++it) + { + if((*it).type() != QtFatalMsg) + continue; + + errorCode = QUrl((*it).identifier()).fragment(); + + pDebug() << "ERR:" << (*it).description(); + /* This is hackish. We have no way of determining whether a Message + * is actually issued from Patternist, so we try to narrow it down like this. */ + if(errorRegExp()->exactMatch(errorCode)) + break; /* It's an error code. */ + else + errorCode.clear(); + } + + pDebug() << "Got error code: " << errorCode; + /* 2. Loop through @p lines, and for the first base line + * which is of type ExpectedError and which matches @p errorCode + * return Pass, otherwise Fail. */ + const TestBaseLine::List::const_iterator blend(lines.constEnd()); + TestBaseLine::List::const_iterator blit(lines.constBegin()); + for(; blit != blend; ++blit) + { + const Type t = (*blit)->type(); + + if(t == TestBaseLine::ExpectedError) + { + const QString d((*blit)->details()); + if(d == errorCode || d == QChar::fromLatin1('*')) + return TestResult::Pass; + } + } + + return TestResult::Fail; +} + +void TestBaseLine::toXML(XMLWriter &receiver) const +{ + switch(m_type) + { + case XML: /* Fallthrough. */ + case Fragment: /* Fallthrough. */ + case Text: + { + QXmlAttributes inspectAtts; + inspectAtts.append(QLatin1String("role"), QString(), + QLatin1String("role"), QLatin1String("principal")); + inspectAtts.append(QLatin1String("compare"), QString(), + QLatin1String("compare"), displayName(m_type)); + receiver.startElement(QLatin1String("output-file"), inspectAtts); + receiver.characters(m_details); + receiver.endElement(QLatin1String("output-file")); + return; + } + case Ignore: + { + Q_ASSERT_X(false, Q_FUNC_INFO, "Serializing 'Ignore' is not implemented."); + return; + } + case Inspect: + { + QXmlAttributes inspectAtts; + inspectAtts.append(QLatin1String("role"), QString(), + QLatin1String("role"), QLatin1String("principal")); + inspectAtts.append(QLatin1String("compare"), QString(), + QLatin1String("compare"), QLatin1String("Inspect")); + receiver.startElement(QLatin1String("output-file"), inspectAtts); + receiver.characters(m_details); + receiver.endElement(QLatin1String("output-file")); + return; + } + case ExpectedError: + { + receiver.startElement(QLatin1String("expected-error")); + receiver.characters(m_details); + receiver.endElement(QLatin1String("expected-error")); + return; + } + } +} + +bool TestBaseLine::isChildrenDeepEqual(const QDomNodeList &cl1, const QDomNodeList &cl2) +{ + const unsigned int len = cl1.length(); + + if(len == cl2.length()) + { + for(unsigned int i = 0; i < len; ++i) + { + if(!isDeepEqual(cl1.at(i), cl2.at(i))) + return false; + } + + return true; + } + else + return false; +} + +bool TestBaseLine::isAttributesEqual(const QDomNamedNodeMap &cl1, const QDomNamedNodeMap &cl2) +{ + const unsigned int len = cl1.length(); + pDebug() << "LEN:" << len; + + if(len == cl2.length()) + { + for(unsigned int i1 = 0; i1 < len; ++i1) + { + const QDomNode attr1(cl1.item(i1)); + Q_ASSERT(!attr1.isNull()); + + /* This is set if attr1 cannot be found at all in cl2. */ + bool earlyExit = false; + + for(unsigned int i2 = 0; i2 < len; ++i2) + { + const QDomNode attr2(cl2.item(i2)); + Q_ASSERT(!attr2.isNull()); + pDebug() << "ATTR1:" << attr1.localName() << attr1.namespaceURI() << attr1.prefix() << attr1.nodeName(); + pDebug() << "ATTR2:" << attr2.localName() << attr2.namespaceURI() << attr2.prefix() << attr2.nodeName(); + + if(attr1.localName() == attr2.localName() && + attr1.namespaceURI() == attr2.namespaceURI() && + attr1.prefix() == attr2.prefix() && + attr1.nodeName() == attr2.nodeName() && /* Yes, needed in addition to all the other. */ + attr1.nodeValue() == attr2.nodeValue()) + { + earlyExit = true; + break; + } + } + + if(!earlyExit) + { + /* An attribute was found that doesn't exist in the other list so exit. */ + return false; + } + } + + return true; + } + else + return false; +} + +bool TestBaseLine::isDeepEqual(const QDomNode &n1, const QDomNode &n2) +{ + if(n1.nodeType() != n2.nodeType()) + return false; + + switch(n1.nodeType()) + { + case QDomNode::CommentNode: + /* Fallthrough. */ + case QDomNode::TextNode: + { + return static_cast<const QDomCharacterData &>(n1).data() == + static_cast<const QDomCharacterData &>(n2).data(); + } + case QDomNode::ProcessingInstructionNode: + { + return n1.nodeName() == n2.nodeName() && + n1.nodeValue() == n2.nodeValue(); + } + case QDomNode::DocumentNode: + return isChildrenDeepEqual(n1.childNodes(), n2.childNodes()); + case QDomNode::ElementNode: + { + return n1.localName() == n2.localName() && + n1.namespaceURI() == n2.namespaceURI() && + n1.nodeName() == n2.nodeName() && /* Yes, this one is needed in addition to localName(). */ + isAttributesEqual(n1.attributes(), n2.attributes()) && + isChildrenDeepEqual(n1.childNodes(), n2.childNodes()); + } + /* Fallthrough all these. */ + case QDomNode::EntityReferenceNode: + case QDomNode::CDATASectionNode: + case QDomNode::EntityNode: + case QDomNode::DocumentTypeNode: + case QDomNode::DocumentFragmentNode: + case QDomNode::NotationNode: + case QDomNode::BaseNode: + case QDomNode::CharacterDataNode: + { + Q_ASSERT_X(false, Q_FUNC_INFO, + "An unsupported node type was encountered."); + return false; + } + case QDomNode::AttributeNode: + { + Q_ASSERT_X(false, Q_FUNC_INFO, + "This should never happen. QDom doesn't allow us to compare DOM attributes " + "properly."); + return false; + } + default: + { + Q_ASSERT_X(false, Q_FUNC_INFO, "Unhandled QDom::NodeType value."); + return false; + } + } +} + +TestResult::Status TestBaseLine::verify(const QString &serializedInput) const +{ + switch(m_type) + { + case Text: + { + if(serializedInput == details()) + return TestResult::Pass; + else + return TestResult::Fail; + } + case Fragment: + /* Fall through. */ + case XML: + { + /* Read the baseline and the serialized input into two QDomDocuments, and compare + * them deeply. We wrap fragments in a root node such that it is well-formed XML. + */ + + QDomDocument output; + { + /* The reason we put things into a QByteArray and then parse it through QXmlSimpleReader, is that + * QDomDocument does whitespace stripping when calling setContent(QString). In other words, + * this workarounds a bug. */ + + QXmlInputSource source; + source.setData((m_type == XML ? serializedInput : QLatin1String("<r>") + + serializedInput + + QLatin1String("</r>")).toUtf8()); + + QString outputReadingError; + + QXmlSimpleReader reader; + reader.setFeature(QLatin1String("http://xml.org/sax/features/namespace-prefixes"), true); + + const bool success = output.setContent(&source, + &reader, + &outputReadingError); + + if(!success) + return TestResult::Fail; + + Q_ASSERT(success); + } + + QDomDocument baseline; + { + QXmlInputSource source; + source.setData((m_type == XML ? details() : QLatin1String("<r>") + + details() + + QLatin1String("</r>")).toUtf8()); + QString baselineReadingError; + + QXmlSimpleReader reader; + reader.setFeature(QLatin1String("http://xml.org/sax/features/namespace-prefixes"), true); + + const bool success = baseline.setContent(&source, + &reader, + &baselineReadingError); + + if(!success) + return TestResult::Fail; + + /* This piece of code workaround a bug in QDom, which treats XML prologs as processing + * instructions and make them available in the tree as so. */ + if(m_type == XML) + { + /* $doc/r/node() */ + const QDomNodeList children(baseline.childNodes()); + const int len = children.length(); + + for(int i = 0; i < len; ++i) + { + const QDomNode &child = children.at(i); + if(child.isProcessingInstruction() && child.nodeName() == QLatin1String("xml")) + { + baseline.removeChild(child); + break; + } + } + } + + Q_ASSERT_X(baselineReadingError.isNull(), Q_FUNC_INFO, + qPrintable((QLatin1String("Reading the baseline failed: ") + baselineReadingError))); + } + + if(isDeepEqual(output, baseline)) + return TestResult::Pass; + else + { + pDebug() << "FAILURE:" << output.toString() << "is NOT IDENTICAL to(baseline):" << baseline.toString(); + return TestResult::Fail; + } + } + case Ignore: + return TestResult::Pass; + case Inspect: + return TestResult::NotTested; + case ExpectedError: + { + /* This function is only called for Text/XML/Fragment tests. */ + return TestResult::Fail; + } + } + Q_ASSERT(false); + return TestResult::Fail; +} + +TestBaseLine::Type TestBaseLine::identifierFromString(const QString &string) +{ + /* "html-output: Using an ad hoc tool, it must assert that the document obeys the HTML + * Output Method as defined in the Serialization specification and section + * 20 of the XSLT 2.0 specification." We treat it as XML for now, same with + * xhtml-output. */ + if(string.compare(QLatin1String("XML"), Qt::CaseInsensitive) == 0 || + string == QLatin1String("html-output") || + string == QLatin1String("xml-output") || + string == QLatin1String("xhtml-output")) + return XML; + else if(string == QLatin1String("Fragment") || string == QLatin1String("xml-frag")) + return Fragment; + else if(string.compare(QLatin1String("Text"), Qt::CaseInsensitive) == 0) + return Text; + else if(string == QLatin1String("Ignore")) + return Ignore; + else if(string.compare(QLatin1String("Inspect"), Qt::CaseInsensitive) == 0) + return Inspect; + else + { + Q_ASSERT_X(false, Q_FUNC_INFO, + qPrintable(QString::fromLatin1("Invalid string representation for a comparation type: %1").arg(string))); + + return Ignore; /* Silence GCC. */ + } +} + +QString TestBaseLine::displayName(const Type id) +{ + switch(id) + { + case XML: + return QLatin1String("XML"); + case Fragment: + return QLatin1String("Fragment"); + case Text: + return QLatin1String("Text"); + case Ignore: + return QLatin1String("Ignore"); + case Inspect: + return QLatin1String("Inspect"); + case ExpectedError: + return QLatin1String("ExpectedError"); + } + + Q_ASSERT(false); + return QString(); +} + +QString TestBaseLine::details() const +{ + if(m_type == Ignore) /* We're an error code. */ + return QString(); + if(m_type == ExpectedError) /* We're an error code. */ + return m_details; + + if(m_details.isEmpty()) + return m_details; + + /* m_details is a file name, we open it and return the result. */ + QFile file(QUrl(m_details).toLocalFile()); + + QString retval; + if(!file.exists()) + retval = QString::fromLatin1("%1 does not exist.").arg(file.fileName()); + else if(!QFileInfo(file.fileName()).isFile()) + retval = QString::fromLatin1("%1 is not a file, cannot display it.").arg(file.fileName()); + else if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) + retval = QString::fromLatin1("Could not open %1. Likely a permission error.").arg(file.fileName()); + + if(retval.isNull()) + { + /* Scary, we assume the query/baseline is in UTF-8. */ + return QString::fromUtf8(file.readAll()); + } + else + { + /* We had a file error. */ + retval.prepend(QLatin1String("Test-suite harness error: ")); + qCritical() << retval; + return retval; + } +} + +TestBaseLine::Type TestBaseLine::type() const +{ + return m_type; +} + +void TestBaseLine::setDetails(const QString &detailsP) +{ + m_details = detailsP; +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestBaseLine.h b/tests/auto/xmlpatternsxqts/lib/TestBaseLine.h new file mode 100644 index 0000000..577c4b1 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestBaseLine.h @@ -0,0 +1,246 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_TestBaseLine_H +#define PatternistSDK_TestBaseLine_H + +#include <QString> + +#include "Global.h" +#include "TestResult.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +class QDomNamedNodeMap; +class QDomNode; +class QDomNodeList; +template<typename T> class QList; + +namespace QPatternistSDK +{ + /** + * @short Represents an expected test result for a test case. + * + * TestBaseLine represents a valid outcome for a test case, + * the "base line". A XQTS test case can have many different valid + * base lines, and one TestBaseLine instance represents on of them. + * + * Of highest interest, TestBaseLine have the function scan() and + * scanErrors(), which allows serialized output to be + * compared to the base line. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT TestBaseLine + { + public: + typedef QList<TestBaseLine *> List; + + /** + * Identifies what kind of comparator to use. The documentation + * for each enumerator is copied from + * <a href="http://www.w3.org/XML/Query/test-suite/Guidelines + * for Running the XML Query Test Suite.html">Guidelines + * for Running the XML Query Test Suite</a> + */ + enum Type + { + /** + * The test harness must canonicalize both, the actual result + * and the expected result according to the "Canonical XML" recommendation [2], + * which refers to a number of open-source implementations. Byte-comparison can + * then be applied to the resulting XML documents. If the test harness does + * this process in a different manner, it must be documented. + */ + XML, + + /** + * For XML fragments, the same root node must be created for both, + * implementation result and test suite result. The resulting XML + * can be compared using XML comparison. + */ + Fragment, + + /** + * Text (that has been produced by XML serialization) is compared + * using byte-comparison. + */ + Text, + + /** + * No comparison needs to be applied; the result is always @c true if + * the implementation successfully executes the test case. + */ + Ignore, + + /** + * A human is required to make the call about correctness of the result + * according to the description in the test case. + */ + Inspect, + + /** + * The expected result of the test case is an error, identified as an + * eight-character error code (e.g., XPST0003). The result of a test is + * @c true, if the implementation raises an error. However, raising an error + * because an implementation does not support the feature is not + * considered a correct result. + */ + ExpectedError + }; + + /** + * Takes a string identifying a comparator either in the XSL-T or the + * XQuery test suite, and returns an enum value for it. + * + * If the value is unknown, the code asserts. + */ + static Type identifierFromString(const QString &string); + + /** + * @returns a display name for @p id. For example, if Inspect was passed, "Inspect" + * would be returned. + */ + static QString displayName(const Type id); + + /** + * Compares @p items(typically the result of an evaluation) against + * the base lines @p lines. + * + * @returns the status of the first base line which passes, + * otherwise TestResult::Fail. + */ + static TestResult::Status scan(const QString &serialized, + const TestBaseLine::List &lines); + + static TestResult::Status scanErrors(const ErrorHandler::Message::List &errors, + const TestBaseLine::List &lines); + + /** + * Constructs a TestBaseLine of type @p type. + */ + TestBaseLine(const Type type); + + /** + * What @p details contains depends on the type(). If the type() is ExpectedError, + * @p details contains the relevant error code. If the type() is one which compares + * result against a base line, it is a filename locating the baseline. + */ + void setDetails(const QString &details); + + Type type() const; + + QString details() const; + + void toXML(XMLWriter &receiver) const; + + protected: + TestResult::Status verify(const QString &serializedInput) const; + + private: + static bool isDeepEqual(const QDomNode &n1, const QDomNode &n2); + + /** + * @returns @c true if the nodes in @p cl1 are equal to @p cl2, by calling isDeepEqual() + * for each pair. + */ + static bool isChildrenDeepEqual(const QDomNodeList &cl1, const QDomNodeList &cl2); + + /** + * Considers @p cl1 and @p cl2 to be lists containing attributes. The list are equal + * if they contain attributes by same value and name, but regardless of order. + */ + static bool isAttributesEqual(const QDomNamedNodeMap &cl1, const QDomNamedNodeMap &cl2); + const Type m_type; + QString m_details; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestCase.cpp b/tests/auto/xmlpatternsxqts/lib/TestCase.cpp new file mode 100644 index 0000000..0dc23dd --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestCase.cpp @@ -0,0 +1,480 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QBuffer> +#include <QUrl> +#include <QXmlAttributes> +#include <QXmlQuery> +#include <QXmlResultItems> +#include <QXmlSerializer> +#include <qxmlquery_p.h> + +#include "DebugExpressionFactory.h" +#include "ExternalSourceLoader.h" +#include "Global.h" +#include "TestSuite.h" +#include "XMLWriter.h" + +#include "TestCase.h" + +using namespace QPatternistSDK; +using namespace QPatternist; + +// STATIC DATA +static const DebugExpressionFactory::Ptr s_exprFact(new DebugExpressionFactory()); + +TestCase::TestCase() : m_result(0) +{ +} + +TestCase::~TestCase() +{ + delete m_result; +} + +TestResult::List TestCase::execute(const ExecutionStage stage, + TestSuite *) +{ + if(name() == QLatin1String("Constr-cont-document-3")) + { + TestResult::List result; + result.append(createTestResult(TestResult::Fail, QLatin1String("Skipped this test, because we loop infinitely on it."))); + return result; + } + else if(name() == QLatin1String("Axes089")) + { + TestResult::List result; + result.append(createTestResult(TestResult::Fail, QLatin1String("Skipped this test, we crash on it."))); + return result; + } + + qDebug() << "Running test case: " << name(); + + return execute(stage); + + Q_ASSERT(false); + return TestResult::List(); +} + +TestResult *TestCase::createTestResult(const TestResult::Status status, + const QString &comment) const +{ + TestResult *const result = new TestResult(name(), + status, + 0 /* We don't have an AST. */, + ErrorHandler::Message::List(), + QPatternist::Item::List(), + QString()); + result->setComment(comment); + return result; +} + +TestResult::List TestCase::execute(const ExecutionStage stage) +{ + ErrorHandler errHandler; + ErrorHandler::installQtMessageHandler(&errHandler); + + pDebug() << "TestCase::execute()"; + delete m_result; + + QXmlQuery query(language(), Global::namePoolAsPublic()); + + query.d->setExpressionFactory(s_exprFact); + query.setInitialTemplateName(initialTemplateName()); + + QXmlQuery openDoc(query.namePool()); + + if(contextItemSource().isValid()) + { + openDoc.setQuery(QString::fromLatin1("doc('") + contextItemSource().toString() + QLatin1String("')")); + Q_ASSERT(openDoc.isValid()); + QXmlResultItems result; + + openDoc.evaluateTo(&result); + const QXmlItem item(result.next()); + Q_ASSERT(!item.isNull()); + query.setFocus(item); + } + + TestResult::List retval; + + const Scenario scen(scenario()); + TestResult::Status resultStatus = TestResult::Unknown; + + bool ok = false; + const QString queryString(sourceCode(ok)); + + if(!ok) + { + /* Loading the query file failed, or similar. */ + resultStatus = TestResult::Fail; + + m_result = new TestResult(name(), resultStatus, s_exprFact->astTree(), + errHandler.messages(), QPatternist::Item::List(), QString()); + retval.append(m_result); + ErrorHandler::installQtMessageHandler(0); + changed(this); + return retval; + } + + query.setMessageHandler(&errHandler); + QXmlNamePool namePool(query.namePool()); + + /* Bind variables. */ + QPatternist::ExternalVariableLoader::Ptr loader(externalVariableLoader()); + if(loader) + { + Q_ASSERT(loader); + const ExternalSourceLoader::VariableMap vMap(static_cast<const ExternalSourceLoader *>(loader.data())->variableMap()); + const QStringList variables(vMap.keys()); + + for(int i = 0; i < variables.count(); ++i) + { + const QXmlName name(namePool, variables.at(i)); + const QXmlItem val(QPatternist::Item::toPublic(loader->evaluateSingleton(name, QPatternist::DynamicContext::Ptr()))); + query.bindVariable(name, val); + } + } + + /* We pass in the testCasePath(), such that the base URI is correct fort + * XSL-T stylesheets. */ + query.setQuery(queryString, testCasePath()); + + if(!query.isValid()) + { + pDebug() << "Got compilation exception."; + resultStatus = TestBaseLine::scanErrors(errHandler.messages(), baseLines()); + + Q_ASSERT(resultStatus != TestResult::Unknown); + m_result = new TestResult(name(), resultStatus, s_exprFact->astTree(), + errHandler.messages(), QPatternist::Item::List(), QString()); + retval.append(m_result); + ErrorHandler::installQtMessageHandler(0); + changed(this); + return retval; + } + + if(stage == CompileOnly) + { + m_result = new TestResult(name(), TestResult::Fail, s_exprFact->astTree(), + errHandler.messages(), QPatternist::Item::List(), QString()); + retval.append(m_result); + return retval; + } + + Q_ASSERT(stage == CompileAndRun); + + if(scen == ParseError) /* We're supposed to have received an error + at this point. */ + { + m_result = new TestResult(name(), TestResult::Fail, s_exprFact->astTree(), + errHandler.messages(), QPatternist::Item::List(), QString()); + ErrorHandler::installQtMessageHandler(0); + retval.append(m_result); + changed(this); + return retval; + } + + QPatternist::Item::List itemList; + + QByteArray output; + QBuffer buffer(&output); + buffer.open(QIODevice::WriteOnly); + + QXmlSerializer serializer(query, &buffer); + + pDebug() << "-------------------------- evaluateToPushCallback() ---------------------------- "; + const bool success = query.evaluateTo(&serializer); + pDebug() << "------------------------------------------------------------------------------------ "; + + buffer.close(); + + const QString serialized(QString::fromUtf8(output.constData(), output.size())); + + if(!success) + { + resultStatus = TestBaseLine::scanErrors(errHandler.messages(), baseLines()); + + Q_ASSERT(resultStatus != TestResult::Unknown); + m_result = new TestResult(name(), resultStatus, s_exprFact->astTree(), + errHandler.messages(), QPatternist::Item::List(), serialized); + retval.append(m_result); + ErrorHandler::installQtMessageHandler(0); + changed(this); + return retval; + } + + /* It's a regular test. */ + Q_ASSERT(scen == Standard || scen == RuntimeError); + + resultStatus = TestBaseLine::scan(serialized, baseLines()); + Q_ASSERT(resultStatus != TestResult::Unknown); + + /* Check that errHandler()->messages() at most only contains + * warnings, since it shouldn't have errors at this point. */ + const ErrorHandler::Message::List errors (errHandler.messages()); + const ErrorHandler::Message::List::const_iterator end(errors.constEnd()); + ErrorHandler::Message::List::const_iterator it(errors.constBegin()); + + for(; it != end; ++it) + { + const QtMsgType type = (*it).type(); + if(type == QtFatalMsg) + { + m_result = new TestResult(name(), TestResult::Fail, s_exprFact->astTree(), + errHandler.messages(), itemList, serialized); + retval.append(m_result); + ErrorHandler::installQtMessageHandler(0); + changed(this); + return retval; + } + } + + m_result = new TestResult(name(), resultStatus, s_exprFact->astTree(), + errHandler.messages(), itemList, serialized); + retval.append(m_result); + ErrorHandler::installQtMessageHandler(0); + changed(this); + return retval; +} + +TestCase::Scenario TestCase::scenarioFromString(const QString &string) +{ + if(string == QLatin1String("standard")) + return Standard; + else if(string == QLatin1String("parse-error")) + return ParseError; + else if(string == QLatin1String("runtime-error")) + return RuntimeError; + else if(string == QLatin1String("trivial")) + return Trivial; + else + { + Q_ASSERT_X(false, Q_FUNC_INFO, + qPrintable(QString::fromLatin1("Invalid string representation for the scenario-enum: %1").arg(string))); + return ParseError; /* Silence GCC. */ + } +} + +void TestCase::toXML(XMLWriter &receiver) const +{ + /* <test-case> */ + QXmlAttributes test_caseAtts; + test_caseAtts.append(QLatin1String("is-XPath2"), QString(), + QLatin1String("is-XPath2"), isXPath() ? QLatin1String("true") + : QLatin1String("false")); + test_caseAtts.append(QLatin1String("name"), QString(), QLatin1String("name"), name()); + test_caseAtts.append(QLatin1String("creator"), QString(), QLatin1String("creator"), creator()); + QString scen; + switch(scenario()) + { + case Standard: + { + scen = QLatin1String("standard"); + break; + } + case ParseError: + { + scen = QLatin1String("parse-error"); + break; + } + case RuntimeError: + { + scen = QLatin1String("runtime-error"); + break; + } + case Trivial: + { + scen = QLatin1String("trivial"); + break; + } + default: /* includes 'AnyError' */ + Q_ASSERT(false); + } + test_caseAtts.append(QLatin1String("scenario"), QString(), QLatin1String("scenario"), scen); + test_caseAtts.append(QLatin1String(QLatin1String("FilePath")), QString(), + QLatin1String("FilePath"), QString()); + receiver.startElement(QLatin1String("test-case"), test_caseAtts); + + /* <description> */ + receiver.startElement(QLatin1String("description"), test_caseAtts); + receiver.characters(description()); + + /* </description> */ + receiver.endElement(QLatin1String("description")); + + /* <query> */ + QXmlAttributes queryAtts; + queryAtts.append(QLatin1String("date"), QString(), QLatin1String("date"), /* This date is a dummy. */ + QDate::currentDate().toString(Qt::ISODate)); + queryAtts.append(QLatin1String("name"), QString(), QLatin1String("name"), testCasePath().toString()); + receiver.startElement(QLatin1String("query"), queryAtts); + + /* </query> */ + receiver.endElement(QLatin1String("query")); + + /* Note: this is invalid, we don't add spec-citation. */ + TestBaseLine::List bls(baseLines()); + const TestBaseLine::List::const_iterator end(bls.constEnd()); + TestBaseLine::List::const_iterator it(bls.constBegin()); + + for(; it != end; ++it) + (*it)->toXML(receiver); + + /* </test-case> */ + receiver.endElement(QLatin1String("test-case")); +} + +QString TestCase::displayName(const Scenario scen) +{ + switch(scen) + { + case Standard: + return QLatin1String("Standard"); + case ParseError: + return QLatin1String("Parse Error"); + case RuntimeError: + return QLatin1String("Runtime Error"); + case Trivial: + return QLatin1String("Trivial"); + case AnyError: + { + Q_ASSERT(false); + return QString(); + } + } + + Q_ASSERT(false); + return QString(); +} + +TestItem::ResultSummary TestCase::resultSummary() const +{ + if(m_result) + return ResultSummary(m_result->status() == TestResult::Pass ? 1 : 0, + 1); + + return ResultSummary(0, 1); +} + +void TestCase::appendChild(TreeItem *) +{ + Q_ASSERT_X(false, Q_FUNC_INFO, "Makes no sense to call appendChild() for TestCase."); +} + +TreeItem *TestCase::child(const unsigned int) const +{ + return 0; /* Silence GCC */ +} + +TreeItem::List TestCase::children() const +{ + return TreeItem::List(); +} + +unsigned int TestCase::childCount() const +{ + return 0; +} + +TestResult *TestCase::testResult() const +{ + return m_result; +} + +bool TestCase::isFinalNode() const +{ + return true; +} + +QXmlQuery::QueryLanguage TestCase::language() const +{ + return QXmlQuery::XQuery10; +} + +QXmlName TestCase::initialTemplateName() const +{ + return QXmlName(); +} + +// vim: et:ts=4:sw=4:sts=4 + diff --git a/tests/auto/xmlpatternsxqts/lib/TestCase.h b/tests/auto/xmlpatternsxqts/lib/TestCase.h new file mode 100644 index 0000000..14d4a48 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestCase.h @@ -0,0 +1,297 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_TestCase_H +#define PatternistSDK_TestCase_H + +#include <QtXmlPatterns/QXmlQuery> + +#include "qexternalvariableloader_p.h" + +#include "ErrorHandler.h" +#include "TestBaseLine.h" +#include "Global.h" + +#include "TestItem.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +class QDate; +class QString; +class QUrl; + +namespace QPatternistSDK +{ + class XMLWriter; + + /** + * @short A generic abstract base class for test cases. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT TestCase : public TestItem + { + public: + /** + * Corresponds to the simpleType test:scenarios-enum + */ + enum Scenario + { + /** + * The test case should evaluate normally and that the output + * should match the supplied base line. + */ + Standard = 1, + + /** + * The test case should result in a static error, a parser error. + */ + ParseError = 2, + + /** + * The test case should result in a dynamic error, a runtime error. + */ + RuntimeError = 4, + + Trivial = 8, + + /** + * ParseError and RuntimeError OR'd. + */ + AnyError = RuntimeError | ParseError + + }; + + TestCase(); + virtual ~TestCase(); + + /** + * Executes the test, and returns the result. The returned list + * will always contain exactly one TestResult. + * + * @p stage is ignored when running out-of-process. + */ + virtual TestResult::List execute(const ExecutionStage stage, + TestSuite *ts); + + /** + * Determines the corresponding Scenario enumerator from the string + * representation @p string. + * + * The following mappings are in effect: + * @arg @c Standard "standard" + * @arg @c ParseError "parse-error" + * @arg @c RuntimeError "runtime-error" + */ + static Scenario scenarioFromString(const QString &string); + + /** + * @return always @c true + */ + virtual bool isFinalNode() const; + + /** + * Calling this function makes no sense, so it always + * performs an Q_ASSERT check. + */ + virtual void appendChild(TreeItem *); + + /** + * Calling this function makes no sense, so it always + * performs an Q_ASSERT check. + */ + virtual TreeItem *child(const unsigned int) const; + + /** + * @return always zero + */ + virtual unsigned int childCount() const; + + /** + * @return always an empty list. + */ + virtual TreeItem::List children() const; + + /** + * A description of the test case for human consumption. + */ + virtual QString description() const = 0; + + /** + * The title of the test. This can be the identifier of the test, for example. + */ + virtual QString title() const = 0; + + /** + * Whether this test case only make use of XPath features. + * + * @returns @c false if the test case exercises any XQuery feature + * which is not available in XPath 2.0. + */ + virtual bool isXPath() const = 0; + + /** + * The full name of the creator of the test case. For example, "Frans Englich". + */ + virtual QString creator() const = 0; + + /** + * The date of when the test case was created or last modified. + */ + virtual QDate lastModified() const = 0; + + /** + * The test's source code. That is, the XPath/XQuery code for the test. + * + * @param ok the function sets this value to @c false if loading the query + * failed, and returns a description of the error for human consumption. If + * everything went ok, @p ok is set to @c true, and the query is returned. + */ + virtual QString sourceCode(bool &ok) const = 0; + + /** + * The path to the file containing the code of the test case. + */ + virtual QUrl testCasePath() const = 0; + + /** + * The test case's identifier. For example, "Literals001". + */ + virtual QString name() const = 0; + + /** + * What kind of test this is. For example, whether the test case + * should result in a parser error or should evaluate without errors. + * + * The vast common case is that one Scenario is returned; the bit signifiance + * is for the TestCase sub-class UserTestCase. + */ + virtual Scenario scenario() const = 0; + + static QString displayName(const Scenario scen); + + /** + * @returns the valid test baselines for this test case. If only + * one outcome is valid, the returned list only contains + * that baseline. + */ + virtual TestBaseLine::List baseLines() const = 0; + + virtual TestResult *testResult() const; + + virtual ResultSummary resultSummary() const; + + void toXML(XMLWriter &receiver) const; + + virtual QPatternist::ExternalVariableLoader::Ptr externalVariableLoader() const = 0; + + /** + * @short The XML document that should be used as focus. If none should + * be used, and hence the focus be undefined, a default constructed + * QUrl is returned. + */ + virtual QUrl contextItemSource() const = 0; + + /** + * Returns by default QXmlQuery::XQuery10. + */ + virtual QXmlQuery::QueryLanguage language() const; + + virtual QXmlName initialTemplateName() const; + private: + TestResult::List execute(const ExecutionStage stage); + TestResult *createTestResult(const TestResult::Status status, + const QString &comment) const; + + QPointer<TestResult> m_result; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestContainer.cpp b/tests/auto/xmlpatternsxqts/lib/TestContainer.cpp new file mode 100644 index 0000000..b0a7c36 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestContainer.cpp @@ -0,0 +1,192 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QPair> +#include <QtDebug> + +#include "TestContainer.h" + +using namespace QPatternistSDK; + +TestContainer::TestContainer() : m_deleteChildren(true) +{ +} + +TestContainer::~TestContainer() +{ + if(m_deleteChildren) + qDeleteAll(m_children); +} + +TestResult::List TestContainer::execute(const ExecutionStage stage, + TestSuite *ts) +{ + Q_ASSERT(ts); + const unsigned int c = m_children.count(); + TestResult::List result; + + for(unsigned int i = 0; i != c; ++i) + result += static_cast<TestItem *>(child(i))->execute(stage, ts); + + return result; +} + +TestItem::ResultSummary TestContainer::resultSummary() const +{ + const int c = childCount(); + int total = 0; + int pass = 0; + + for(int i = 0; i != c; ++i) + { + TestItem *t = static_cast<TestItem *>(child(i)); + const ResultSummary sum(t->resultSummary()); + pass += sum.first; + total += sum.second; + } + + return ResultSummary(pass, total); +} + +TreeItem::List TestContainer::children() const +{ + return m_children; +} + +void TestContainer::appendChild(TreeItem *item) +{ + /* When one of our children changes, we changes. */ + connect(item, SIGNAL(changed(TreeItem *)), SIGNAL(changed(TreeItem *))); + m_children.append(item); +} + +TreeItem *TestContainer::child(const unsigned int rowP) const +{ + return m_children.value(rowP); +} + +unsigned int TestContainer::childCount() const +{ + return m_children.count(); +} + +void TestContainer::setTitle(const QString &titleP) +{ + m_title = titleP; +} + +QString TestContainer::title() const +{ + return m_title; +} + +bool TestContainer::isFinalNode() const +{ + return false; +} + +int TestContainer::columnCount() const +{ + return 4; +} + +QString TestContainer::description() const +{ + return m_description; +} + +void TestContainer::setDescription(const QString &desc) +{ + m_description = desc; +} + +void TestContainer::setDeleteChildren(const bool val) +{ + m_deleteChildren = val; +} + +void TestContainer::removeLast() +{ + m_children.removeLast(); +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestContainer.h b/tests/auto/xmlpatternsxqts/lib/TestContainer.h new file mode 100644 index 0000000..5cea0ba --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestContainer.h @@ -0,0 +1,164 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_TestContainer_H +#define PatternistSDK_TestContainer_H + +#include "Global.h" +#include "TestItem.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + /** + * @short an abstract base class, containing + * an appropriate implementation of TestItem for sub-classes + * which can contain other TestItem instances. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT TestContainer : public TestItem + { + public: + virtual ~TestContainer(); + virtual void appendChild(TreeItem *item); + virtual TreeItem *child(const unsigned int row) const; + virtual unsigned int childCount() const; + + /** + * @returns the TestResults of this TestContainer's children. + */ + virtual TestResult::List execute(const ExecutionStage stage, + TestSuite *ts); + + QString title() const; + void setTitle(const QString &title); + + virtual TreeItem::List children() const; + + /** + * @return always 2 + */ + virtual int columnCount() const; + + virtual bool isFinalNode() const; + + virtual ResultSummary resultSummary() const; + virtual QString description() const; + virtual void setDescription(const QString &desc); + + /** + * Determines whether TestContainer will delete its children upon + * destruction. By default, it will. + */ + void setDeleteChildren(const bool val); + + /** + * Removes the last appended child. + */ + void removeLast(); + + protected: + /** + * Constructor, protected. TestContainer is an abstract class, + * and is not ment to be instantiated, but sub classed. + */ + TestContainer(); + + private: + TreeItem::List m_children; + QString m_title; + QString m_description; + bool m_deleteChildren; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestGroup.cpp b/tests/auto/xmlpatternsxqts/lib/TestGroup.cpp new file mode 100644 index 0000000..060f993 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestGroup.cpp @@ -0,0 +1,180 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QColor> +#include <QPair> +#include <QVariant> + +#include "TestGroup.h" + +using namespace QPatternistSDK; + +TestGroup::TestGroup(TreeItem *p) : m_parent(p) +{ +} + +QVariant TestGroup::data(const Qt::ItemDataRole role, int column) const +{ + if(role != Qt::DisplayRole && role != Qt::BackgroundRole) + return QVariant(); + + /* In ResultSummary, the first is the amount of passes and the second is the total. */ + const ResultSummary sum(resultSummary()); + const int failures = sum.second - sum.first; + + switch(role) + { + case Qt::DisplayRole: + { + + switch(column) + { + case 0: + return title(); + case 1: + /* Passes. */ + return QString::number(sum.first); + case 2: + /* Failures. */ + return QString::number(failures); + case 3: + /* Total. */ + return QString::number(sum.second); + default: + { + Q_ASSERT(false); + return QString(); + } + } + } + case Qt::BackgroundRole: + { + switch(column) + { + case 1: + { + if(sum.first) + { + /* Pass. */ + return Qt::green; + } + else + return QVariant(); + } + case 2: + { + if(failures) + { + /* Failure. */ + return Qt::red; + } + else + return QVariant(); + } + default: + return QVariant(); + } + } + default: + { + Q_ASSERT_X(false, Q_FUNC_INFO, "This shouldn't be reached"); + return QVariant(); + } + } +} + +void TestGroup::setNote(const QString &n) +{ + m_note = n; +} + +QString TestGroup::note() const +{ + return m_note; +} + +TreeItem *TestGroup::parent() const +{ + return m_parent; +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestGroup.h b/tests/auto/xmlpatternsxqts/lib/TestGroup.h new file mode 100644 index 0000000..bfa9468 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestGroup.h @@ -0,0 +1,134 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_TestGroup_H +#define PatternistSDK_TestGroup_H + +#include <QString> + +#include "TestContainer.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + /** + * @short Groups test groups and test cases into a group. + * + * TestGroup corresponds to the @c test-group element in XQTSCatalog.xsd. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT TestGroup : public TestContainer + { + public: + TestGroup(TreeItem *parent); + + /** + * @returns the parent of this group. Is either another group, or + * the TestSuite instance governing this tree. + */ + virtual TreeItem *parent() const; + + virtual QVariant data(const Qt::ItemDataRole role, int column) const; + + QString note() const; + + void setName(const QString &name); + void setNote(const QString ¬e); + + private: + QString m_name; + QString m_note; + TreeItem *m_parent; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestItem.h b/tests/auto/xmlpatternsxqts/lib/TestItem.h new file mode 100644 index 0000000..ec373ab --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestItem.h @@ -0,0 +1,174 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_TestItem_H +#define PatternistSDK_TestItem_H + +#include "TestResult.h" +#include "TreeItem.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +template<typename A, typename B> struct QPair; + +namespace QPatternistSDK +{ + class XMLWriter; + class TestSuite; + + /** + * @short base class for all classes which + * represent an element in an XQuery Test Suite catalog. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT TestItem : public TreeItem + { + public: + + /** + * Determines how far an test case execution should go. + */ + enum ExecutionStage + { + /** + * The query will not be run. It will only go through the (whole) compilation stage. + */ + CompileOnly = 1, + + /** + * The query will be compiled and run, as ordinary. + */ + CompileAndRun + }; + + /** + * Represents a summary of test results for a collection + * of tests. QPair::first contains the amount of + * passed tests; QPair::second contains the count of + * all tests. For example TestCase::summary() returns + * ResultSummary(0, 1) or ResultSummary(1, 1) depending + * on whether the TestCase have succeeded or not. + */ + typedef QPair<int, int> ResultSummary; + + /** + * Executes the test case(s) this TestItem represents, + * and return the TestResult. For example, the TestGroup + * returns the result of its children concatenated, while + * TestCase always returns a list containing one + * TestResult(what it evaluated to). + */ + virtual TestResult::List execute(const ExecutionStage stage, + TestSuite *ts) = 0; + + /** + * @todo Rename this function. Perhaps create a type() hierarchy + * instead. + */ + virtual bool isFinalNode() const = 0; + + /** + * @returns a ResultSummary for this TestItem. + */ + virtual ResultSummary resultSummary() const = 0; + + /** + * Serializes into the corresponding elements attributes + * specified in XQTSCatalog.xsd. + * + * @note Sub-classes must assume the XQTSCatalog namespace + * is the default namespace, and not add any namespace declarations. + */ + //virtual void toXML(XMLWriter &receiver) const = 0; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestResult.cpp b/tests/auto/xmlpatternsxqts/lib/TestResult.cpp new file mode 100644 index 0000000..ae4fd07 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestResult.cpp @@ -0,0 +1,199 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QXmlAttributes> +#include <QtDebug> + +#include "qdebug_p.h" +#include "Global.h" +#include "XMLWriter.h" + +#include "TestResult.h" + +using namespace QPatternistSDK; +using namespace QPatternist; + +QString TestResult::displayName(const TestResult::Status stat) +{ + switch(stat) + { + case Pass: + return QLatin1String("pass"); + case Fail: + return QLatin1String("fail"); + case NotTested: + return QLatin1String("not tested"); + case Unknown: + Q_ASSERT(false); + } + + Q_ASSERT(false); + return QString(); +} + +TestResult::Status TestResult::statusFromString(const QString &string) +{ + if(string == QLatin1String("pass")) + return Pass; + else if(string == QLatin1String("fail")) + return Fail; + else if(string == QLatin1String("not tested")) + return NotTested; + else + { + Q_ASSERT(false); + return Fail; + } +} + +TestResult::TestResult(const QString &n, + const Status s, + ASTItem *tree, + const ErrorHandler::Message::List &ers, + const QPatternist::Item::List &itemsP, + const QString &serialized) : m_status(s), + m_messages(ers), + m_astTree(tree), + m_testName(n), + m_items(itemsP), + m_asSerialized(serialized) +{ + Q_ASSERT(!n.isEmpty()); + Q_ASSERT(s != 0); +} + +TestResult::~TestResult() +{ + delete m_astTree; +} + +void TestResult::toXML(XMLWriter &receiver) const +{ + QXmlAttributes atts; + atts.append(QLatin1String("name"), QString(), QLatin1String("name"), m_testName); + atts.append(QLatin1String("result"), QString(), QLatin1String("result"), displayName(m_status)); + + if(!m_comment.isEmpty()) + atts.append(QLatin1String("comment"), QString(), QLatin1String("comment"), m_comment); + + receiver.startElement(QLatin1String("test-case"), atts); + receiver.endElement(QLatin1String("test-case")); +} + +void TestResult::setComment(const QString &comm) +{ + m_comment = comm; +} + +TestResult::Status TestResult::status() const +{ + return m_status; +} + +QString TestResult::comment() const +{ + return m_comment; +} + +ASTItem *TestResult::astTree() const +{ + return m_astTree; +} + +ErrorHandler::Message::List TestResult::messages() const +{ + return m_messages; +} + +QPatternist::Item::List TestResult::items() const +{ + return m_items; +} + +QString TestResult::asSerialized() const +{ + pDebug() << "asSerialized: " << m_asSerialized; + return m_asSerialized; +} + +// vim: et:ts=4:sw=4:sts=4 + diff --git a/tests/auto/xmlpatternsxqts/lib/TestResult.h b/tests/auto/xmlpatternsxqts/lib/TestResult.h new file mode 100644 index 0000000..078f495 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestResult.h @@ -0,0 +1,220 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_TestResult_H +#define PatternistSDK_TestResult_H + +#include <QList> +#include <QObject> +#include <QPointer> +#include <QString> + +#include <QtXmlPatterns/private/qitem_p.h> +#include "ErrorHandler.h" + +#include "ASTItem.h" + + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + class ASTItem; + class XMLWriter; + + /** + * @short represents the result produced by running a test case. + * + * This information TestResult houses is: + * + * - The result status() of the run. Whether the test case succeeded or not, for example. + * - The astTree() which reflects the compiled test case + * - The messages issued when compiling and running the test case, retrievable via messages() + * - The data -- XPath Data Model items() -- the test case evaluated to, if any. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT TestResult : public QObject + { + Q_OBJECT + + public: + enum Status + { + /** + * Used when the status is unknown. + */ + Unknown = 0, + + /** + * The test case passed. + */ + Pass, + + /** + * The test case failed. + */ + Fail, + + /** + * The test was not run. Similar to "SKIP". + */ + NotTested + }; + + /** + * A list of TestResult instances. + */ + typedef QList<QPointer<TestResult> > List; + + /** + * Constructs a TestResult. + * + * @param testName the name of the test. For example, @c Literal-001. + * @param astTree may be @c null, signalling no AST being available, or point to one. + * @param status the result status of running the test-case. Whether the test-case + * passed or failed, and so forth. + * @param errors the errors and warnings that were reported while running the test-case + * @param items the XDM items that were outputted, if any + * @param serialized the output when serialized + */ + TestResult(const QString &testName, + const Status status, + ASTItem *astTree, + const ErrorHandler::Message::List &errors, + const QPatternist::Item::List &items, + const QString &serialized); + + virtual ~TestResult(); + + Status status() const; + + QString comment() const; + void setComment(const QString &comment); + + QPatternist::Item::List items() const; + + ErrorHandler::Message::List messages() const; + + /** + * Serializes itself to @p receiver, into a test-case element, + * as per @c XQTSResult.xsd. + */ + void toXML(XMLWriter &receiver) const; + + ASTItem *astTree() const; + + /** + * @returns a string representation for @p status, as per the anonymous + * type inside the type test-case, in @c XQTSResult.xsd. For example, if @p status + * is NotTested, is "not tested" returned. + */ + static QString displayName(const TestResult::Status status); + + static Status statusFromString(const QString &string); + + /** + * @returns the output of this test result(if any) as when + * being serialized. + */ + QString asSerialized() const; + + private: + const Status m_status; + QString m_comment; + const ErrorHandler::Message::List m_messages; + QPointer<ASTItem> m_astTree; + QString m_testName; + const QPatternist::Item::List m_items; + const QString m_asSerialized; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestResultHandler.cpp b/tests/auto/xmlpatternsxqts/lib/TestResultHandler.cpp new file mode 100644 index 0000000..1816dd8 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestResultHandler.cpp @@ -0,0 +1,139 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QtDebug> + +#include "Global.h" + +#include "TestResultHandler.h" + +using namespace QPatternistSDK; + +TestResultHandler::TestResultHandler() +{ + /* Fifteen thousand. When finished, we squeeze them. */ + m_result.reserve(15000); + m_comments.reserve(1000); /* Comments are only used for stuff that crash, more or less. */ +} + +bool TestResultHandler::startElement(const QString &namespaceURI, + const QString &localName, + const QString &, + const QXmlAttributes &atts) +{ + /* We only care about 'test-case', ignore everything else. */ + if(localName != QLatin1String("test-case") || + namespaceURI != Global::xqtsResultNS) + return true; + + /* The 'comments' attribute is optional. */ + Q_ASSERT_X(atts.count() == 2 || atts.count() == 3, Q_FUNC_INFO, + "The input appears to not conform to XQTSResult.xsd"); + + Q_ASSERT_X(!m_result.contains(atts.value(QLatin1String("name"))), + Q_FUNC_INFO, + qPrintable(QString::fromLatin1("A test result for test case %1 has " + "already been read(duplicate entry it seems).").arg(atts.value(QLatin1String("name"))))); + + m_result.insert(atts.value(0), TestResult::statusFromString(atts.value(QLatin1String("result")))); + + return true; +} + +bool TestResultHandler::endDocument() +{ + m_result.squeeze(); + m_comments.squeeze(); + return true; +} + +TestResultHandler::Hash TestResultHandler::result() const +{ + return m_result; +} + +TestResultHandler::CommentHash TestResultHandler::comments() const +{ + return m_comments; +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestResultHandler.h b/tests/auto/xmlpatternsxqts/lib/TestResultHandler.h new file mode 100644 index 0000000..d738c4c --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestResultHandler.h @@ -0,0 +1,156 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_TestResultHandler_H +#define PatternistSDK_TestResultHandler_H + +#include <QHash> +#include <QString> +#include <QtXml/QXmlDefaultHandler> + +#include "TestResult.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + /** + * @short Reads XML in the @c XQTSResult.xsd format, and provides access to + * the reported results. + * + * @author Frans Englich <fenglich@trolltech.com> + * @ingroup PatternistSDK + */ + class Q_PATTERNISTSDK_EXPORT TestResultHandler : public QXmlDefaultHandler + { + public: + /** + * A hash where the key is the class's name, that is <tt>test-case/@@name</tt>, + * and the value the test's result status. + */ + typedef QHash<QString, TestResult::Status> Hash; + + /** + * A hash mapping test-case names to their' comments. + */ + typedef QHash<QString, QString> CommentHash; + + /** + * Creates a TestResultHandler that will read @p file when run() is called. + */ + TestResultHandler(); + + /** + * Performs finalization. + */ + virtual bool endDocument(); + + /** + * Reads the <tt>test-case</tt> element and its attributes, everything else is ignored. + */ + virtual bool startElement(const QString &namespaceURI, + const QString &localName, + const QString &qName, + const QXmlAttributes &atts); + /** + * @note Do not reimplement this function. + * @returns the result obtained from reading the XML file. + */ + Hash result() const; + + CommentHash comments() const; + + private: + Q_DISABLE_COPY(TestResultHandler) + Hash m_result; + CommentHash m_comments; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestSuite.cpp b/tests/auto/xmlpatternsxqts/lib/TestSuite.cpp new file mode 100644 index 0000000..3bca281 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestSuite.cpp @@ -0,0 +1,302 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QFileInfo> +#include <QVariant> +#include <QXmlInputSource> +#include <QXmlSimpleReader> +#include <QtDebug> + +#include "Global.h" +#include "TestSuiteHandler.h" +#include "TestSuiteResult.h" +#include "XMLWriter.h" +#include "XSLTTestSuiteHandler.h" +#include "qdebug_p.h" + +#include "TestSuite.h" + +using namespace QPatternistSDK; +using namespace QPatternist; + +TestSuite::TestSuite() +{ +} + +QVariant TestSuite::data(const Qt::ItemDataRole role, int column) const +{ + if(role != Qt::DisplayRole) + return QVariant(); + + switch(column) + { + case 0: + return title(); + case 1: + return QString(); + default: + { + Q_ASSERT(false); + return QString(); + } + } +} + +TestSuiteResult *TestSuite::runSuite() +{ + const QDate date(QDate::currentDate()); + TestResult::List result(execute(CompileAndRun, this)); + + return new TestSuiteResult(version(), date, result); +} + +TestSuite *TestSuite::openCatalog(const QUrl &catalogURI, + QString &errorMsg, + const bool useExclusionList, + const bool isXSLTCatalog) +{ + pDebug() << "Opening catalog:" << catalogURI.toString(); + QFile ts(catalogURI.toLocalFile()); + Q_ASSERT(catalogURI.isValid()); + + if(!ts.exists()) + { + errorMsg = QString::fromLatin1("The test suite catalog \"%1\" could not be found.\n") + .arg(ts.fileName()); + return 0; + } + + const QFileInfo info(ts); + + if(!info.isReadable()) + { + errorMsg = QString::fromLatin1("Cannot read the test suite catalog.\n"); + return 0; + } + else if(!info.isFile()) + { + errorMsg = QString::fromLatin1("The specified test suite catalog \"%1\" is not a file. " + "The test suite catalog must be a file, it cannot be " + "a directory, for example.\n") + .arg(ts.fileName()); + return 0; + } + else if(!ts.open(QIODevice::ReadOnly | QIODevice::Text)) + { + errorMsg = QString::fromLatin1("Failed to open the test suite catalog, \"%1\".\n") + .arg(ts.fileName()); + return 0; + } + + return openCatalog(&ts, errorMsg, catalogURI, useExclusionList, isXSLTCatalog); +} + +TestSuite *TestSuite::openCatalog(QIODevice *input, + QString &errorMsg, + const QUrl &fileName, + const bool useExclusionList, + const bool isXSLTCatalog) +{ + Q_ASSERT(input); + + QXmlSimpleReader reader; + typedef QPatternist::AutoPtr<QXmlDefaultHandler> HandlerPtr; + + HandlerPtr loader; + + if(isXSLTCatalog) + loader = HandlerPtr(new XSLTTestSuiteHandler(fileName)); + else + loader = HandlerPtr(new TestSuiteHandler(fileName, useExclusionList)); + + reader.setContentHandler(loader.data()); + + QXmlInputSource source(input); + + if(!reader.parse(source)) + { + errorMsg = QString::fromLatin1("Couldn't parse %1").arg(fileName.toString()); + return 0; + } + + TestSuite *const suite = isXSLTCatalog ? static_cast<XSLTTestSuiteHandler *>(loader.data())->testSuite() + : static_cast<TestSuiteHandler *>(loader.data())->testSuite(); + + if(suite) + return suite; + + errorMsg = QString::fromLatin1("Failed to load \"%1\". " + "It appears to have no test-suite element.\n").arg(fileName.toString()); + return 0; +} + +void TestSuite::toXML(XMLWriter &receiver, TestCase *const tc) const +{ + // TODO startElement() endElement() calls can be simplified. + + Q_ASSERT(tc); + + receiver.startDocument(); + /* <test-suite> */ + QXmlAttributes test_suiteAtts; + test_suiteAtts.append(QLatin1String("CatalogDesignDate"), QString(), + QLatin1String("CatalogDesignDate"), m_designDate.toString(Qt::ISODate)); + test_suiteAtts.append(QLatin1String("version"), QString(), + QLatin1String("version"), m_version); + test_suiteAtts.append(QLatin1String("SourceOffsetPath"), QString(), + QLatin1String("SourceOffsetPath"), QString()); + test_suiteAtts.append(QLatin1String("ResultOffsetPath"), QString(), + QLatin1String("ResultOffsetPath"), QString()); + test_suiteAtts.append(QLatin1String("XQueryQueryOffsetPath"), QString(), + QLatin1String("XQueryQueryOffsetPath"), QString()); + test_suiteAtts.append(QLatin1String("QueryXQueryOffsetPath"), QString(), + QLatin1String("QueryXQueryOffsetPath"), QString()); + test_suiteAtts.append(QLatin1String("XQueryFileExtension"), QString(), + QLatin1String("XQueryFileExtension"), QString()); + test_suiteAtts.append(QLatin1String("XQueryXFileExtension"), QString(), + QLatin1String("XQueryXFileExtension"), QString()); + + receiver.startPrefixMapping(QString(), Global::xqtsCatalogNS); + receiver.startElement(QLatin1String("test-suite"), test_suiteAtts); + receiver.endPrefixMapping(QString()); + + /* <test-group> */ + QXmlAttributes test_groupAtts; + test_groupAtts.append(QLatin1String("GeneratedGroupByPatternistSDKRunSuite"), QString(), + QLatin1String("GeneratedGroupByPatternistSDKRunSuite"), QString()); + receiver.startElement(QLatin1String("test-group"), test_groupAtts); + + /* <GroupInfo> */ + receiver.startElement(QLatin1String("GroupInfo"), test_groupAtts); + + /* <title> */ + receiver.startElement(QLatin1String("title"), test_groupAtts); + receiver.characters(QLatin1String("Contains the test case generated by PatternistSDKRunSuite.")); + + /* </title> */ + receiver.endElement(QLatin1String("title")); + + /* <description> */ + receiver.startElement(QLatin1String("description"), test_groupAtts); + /* </description> */ + receiver.endElement(QLatin1String("description")); + + /* </GroupInfo> */ + receiver.endElement(QLatin1String("GroupInfo")); + + /* <test-case> */ + tc->toXML(receiver); + /* </test-case> */ + + /* </test-group> */ + receiver.endElement(QLatin1String("test-group")); + + /* </test-suite> */ + receiver.endElement(QLatin1String("test-suite")); +} + +QString TestSuite::version() const +{ + return m_version; +} + +QDate TestSuite::designDate() const +{ + return m_designDate; +} + +void TestSuite::setVersion(const QString &ver) +{ + m_version = ver; +} + +void TestSuite::setDesignDate(const QDate &date) +{ + m_designDate = date; +} + +TestContainer *TestSuite::parent() const +{ + return 0; +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestSuite.h b/tests/auto/xmlpatternsxqts/lib/TestSuite.h new file mode 100644 index 0000000..cdd511f --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestSuite.h @@ -0,0 +1,191 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_TestSuite_H +#define PatternistSDK_TestSuite_H + +#include <QDate> +#include <QString> + +#include "TestContainer.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +class QIODevice; +class QUrl; +class QVariant; + +namespace QPatternistSDK +{ + class TestCase; + class TestSuiteResult; + + /** + * @short Represents a test suite in the W3C XML Query Test Suite format. + * + * TestSuite contains the test suite's test cases and meta data. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT TestSuite : public TestContainer + { + public: + TestSuite(); + + virtual QVariant data(const Qt::ItemDataRole role, int column) const; + + /** + * The version of the catalog test suite. For example, "0.8.0". + */ + QString version() const; + + /** + * When the catalog was designed, last modified. + */ + QDate designDate() const; + + void setVersion(const QString &version); + void setDesignDate(const QDate &version); + + /** + * @return always @c null + */ + virtual TestContainer *parent() const; + + /** + * Creates and returns a pointer to a TestSuite instance, which + * was instantiated from the XQuery Test Suite catalog file @p catalogFile. + * + * If loading went wrong, @c null is returned and @p errorMsg is set with a + * human readable message string. However, @p catalogFile is not validated; + * if the XML file is not valid against the XQTS task force's W3C XML Schema, the + * behavior and result for this function is undefined. + * + * This function blocks. Currently is only local files supported. + */ + static TestSuite *openCatalog(const QUrl &catalogFile, + QString &errorMsg, + const bool useExclusionList, + const bool isXSLTCatalog = false); + + void toXML(XMLWriter &receiver, TestCase *const tc) const; + + /** + * Evaluates all the test cases in this TestSuite, and returns + * it all in a TestSuiteResult. + */ + TestSuiteResult *runSuite(); + + private: + /** + * Essentially similar to open(const QUrl &, QString &errorMsg), + * with the difference that it takes directly a QIODevice as input, + * as opposed to a file name locating the catalog file to read. + * + * @param input the test suite catalog + * @param fileName this URI is used for resolving relative paths inside + * the catalog file into absolute. + * @param errorMsg if an error occurs, this QString is set to contain the message. + * Whether an error occurred can therefore be determined by checking if this variable + * still is @c null after the call + * @param useExclusionList whether the excludeTestGroups.txt file should be used + * to exclude test groups for this catalog + */ + static TestSuite *openCatalog(QIODevice *input, + QString &errorMsg, + const QUrl &fileName, + const bool useExclusionList, + const bool isXSLTCatalog); + QString m_version; + QDate m_designDate; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestSuiteHandler.cpp b/tests/auto/xmlpatternsxqts/lib/TestSuiteHandler.cpp new file mode 100644 index 0000000..a87eeaa --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestSuiteHandler.cpp @@ -0,0 +1,353 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QtDebug> + +#include "qacceltreeresourceloader_p.h" +#include "qnetworkaccessdelegator_p.h" + +#include "Global.h" +#include "TestBaseLine.h" +#include "TestGroup.h" + +#include "TestSuiteHandler.h" + +using namespace QPatternistSDK; + +QNetworkAccessManager s_networkManager; + +TestSuiteHandler::TestSuiteHandler(const QUrl &catalogFile, + const bool useEList) : m_ts(0) + , m_container(0) + , m_tc(0) + , m_baseLine(0) + , m_catalogFile(catalogFile) + , m_exclusionList(readExclusionList(useEList)) + , m_isExcluding(false) +{ + Q_ASSERT(!m_catalogFile.isRelative()); +} + +QStringList TestSuiteHandler::readExclusionList(const bool useExclusionList) const +{ + if(!useExclusionList) + return QStringList(); + + QStringList avoid; + + /* These test groups are for features we don't support. + * + * Originally these were stored in a text file pulled in with Qt resources, but + * it was not possible to get it to link on some HP-UX and Intel-icc platforms. */ + + avoid << "SchemaImport"; // The schema import feature + avoid << "SchemaValidation"; // The validate expression(requires schema import) + avoid << "StaticTyping"; // Pessimistic static typing checking + avoid << "TrivialEmbedding"; // XQueryX inside XQuery + avoid << "XMark"; // We're currently too buggy for running these tests. + + return avoid; +} + +bool TestSuiteHandler::startElement(const QString &namespaceURI, + const QString &localName, + const QString &/*qName*/, + const QXmlAttributes &atts) +{ + if(namespaceURI != Global::xqtsCatalogNS) + return true; + else if(m_isExcluding) + { + if(localName == QLatin1String("test-group")) + { + m_testGroupName.push(atts.value(QLatin1String("name"))); + return true; + } + else + return true; + } + + /* The elements are handled roughly in the order of highest occurrence in the catalog file. */ + if(localName == QLatin1String("test-case")) + { + XQTSTestCase *const c = new XQTSTestCase( + TestCase::scenarioFromString(atts.value(QLatin1String("scenario"))), m_container); + + c->setName(atts.value(QLatin1String("name"))); + c->setCreator(atts.value(QLatin1String("Creator"))); + c->setIsXPath(Global::readBoolean(atts.value(QLatin1String("is-XPath2")))); + c->setLastModified(QDate::fromString(atts.value(QLatin1String("version-drop")), Qt::ISODate)); + Q_ASSERT(c->lastModified().isNull() || c->lastModified().isValid()); + + m_currentQueryPath = m_queryOffset.resolved(QUrl(atts.value(QLatin1String("FilePath")))); + m_currentBaselinePath = m_baselineOffset.resolved(QUrl(atts.value(QLatin1String("FilePath")))); + + m_container->appendChild(c); + m_tc = c; + } + else if(localName == QLatin1String("query")) + { + m_tc->setQueryPath(m_currentQueryPath.resolved(atts.value(QLatin1String("name")) + + m_xqueryFileExtension)); + } + else if(localName == QLatin1String("input-file") || + localName == QLatin1String("input-URI")) + { + m_currentInputVariable = atts.value(QLatin1String("variable")); + } + else if(localName == QLatin1String("output-file")) + { + m_baseLine = new TestBaseLine(TestBaseLine::identifierFromString(atts.value(QLatin1String("compare")))); + } + else if(localName == QLatin1String("expected-error")) + { + m_baseLine = new TestBaseLine(TestBaseLine::ExpectedError); + } + else if(localName == QLatin1String("test-group")) + { + m_testGroupName.push(atts.value(QLatin1String("name"))); + + if(m_exclusionList.contains(m_testGroupName.top())) + { + /* Ok, this group is supposed to be excluded, we don't + * insert it into the tree. */ + m_isExcluding = true; + return true; + } + else + { + Q_ASSERT(m_container); + TestGroup *const newGroup = new TestGroup(m_container); + m_container->appendChild(newGroup); + m_container = newGroup; + } + } + else if(localName == QLatin1String("source")) + { + m_sourceMap.insert(atts.value(QLatin1String("ID")), + m_sourceOffset.resolved(QUrl(atts.value(QLatin1String("FileName"))))); + } + else if(localName == QLatin1String("test-suite")) + { + m_ts = new TestSuite(); + m_ts->setVersion(atts.value(QLatin1String("version"))); + m_ts->setDesignDate(QDate::fromString(atts.value(QLatin1String("CatalogDesignDate")), Qt::ISODate)); + Q_ASSERT(m_ts->designDate().isValid()); + m_container = m_ts; + + m_xqueryFileExtension = atts.value(QLatin1String("XQueryFileExtension")); + m_queryOffset = m_catalogFile.resolved(atts.value(QLatin1String("XQueryQueryOffsetPath"))); + m_baselineOffset = m_catalogFile.resolved(atts.value(QLatin1String("ResultOffsetPath"))); + m_sourceOffset = m_catalogFile.resolved(atts.value(QLatin1String("SourceOffsetPath"))); + } + else if(localName == QLatin1String("input-query")) + { + m_tcSourceInputs.insert(atts.value(QLatin1String("variable")), + ExternalSourceLoader::VariableValue(m_currentQueryPath.resolved(atts.value(QLatin1String("name")) + m_xqueryFileExtension), + ExternalSourceLoader::Query)); + } + + return true; +} + +bool TestSuiteHandler::endElement(const QString &namespaceURI, + const QString &localName, + const QString &/*qName*/) +{ + if(namespaceURI != Global::xqtsCatalogNS) + return true; + + if(m_isExcluding) + { + if(localName == QLatin1String("test-group")) + { + const QString myName(m_testGroupName.pop()); + + if(m_exclusionList.contains(myName)) + { + /* This test-group is being excluded and now we're exiting from it. */ + m_isExcluding = false; + } + } + + return true; + } + + /* The elements are handled roughly in the order of highest occurrence in the catalog file. */ + if(localName == QLatin1String("description")) + { + if(m_tc) + { + /* We're inside a <test-case>, so the <description> belongs + * to the test-case. */ + m_tc->setDescription(m_ch.simplified()); + } + else + m_container->setDescription(m_ch.simplified()); + } + else if(localName == QLatin1String("test-case")) + { + Q_ASSERT(m_tc->baseLines().count() >= 1); + Q_ASSERT(m_resourceLoader); + m_tc->setExternalVariableLoader(QPatternist::ExternalVariableLoader::Ptr + (new ExternalSourceLoader(m_tcSourceInputs, + m_resourceLoader))); + m_tcSourceInputs.clear(); + + if(!m_contextItemSource.isEmpty()) + { + m_tc->setContextItemSource(QUrl(m_sourceMap.value(m_contextItemSource))); + m_contextItemSource.clear(); + } + + m_tc = 0; + } + else if(localName == QLatin1String("output-file")) + { + m_baseLine->setDetails(m_currentBaselinePath.resolved(m_ch).toString()); + m_tc->addBaseLine(m_baseLine); + } + else if(localName == QLatin1String("input-file")) + { + m_tcSourceInputs.insert(m_currentInputVariable, ExternalSourceLoader::VariableValue(m_sourceMap.value(m_ch), + ExternalSourceLoader::Document)); + } + else if(localName == QLatin1String("expected-error")) + { + m_baseLine->setDetails(m_ch); + m_tc->addBaseLine(m_baseLine); + } + else if(localName == QLatin1String("title")) + { + /* A bit dangerous, the only element with name title in the vocabulary + * is the the child of GroupInfo */ + m_container->setTitle(m_ch.simplified()); + } + else if(localName == QLatin1String("test-group")) + { + m_testGroupName.pop(); + Q_ASSERT(m_container); + m_container = static_cast<TestContainer *>(m_container->parent()); + Q_ASSERT(m_container); + } + else if(localName == QLatin1String("test-suite")) + { + Q_ASSERT(m_container); + m_container = static_cast<TestContainer *>(m_container->parent()); + } + else if(localName == QLatin1String("sources")) + { + const QPatternist::NetworkAccessDelegator::Ptr networkDelegator(new QPatternist::NetworkAccessDelegator(&s_networkManager, &s_networkManager)); + + m_resourceLoader = QPatternist::ResourceLoader::Ptr(new QPatternist::AccelTreeResourceLoader(Global::namePool(), + networkDelegator)); + + const ExternalSourceLoader::SourceMap::const_iterator end(m_sourceMap.constEnd()); + ExternalSourceLoader::SourceMap::const_iterator it(m_sourceMap.constBegin()); + + for(; it != end; ++it) + m_resourceLoader->announceDocument(it.value(), QPatternist::ResourceLoader::WillUse); + } + else if(localName == QLatin1String("input-URI")) + { + m_tcSourceInputs.insert(m_currentInputVariable, ExternalSourceLoader::VariableValue(m_sourceMap.value(m_ch), + ExternalSourceLoader::URI)); + } + else if(localName == QLatin1String("contextItem")) + m_contextItemSource = m_ch; + + return true; +} + +bool TestSuiteHandler::characters(const QString &ch) +{ + m_ch = ch; + return true; +} + +TestSuite *TestSuiteHandler::testSuite() const +{ + return m_ts; +} + +// vim: et:ts=4:sw=4:sts=4 + diff --git a/tests/auto/xmlpatternsxqts/lib/TestSuiteHandler.h b/tests/auto/xmlpatternsxqts/lib/TestSuiteHandler.h new file mode 100644 index 0000000..dff56e5 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestSuiteHandler.h @@ -0,0 +1,210 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_TestSuiteHandler_H +#define PatternistSDK_TestSuiteHandler_H + +#include <QStack> +#include <QUrl> +#include <QXmlDefaultHandler> + +#include "ExternalSourceLoader.h" +#include "TestSuite.h" +#include "XQTSTestCase.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + class TestBaseLine; + + /** + * @short Creates a TestSuite from the XQuery Test Suite catalog, + * represented as a SAX stream. + * + * The created TestSuite can be retrieved via testSuite(). + * + * @note TestSuiteHandler assumes the XML is valid by having been validated + * against the W3C XML Schema. It have no safety checks for that the XML format + * is correct but is hard coded for it. Thus, the behavior is undefined if + * the XML is invalid. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT TestSuiteHandler : public QXmlDefaultHandler + { + public: + /** + * @param catalogFile the URI for the catalog file being parsed. This + * URI is used for creating absolute URIs for files mentioned in + * the catalog with relative URIs. + * @param useExclusionList whether excludeTestGroups.txt should be used to ignore + * test groups when loading + */ + TestSuiteHandler(const QUrl &catalogFile, + const bool useExclusionList); + virtual bool characters(const QString &ch); + + virtual bool endElement(const QString &namespaceURI, + const QString &localName, + const QString &qName); + virtual bool startElement(const QString &namespaceURI, + const QString &localName, + const QString &qName, + const QXmlAttributes &atts); + + virtual TestSuite *testSuite() const; + + private: + QStringList readExclusionList(const bool useExclusionList) const; + + TestSuite * m_ts; + TestContainer * m_container; + XQTSTestCase * m_tc; + TestBaseLine * m_baseLine; + QString m_ch; + const QUrl m_catalogFile; + + /** + * The extension of XQuery files. For example, ".xq" + */ + QString m_xqueryFileExtension; + + /** + * The base URI for where the XQuery query files are found. + * It is absolute, resolved against catalogFile. + */ + QUrl m_queryOffset; + + QUrl m_baselineOffset; + QUrl m_sourceOffset; + QUrl m_currentQueryPath; + QUrl m_currentBaselinePath; + + /** + * In the XQTSCatalog.xml, each source file in each test is referred to + * by a key, which can be fully looked up in the @c sources element. This QHash + * maps the keys to absolute URIs pointing to the source files. + */ + ExternalSourceLoader::SourceMap m_sourceMap; + + ExternalSourceLoader::VariableMap m_tcSourceInputs; + + QPatternist::ResourceLoader::Ptr m_resourceLoader; + + /** + * The current value of <tt>input-file/\@variable/</tt>. + */ + QString m_currentInputVariable; + + /** + * The names of the test groups we're excluding. + */ + const QStringList m_exclusionList; + + /** + * This is set when we're inside a test-group that we're excluding. + */ + bool m_isExcluding; + + /** + * The names of the test groups. + */ + QStack<QString> m_testGroupName; + + /** + * Holds the content of the current <tt>input-URI</tt> element. + */ + QString m_inputURI; + QString m_contextItemSource; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TestSuiteResult.cpp b/tests/auto/xmlpatternsxqts/lib/TestSuiteResult.cpp new file mode 100644 index 0000000..c88af5c --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestSuiteResult.cpp @@ -0,0 +1,214 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QXmlContentHandler> + +#include "Global.h" +#include "XMLWriter.h" + +#include "TestSuiteResult.h" + +using namespace QPatternistSDK; + +TestSuiteResult::TestSuiteResult(const QString &testSuiteVersion, + const QDate &runDate, + const TestResult::List &results) : m_testSuiteVersion(testSuiteVersion), + m_runDate(runDate), + m_results(results) +{ +} + +TestSuiteResult::~TestSuiteResult() +{ + qDeleteAll(m_results); +} + +void TestSuiteResult::toXML(XMLWriter &receiver) const +{ + /* If this data needs to be configurable in someway(say, another + * XML format is supported), then break out the info into getters(alternatively, combined + * with setters, or that the class is subclassed), and access the getters instead. + */ + const QString organizationName (QLatin1String("K Desktop Environment(KDE)")); + const QString organizationWebsite (QLatin1String("http://www.kde.org/")); + const QString submittorName (QLatin1String("Frans Englich")); + const QString submittorEmail (QLatin1String("fenglich@trolltech.com")); + const QString implementationVersion (QLatin1String("0.1")); + const QString implementationName (QLatin1String("Patternist")); + const QString implementationDescription (QLatin1String( + "Patternist is an implementation written in C++ " + "and with the Qt/KDE libraries. " + "It is licensed under GNU LGPL and part of KDE, " + "the K Desktop Environment.")); + + /* Not currently serialized: + * - <implementation-defined-items> + * - <features> + * - <context-properties> + */ + + receiver.startDocument(); + /* <test-suite-result> */ + receiver.startPrefixMapping(QString(), Global::xqtsResultNS); + receiver.startElement(QLatin1String("test-suite-result")); + receiver.endPrefixMapping(QString()); + + /* <implementation> */ + QXmlAttributes implementationAtts; + implementationAtts.append(QLatin1String("name"), QString(), + QLatin1String("name"), implementationName); + implementationAtts.append(QLatin1String("version"), QString(), + QLatin1String("version"), implementationVersion); + receiver.startElement(QLatin1String("implementation"), implementationAtts); + + /* <organization> */ + QXmlAttributes organizationAtts; + organizationAtts.append(QLatin1String("name"), QString(), + QLatin1String("name"), organizationName); + organizationAtts.append(QLatin1String("website"), QString(), + QLatin1String("website"), organizationWebsite); + receiver.startElement(QLatin1String("organization"), organizationAtts); + + /* </organization> */ + receiver.endElement(QLatin1String("organization")); + + /* <submittor> */ + QXmlAttributes submittorAtts; + submittorAtts.append(QLatin1String("name"), QString(), QLatin1String("name"), submittorName); + submittorAtts.append(QLatin1String("email"), QString(), QLatin1String("email"), submittorEmail); + receiver.startElement(QLatin1String("submittor"), submittorAtts); + + /* </submittor> */ + receiver.endElement(QLatin1String("submittor")); + + /* <description> */ + receiver.startElement(QLatin1String("description")); + + /* <p> */ + receiver.startElement(QLatin1String("p")); + receiver.characters(implementationDescription); + + /* </p> */ + receiver.endElement(QLatin1String("p")); + /* </description> */ + receiver.endElement(QLatin1String("description")); + + /* </implementation> */ + receiver.endElement(QLatin1String("implementation")); + + /* <syntax> */ + receiver.startElement(QLatin1String("syntax")); + receiver.characters(QLatin1String(QLatin1String("XQuery"))); + + /* </syntax> */ + receiver.endElement(QLatin1String("syntax")); + + /* <test-run> */ + QXmlAttributes test_runAtts; + test_runAtts.append(QLatin1String("dateRun"), QString(), QLatin1String("dateRun"), m_runDate.toString(QLatin1String("yyyy-MM-dd"))); + receiver.startElement(QLatin1String("test-run"), test_runAtts); + + /* <test-suite> */ + QXmlAttributes test_suiteAtts; + test_suiteAtts.append(QLatin1String("version"), QString(), QLatin1String("version"), m_testSuiteVersion); + receiver.startElement(QLatin1String("test-suite"), test_suiteAtts); + + /* </test-suite> */ + receiver.endElement(QLatin1String("test-suite")); + + /* </test-run> */ + receiver.endElement(QLatin1String("test-run")); + + /* Serialize the TestResults: tons of test-case elements. */ + const TestResult::List::const_iterator end(m_results.constEnd()); + TestResult::List::const_iterator it(m_results.constBegin()); + + for(; it != end; ++it) + (*it)->toXML(receiver); + + /* </test-suite-result> */ + receiver.endElement(QLatin1String("test-suite-result")); + receiver.endDocument(); +} + +// vim: et:ts=4:sw=4:sts=4 + diff --git a/tests/auto/xmlpatternsxqts/lib/TestSuiteResult.h b/tests/auto/xmlpatternsxqts/lib/TestSuiteResult.h new file mode 100644 index 0000000..f859bfd --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TestSuiteResult.h @@ -0,0 +1,134 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_TestSuiteResult_H +#define PatternistSDK_TestSuiteResult_H + +#include <QDate> +#include <QString> + +#include "TestResult.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + /** + * @short A collection of TestResult instances. + * + * A TestSuiteResult gathers all TestResult instances, and provides + * the toXML() function which serializes it all into a XQuery Test Suite + * result file, conforming to XQTSResult.xsd. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT TestSuiteResult + { + public: + ~TestSuiteResult(); + + TestSuiteResult(const QString &testSuiteVersion, + const QDate &runDate, + const TestResult::List &results); + + /** + * Serializes the test results this TestSuiteResult represents, + * into XQTS test-suite-result document, conformant to XQTSCatalog.xsd. + */ + void toXML(XMLWriter &receiver) const; + + private: + const QString m_testSuiteVersion; + const QDate m_runDate; + const TestResult::List m_results; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TreeItem.cpp b/tests/auto/xmlpatternsxqts/lib/TreeItem.cpp new file mode 100644 index 0000000..2c5c82f --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TreeItem.cpp @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include "TestContainer.h" + +#include "TreeItem.h" + +using namespace QPatternistSDK; + +int TreeItem::row() const +{ + const TreeItem *const p = parent(); + + if(p) + { + /* The const_cast makes it possible for QPointer's constructor + * to implicitly kick in. */ + return p->children().indexOf(const_cast<TreeItem *>(this)); + } + else + return -1; +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TreeItem.h b/tests/auto/xmlpatternsxqts/lib/TreeItem.h new file mode 100644 index 0000000..318c123 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TreeItem.h @@ -0,0 +1,155 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_TreeItem_H +#define PatternistSDK_TreeItem_H + +#include <QObject> + +#include "Global.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +class QVariant; +template<typename T> class QList; +template<typename T> class QPointer; + +namespace QPatternistSDK +{ + /** + * @short TreeItem is a node in a hierachial structure and is used together + * with TreeModel. + * + * TreeItem is abstract base class. Instances of sub-classes of TreeItem + * can be used with TreeModel in order to use hierarchial data in Qt's + * model/view framework. + * + * TreeItem is a QObject in order to be able to be used with QPointer. + * + * @author Frans Englich <fenglich@trolltech.com> + * @see TreeModel + * @ingroup PatternistSDK + */ + class Q_PATTERNISTSDK_EXPORT TreeItem : public QObject + { + Q_OBJECT + public: + typedef QList<QPointer<TreeItem> > List; + + virtual ~TreeItem() {} + virtual void appendChild(TreeItem *item) = 0; + virtual TreeItem *child(const unsigned int row) const = 0; + virtual unsigned int childCount() const = 0; + virtual TreeItem *parent() const = 0; + + virtual TreeItem::List children() const = 0; + virtual int columnCount() const = 0; + + /** + * Determines the position among the children of + * this TreeItem's parent. This is done by introspecting the result + * of children(). + */ + int row() const; + + virtual QVariant data(const Qt::ItemDataRole role, int column) const = 0; + + Q_SIGNALS: + /** + * Emitted whenever this item changed. This is used for keeping + * views in synchronization with the item model which houses + * this item. + * + * @param item the item which changed. That is, this TreeItem. + */ + void changed(TreeItem *item); + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TreeModel.cpp b/tests/auto/xmlpatternsxqts/lib/TreeModel.cpp new file mode 100644 index 0000000..d9ba200 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TreeModel.cpp @@ -0,0 +1,220 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QtDebug> + +#include "TestContainer.h" + +#include "TreeModel.h" + +using namespace QPatternistSDK; + +TreeModel::TreeModel(const QStringList columnData, + QObject *p) : QAbstractItemModel(p), + m_root(0), + m_columnData(columnData) +{ +} + +TreeModel::~TreeModel() +{ +} + +QVariant TreeModel::data(const QModelIndex &idx, int role) const +{ + if(!idx.isValid()) + return QVariant(); + + TreeItem *item = static_cast<TreeItem *>(idx.internalPointer()); + Q_ASSERT(item); + + return item->data(static_cast<Qt::ItemDataRole>(role), idx.column()); +} + +QVariant TreeModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if(orientation == Qt::Horizontal && role == Qt::DisplayRole) + return m_columnData.value(section); + + return QVariant(); +} + +void TreeModel::childChanged(TreeItem *) +{ + layoutChanged(); +} + +QModelIndex TreeModel::index(int row, int column, const QModelIndex &p) const +{ + const int c = columnCount(p); + + if(row < 0 || column < 0 || column >= c) + return QModelIndex(); + + TreeItem *parentItem; + + if(p.isValid()) + parentItem = static_cast<TreeItem *>(p.internalPointer()); + else + parentItem = m_root; + + if(!parentItem) + return QModelIndex(); + + TreeItem *childItem = parentItem->child(row); + + if(childItem) + return createIndex(row, column, childItem); + else + return QModelIndex(); +} + +QModelIndex TreeModel::parent(const QModelIndex &idx) const +{ + if(!idx.isValid()) + return QModelIndex(); + + TreeItem *childItem = static_cast<TreeItem *>(idx.internalPointer()); + Q_ASSERT(childItem); + TreeItem *parentItem = childItem->parent(); + + if(!parentItem || parentItem == m_root) + return QModelIndex(); + + Q_ASSERT(parentItem); + return createIndex(parentItem->row(), 0, parentItem); +} + +Qt::ItemFlags TreeModel::flags(const QModelIndex &idx) const +{ + /* Not sure about this code. */ + if(!idx.isValid()) + return Qt::ItemFlags(); + + return Qt::ItemIsEnabled | Qt::ItemIsSelectable; +} + +int TreeModel::rowCount(const QModelIndex &p) const +{ + if(p.column() > 0) + return 0; + + const TreeItem *parentItem; + + if(p.isValid()) + parentItem = static_cast<TreeItem *>(p.internalPointer()); + else + { + if(m_root) + parentItem = m_root; + else + return 0; + } + + return parentItem->childCount(); +} + +int TreeModel::columnCount(const QModelIndex &p) const +{ + if(p.isValid()) + return static_cast<TreeItem *>(p.internalPointer())->columnCount(); + else + return m_columnData.count(); +} + +TreeItem *TreeModel::root() const +{ + return m_root; +} + +void TreeModel::setRoot(TreeItem *r) +{ + TreeItem *const oldRoot = m_root; + m_root = r; + + if(m_root) + connect(r, SIGNAL(changed(TreeItem *)), SLOT(childChanged(TreeItem *))); + reset(); /* Notify views that we have radically changed. */ + delete oldRoot; +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/TreeModel.h b/tests/auto/xmlpatternsxqts/lib/TreeModel.h new file mode 100644 index 0000000..a85b06b --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/TreeModel.h @@ -0,0 +1,151 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_TreeModel_H +#define PatternistSDK_TreeModel_H + +#include <QAbstractItemModel> +#include <QObject> +#include <QPointer> +#include <QStringList> + +#include "Global.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + class TreeItem; + + /** + * @short TreeItem is a generic QAbstractItemModel tailored for + * representing hierarchial data. + * + * TreeModel is an item model in Qt's model/view framework. Its + * data consists of TreeItem instances. + * + * @see TreeItem + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT TreeModel : public QAbstractItemModel + { + Q_OBJECT + public: + TreeModel(const QStringList columnData, QObject *parent); + virtual ~TreeModel(); + + virtual QVariant data(const QModelIndex &index, int role) const; + virtual Qt::ItemFlags flags(const QModelIndex &index) const; + virtual QVariant headerData(int section, + Qt::Orientation orientation, + int role = Qt::DisplayRole) const; + virtual QModelIndex index(int row, + int column, + const QModelIndex &parent = QModelIndex()) const; + virtual QModelIndex parent(const QModelIndex &index) const; + virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; + virtual int columnCount(const QModelIndex &parent = QModelIndex()) const; + + TreeItem *root() const; + /** + * Sets @p root to the new root, and deletes the old. + */ + void setRoot(TreeItem *root); + + protected Q_SLOTS: + void childChanged(TreeItem *child); + + private: + QPointer<TreeItem> m_root; + const QStringList m_columnData; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/Worker.cpp b/tests/auto/xmlpatternsxqts/lib/Worker.cpp new file mode 100644 index 0000000..9fd7b1d --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/Worker.cpp @@ -0,0 +1,299 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QDir> +#include <QEventLoop> +#include <QPair> +#include <QtDebug> + +#include "ExitCode.h" + +#include "Worker.h" + +using namespace QPatternistSDK; + +const char *const Worker::m_indent = " "; + +Worker::Worker(QEventLoop &ev, + const QFileInfo &baseline, + const QFileInfo &result) : m_finishedCount(0) + , m_baselineFile(baseline) + , m_resultFile(result) + , m_eventLoop(ev) +{ +} + +void Worker::list(QTextStream &out, const QString &msg, QStringList &list) +{ + Q_ASSERT(!msg.isEmpty()); + + if(list.isEmpty()) + return; + + list.sort(); /* Make it pretty, and easy to read. */ + + out << msg << ":\n"; + + const QStringList::const_iterator end(list.constEnd()); + QStringList::const_iterator it(list.constBegin()); + + for(; it != end; ++it) + out << m_indent << qPrintable(*it) << '\n'; +} + +static inline int count(const ResultThreader::Hash &list, const TestResult::Status stat) +{ + const ResultThreader::Hash::const_iterator end(list.constEnd()); + ResultThreader::Hash::const_iterator it(list.constBegin()); + int result = 0; + + for(; it != end; ++it) + { + if(it.value() == stat) + ++result; + } + + return result; +} + +void Worker::threadFinished() +{ + ++m_finishedCount; + Q_ASSERT(m_finishedCount == 1 || m_finishedCount == 2); + + const ResultThreader *const handler = static_cast<ResultThreader *>(sender()); + Q_ASSERT(handler); + + switch(handler->type()) + { + case ResultThreader::Baseline: + { + m_baseline = handler->result(); + break; + } + case ResultThreader::Result: + m_result = handler->result(); + } + + if(m_finishedCount == 1) /* One thread's missing. */ + return; + + /* Ok, both threads have now finished, and we got their results in m_result and m_baseline. */ + + /* No matter how this function exits, we want to delete this Worker. */ + deleteLater(); + + ResultThreader::Hash::const_iterator itA(m_result.constBegin()); + ResultThreader::Hash::const_iterator itB(m_baseline.constBegin()); + const ResultThreader::Hash::const_iterator endA(m_result.constEnd()); + const ResultThreader::Hash::const_iterator endB(m_baseline.constEnd()); + const int baselineCount = m_baseline.count(); + const int resultCount = m_result.count(); + + /* If you want useful output, change the QTextStream to use stderr. */ + //QTextStream err(stderr); + QByteArray out; + QTextStream err(&out); + + if(resultCount < baselineCount) + { + err << qPrintable(QString(QLatin1String("WARNING: Test result contains %1 reports, " + "but the baseline contains %2, a DECREASE " + "of %3 tests.\n")) + .arg(resultCount) + .arg(baselineCount) + .arg(resultCount - baselineCount)); + } + else if(resultCount > baselineCount) + { + err << qPrintable(QString(QLatin1String("NOTE: The number of tests run is more than what " + "the baseline specifies. Run was %1 test cases, the " + "baseline specifies %2; an increase of %3 tests.\n")) + .arg(resultCount) + .arg(baselineCount) + .arg(resultCount - baselineCount)); + } + + for(; itA != endA; ++itA) + { + const TestResult::Status result = itA.value(); + const TestResult::Status baseline = m_baseline.value(itA.key()); + + if(result == baseline) /* We have no change. */ + { + if(result == TestResult::NotTested) + m_notTested.append(itA.key()); + else + continue; + } + else if(baseline == TestResult::Pass && result == TestResult::Fail) + m_unexpectedFailures.append(itA.key()); + else if(baseline == TestResult::Fail && result == TestResult::Pass) + m_unexpectedPasses.append(itA.key()); + } + + list(err, QLatin1String("Not tested"), m_notTested); + list(err, QLatin1String("Unexpected failures"), m_unexpectedFailures); + list(err, QLatin1String("Unexpected passes"), m_unexpectedPasses); + + err << "SUMMARY:\n"; + typedef QPair<QString, int> Info; + typedef QList<Info> InfoList; + InfoList info; + + const int totFail = count(m_result, TestResult::Fail); + const int totPass = count(m_result, TestResult::Pass); + const int total = resultCount; + const int notTested = m_notTested.count(); + const int percentage = int((static_cast<double>(totPass) / total) * 100); + + Q_ASSERT_X(percentage >= 0 && percentage <= 100, Q_FUNC_INFO, + qPrintable(QString(QLatin1String("Percentage was: %1")).arg(percentage))); + + info.append(Info(QLatin1String("Total"), total)); + info.append(Info(QLatin1String("Failures"), totFail)); + info.append(Info(QLatin1String("Passes"), totPass)); + info.append(Info(QLatin1String("Not tested"), notTested)); + info.append(Info(QLatin1String("Pass percentage(%)"), percentage)); + info.append(Info(QLatin1String("Unexpected failures"), m_unexpectedFailures.count())); + info.append(Info(QLatin1String("Unexpected passes"), m_unexpectedPasses.count())); + + const InfoList::const_iterator end(info.constEnd()); + InfoList::const_iterator it(info.constBegin()); + + /* List the statistics nicely in a row with padded columns. */ + for(; it != end; ++it) + { + const QString result((((*it).first) + QLatin1Char(':')).leftJustified(22, QLatin1Char(' '))); + err << m_indent << qPrintable(result) << (*it).second << '\n'; + } + + if(!m_unexpectedFailures.isEmpty()) + { + err << "FAILURE: Regressions discovered, baseline was not updated.\n"; + err.flush(); + QTextStream(stderr) << out; + m_eventLoop.exit(ExitCode::Regression); + return; + } + else if(m_unexpectedPasses.isEmpty() && baselineCount == resultCount) + { + err << "Result was identical to the baseline, baseline was not updated.\n"; + m_eventLoop.exit(ExitCode::Success); + return; + } + + /* Ok, we got unexpected successes and no regressions: let's update the baseline. */ + + QFile resultFile(m_resultFile.absoluteFilePath()); + + /* Remove the old file, otherwise QFile::copy() will fail. */ + QDir baselineDir(m_baselineFile.absolutePath()); + baselineDir.remove(m_baselineFile.fileName()); + + if(resultFile.copy(m_baselineFile.absoluteFilePath())) + { + /* Give a detailed message of what's going on. */ + if(resultCount > baselineCount) + err << "More tests was run than specified in the baseline, updating the baseline.\n"; + else + err << "Improvement, the baseline was updated.\n"; + + /* We actually flag this as an error, because the new baseline must be submitted. */ + err.flush(); + QTextStream(stderr) << out; + m_eventLoop.exit(ExitCode::Regression); + return; + } + else + { + err << qPrintable(QString(QLatin1String("Encountered error when updating " + "the baseline: %1\n")) + .arg(resultFile.errorString())); + err.flush(); + QTextStream(stderr) << out; + m_eventLoop.exit(ExitCode::WriteError); + return; + } +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/Worker.h b/tests/auto/xmlpatternsxqts/lib/Worker.h new file mode 100644 index 0000000..df59892 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/Worker.h @@ -0,0 +1,141 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_Worker_H +#define PatternistSDK_Worker_H + +#include <QFileInfo> +#include <QList> +#include <QObject> +#include <QStringList> + +#include "ResultThreader.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +class QEventLoop; + +namespace QPatternistSDK +{ + /** + * @short Gets notified when the ResultThreader threads are + * finished, and output summaries and adjusts a baseline. + * + * @author Frans Englich <fenglich@trolltech.com> + * @ingroup PatternistSDK + */ + class Q_PATTERNISTSDK_EXPORT Worker : public QObject + { + Q_OBJECT + public: + Worker(QEventLoop &e, + const QFileInfo &baseline, + const QFileInfo &result); + + public Q_SLOTS: + void threadFinished(); + + private: + static inline void list(QTextStream &out, const QString &msg, QStringList &list); + + qint8 m_finishedCount; + const QFileInfo m_baselineFile; + const QFileInfo m_resultFile; + ResultThreader::Hash m_result; + ResultThreader::Hash m_baseline; + ResultThreader::Hash m_summary; + QStringList m_unexpectedPasses; + QStringList m_unexpectedFailures; + QStringList m_notTested; + QEventLoop & m_eventLoop; + static const char *const m_indent; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/XMLWriter.cpp b/tests/auto/xmlpatternsxqts/lib/XMLWriter.cpp new file mode 100644 index 0000000..9911d40 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/XMLWriter.cpp @@ -0,0 +1,710 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QCoreApplication> +#include <QDateTime> +#include <QIODevice> +#include <QList> +#include <QPair> +#include <QStack> +#include <QtDebug> + +#include "XMLWriter.h" + +/* Issues: + * - Switch to Qt's d-pointer semantics, if in Qt. + * - Remove namespace(PatternistSDK), and change name, if in Qt. + * - Is it really necessary to pass the tag name to endElement()? + * - Could it be of interest to let the user control the encoding? Are those cases common + * enough to justify support in Qt? Using anything but UTF-8 or UTF-16 + * means asking for trouble, from an interoperability perspective. + */ + +/* Design rationalis, comments: + * + * - The class is called XMLWriter to harvest familarity by being consistent with + * Java's XMLWriter class. If XMLWriter is moved to Qt, the name QXmlWriter is perhaps suitable. + * - The class does not handle indentation because the "do one thing well"-principle is + * in use. XMLWriter should be fast and not assume a certain idea of indentation. Indentation + * should be implemented in a standalone QXmlContentHandler that performs the indentation and + * "has a" QXmlContentHandler which it in addition calls, and by that proxying/piping another + * QXmlContentHandler(which most likely is an XMLWriter). Thus, achieving a modularized, + * flexibly approach to indentation. A reason is also that indentation is very subjective. + * The indenter class should probably be called XMLIndenter/QXmlIndenter. + * - It could be of interest to implement QXmlDTDHandler such that it would be possible to serialize + * DTDs. Must be done before BC becomes significant. + * - I think the most valuable of this class is its Q_ASSERT tests. Many programmers have severe problems + * producing XML, and the tests helps them catching their mistakes. They therefore promote + * interoperability. Do not remove them. If any are wrong, fix them instead. + */ + +using namespace QPatternistSDK; + +/** + * A namespace binding, prefix/namespace URI. + */ +typedef QPair<QString, QString> NSBinding; +typedef QList<NSBinding> NSBindingList; + +#ifdef QT_NO_DEBUG +# define DEBUG_CODE(code) +#else +# define DEBUG_CODE(code) code +#endif + +class XMLWriter::Private +{ +public: + inline Private(QIODevice *devP) : insideCDATA(false), + addModificationNote(false), + dev(devP) + { + hasContentStack.push(true); + } + +#ifdef QT_NO_DEBUG + inline void validateQName(const QString &) const + { + } + + inline void verifyNS(const QString &) const + { + } +#else + /** + * Simple test of that @p name is an acceptable QName. + */ + inline void validateQName(const QString &name) + { + Q_ASSERT_X(!name.isEmpty(), Q_FUNC_INFO, + "An XML name cannot be empty."); + Q_ASSERT_X(!name.endsWith(QLatin1Char(':')), Q_FUNC_INFO, + "An XML name cannot end with a colon(QLatin1Char(':'))."); + Q_ASSERT_X(!name.contains(QRegExp(QLatin1String("[ \t\n]"))), Q_FUNC_INFO, + "An XML name cannot contain whitespace."); + } + + /** + * Ensures that the prefix of @p qName is declared. + */ + inline void verifyNS(const QString &qName) const + { + const QString prefix(qName.left(qName.indexOf(QLatin1Char(':')))); + + if(qName.contains(QLatin1Char(':')) && prefix != QLatin1String("xml")) + { + bool foundPrefix = false; + const QStack<NSBindingList>::const_iterator end(namespaceTracker.constEnd()); + QStack<NSBindingList>::const_iterator it(namespaceTracker.constBegin()); + + for(; it != end; ++it) + { + const NSBindingList::const_iterator lend((*it).constEnd()); + NSBindingList::const_iterator lit((*it).constBegin()); + + for(; lit != lend; ++it) + { + if((*lit).first == prefix) + { + foundPrefix = true; + break; + } + } + if(foundPrefix) + break; + } + + Q_ASSERT_X(foundPrefix, "XMLWriter::startElement()", + qPrintable(QString::fromLatin1("The prefix %1 is not declared. All prefixes " + "except 'xml' must be declared.").arg(prefix))); + } + } +#endif + + inline QString escapeElementContent(const QString &ch) + { + const int l = ch.length(); + QString retval; + + for(int i = 0; i != l; ++i) + { + const QChar c(ch.at(i)); + + if(c == QLatin1Char(QLatin1Char('&'))) + retval += QLatin1String("&"); + else if(c == QLatin1Char(QLatin1Char('<'))) + retval += QLatin1String("<"); + else + retval += c; + } + + return retval; + } + + inline QString escapeAttributeContent(const QString &ch) + { + const int l = ch.length(); + QString retval; + + for(int i = 0; i != l; ++i) + { + const QChar c(ch.at(i)); + + /* We don't have to escape '\'' because we use '\"' as attribute delimiter. */ + if(c == QLatin1Char('&')) + retval += QLatin1String("&"); + else if(c == QLatin1Char('<')) + retval += QLatin1String("<"); + else if(c == QLatin1Char('"')) + retval += QLatin1String("""); + else + retval += c; + } + + return retval; + } + + inline QString escapeCDATAContent(const QString &ch) + { + const int l = ch.length(); + QString retval; + qint8 atEnd = 0; + + for(int i = 0; i != l; ++i) + { + const QChar c(ch.at(i)); + + /* Escape '>' if in "]]>" */ + if(c == QLatin1Char(']')) + { + if(atEnd == 0 || atEnd == 1) + ++atEnd; + else + atEnd = 0; + + retval += QLatin1Char(']'); + } + else if(c == QLatin1Char('>')) + { + if(atEnd == 2) + retval += QLatin1String(">"); + else + { + atEnd = 0; + retval += QLatin1Char('>'); + } + } + else + retval += c; + } + + return retval; + } + + /** + * We wrap dev in this function such that we can deploy the Q_ASSERT_X + * macro in each place it's used. + */ + inline QIODevice *device() const + { + Q_ASSERT_X(dev, Q_FUNC_INFO, + "No device specified for XMLWriter; one must be specified with " + "setDevice() or via the constructor before XMLWriter can be used."); + return dev; + } + + /** + * @returns true on success, otherwise false + */ + inline bool serialize(const QString &data) + { + const QByteArray utf8(data.toUtf8()); + + return device()->write(utf8) == utf8.size(); + } + + /** + * @returns true on success, otherwise false + */ + inline bool serialize(const char data) + { + return device()->putChar(data); + } + + /** + * @returns true on success, otherwise false + */ + inline bool serialize(const char *data) + { + return device()->write(data) == qstrlen(data); + } + + inline bool hasElementContent() const + { + return hasContentStack.top(); + } + + inline void handleElement() + { + if(!hasElementContent()) + serialize('>'); + + /* This element is content for the parent. */ + hasContentStack.top() = true; + } + + NSBindingList namespaces; + bool insideCDATA; + bool addModificationNote; + QString msg; + QIODevice *dev; + QStack<bool> hasContentStack; + QString errorString; + DEBUG_CODE(QStack<QString> tags;) + DEBUG_CODE(QStack<NSBindingList> namespaceTracker;) +}; + +/** + * Reduces complexity. The empty else clause is for avoiding mess when macro + * is used in the 'then' branch of an if clause, which is followed by an else clause. + */ +#define serialize(string) if(!d->serialize(string)) \ + { \ + d->errorString = d->device()->errorString(); \ + return false; \ + } \ + else + +XMLWriter::XMLWriter(QIODevice *outStream) : d(new Private(outStream)) +{ +} + +XMLWriter::~XMLWriter() +{ + delete d; +} + +bool XMLWriter::startDocument() +{ + if(!device()->isOpen() && !device()->open(QIODevice::WriteOnly)) + return false; + + if(d->addModificationNote) + { + if(d->msg.isNull()) + { + d->msg = QString::fromLatin1("NOTE: This file was automatically generated " + "by %1 at %2. All changes to this file will be lost.") + .arg(QCoreApplication::instance()->applicationName(), + QDateTime::currentDateTime().toString()); + } + if(!comment(d->msg)) + return false; + + serialize('\n'); + } + + serialize(QLatin1String("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")); + + return true; +} + +bool XMLWriter::startElement(const QString &/*namespaceURI*/, + const QString &/*localName*/, + const QString &qName, + const QXmlAttributes &atts) +{ + return startElement(qName, atts); +} + +bool XMLWriter::startElement(const QString &qName, + const QXmlAttributes &atts) +{ + Q_ASSERT_X(!d->insideCDATA, Q_FUNC_INFO, + "Only characters() can be received when inside CDATA."); + Q_ASSERT_X(!qName.startsWith(QLatin1String("xmlns")), Q_FUNC_INFO, + "startElement should not be used for declaring prefixes, " + "use startPrefixMapping() for that."); + + d->validateQName(qName); + d->verifyNS(qName); + + d->handleElement(); + + serialize('<'); + serialize(qName); + + DEBUG_CODE(d->tags.push(qName)); + DEBUG_CODE(d->namespaceTracker.push(d->namespaces)); + + /* Add namespace declarations. */ + const NSBindingList::const_iterator end(d->namespaces.constEnd()); + NSBindingList::const_iterator it(d->namespaces.constBegin()); + + for(; it != end; ++it) + { + if((*it).first.isEmpty()) + serialize(" xmlns="); + else + { + serialize(" xmlns:"); + serialize((*it).first); + serialize('='); + } + + serialize('"'); + serialize(d->escapeElementContent((*it).second)); + serialize('"'); + } + d->namespaces.clear(); + + const int c = atts.count(); + + /* Serialize attributes. */ + for(int i = 0; i != c; ++i) + { + d->validateQName(atts.qName(i)); + d->verifyNS(atts.qName(i)); + + serialize(' '); + serialize(atts.qName(i)); + serialize("=\""); + serialize(d->escapeAttributeContent(atts.value(i))); + serialize('"'); + } + + d->hasContentStack.push(false); + return true; +} + +bool XMLWriter::endElement(const QString &/*namespaceURI*/, + const QString &/*localName*/, + const QString &qName) +{ + return endElement(qName); +} + +bool XMLWriter::endElement(const QString &qName) +{ + Q_ASSERT_X(!d->insideCDATA, Q_FUNC_INFO, + "Only characters() can be received when inside CDATA."); + Q_ASSERT_X(d->tags.pop() == qName, Q_FUNC_INFO, + "The element tags are not balanced, the produced XML is invalid."); + + DEBUG_CODE(d->namespaceTracker.pop()); + + /* "this" element is content for our parent, so ensure hasElementContent is true. */ + + if(d->hasElementContent()) + { + serialize(QLatin1String("</")); + serialize(qName); + serialize('>'); + } + else + serialize(QLatin1String("/>")); + + d->hasContentStack.pop(); + + return true; +} + +bool XMLWriter::startPrefixMapping(const QString &prefix, const QString &uri) +{ + Q_ASSERT_X(!d->insideCDATA, Q_FUNC_INFO, + "Only characters() can be received when inside CDATA."); + Q_ASSERT_X(prefix.toLower() != QLatin1String("xml") || + (prefix.toLower() == QLatin1String("xml") && + (uri == QLatin1String("http://www.w3.org/TR/REC-xml-names/") || + uri.isEmpty())), + Q_FUNC_INFO, + "The prefix 'xml' can only be bound to the namespace " + "\"http://www.w3.org/TR/REC-xml-names/\"."); + Q_ASSERT_X(prefix.toLower() != QLatin1String("xml") && + uri != QLatin1String("http://www.w3.org/TR/REC-xml-names/"), + Q_FUNC_INFO, + "The namespace \"http://www.w3.org/TR/REC-xml-names/\" can only be bound to the " + "\"xml\" prefix."); + + d->namespaces.append(qMakePair(prefix, uri)); + return true; +} + +bool XMLWriter::processingInstruction(const QString &target, + const QString &data) +{ + Q_ASSERT_X(target.toLower() != QLatin1String("xml"), Q_FUNC_INFO, + "A processing instruction cannot have the name xml in any " + "capitalization, because it is reserved."); + Q_ASSERT_X(!data.contains(QLatin1String("?>")), Q_FUNC_INFO, + "The content of a processing instruction cannot contain the string \"?>\"."); + Q_ASSERT_X(!d->insideCDATA, "XMLWriter::processingInstruction()", + "Only characters() can be received when inside CDATA."); + + d->handleElement(); + + serialize(QLatin1String("<?")); + serialize(target); + serialize(' '); + serialize(data); + serialize(QLatin1String("?>")); + return true; +} + +bool XMLWriter::characters(const QString &ch) +{ + Q_ASSERT_X(d->tags.count() >= 1, Q_FUNC_INFO, + "Text nodes can only appear inside elements(no elements sent)."); + d->handleElement(); + + if(d->insideCDATA) + serialize(d->escapeCDATAContent(ch)); + else + serialize(d->escapeElementContent(ch)); + + return true; +} + +bool XMLWriter::comment(const QString &ch) +{ + Q_ASSERT_X(!d->insideCDATA, Q_FUNC_INFO, + "Only characters() can be received when inside CDATA."); + Q_ASSERT_X(!ch.contains(QLatin1String("--")), Q_FUNC_INFO, + "XML comments may not contain double-hyphens(\"--\")."); + Q_ASSERT_X(!ch.endsWith(QLatin1Char('-')), Q_FUNC_INFO, + "XML comments cannot end with a hyphen, \"-\"(add a space, for example)."); + /* A comment starting with "<!---" is ok. */ + + d->handleElement(); + + serialize(QLatin1String("<!--")); + serialize(ch); + serialize(QLatin1String("-->")); + + return true; +} + +bool XMLWriter::startCDATA() +{ + Q_ASSERT_X(d->insideCDATA, Q_FUNC_INFO, + "startCDATA() has already been called."); + Q_ASSERT_X(d->tags.count() >= 1, Q_FUNC_INFO, + "CDATA sections can only appear inside elements(no elements sent)."); + d->insideCDATA = true; + serialize(QLatin1String("<![CDATA[")); + return true; +} + +bool XMLWriter::endCDATA() +{ + d->insideCDATA = false; + serialize("]]>"); + return true; +} + +bool XMLWriter::startDTD(const QString &name, + const QString &publicId, + const QString &systemId) +{ + Q_ASSERT_X(!d->insideCDATA, Q_FUNC_INFO, + "Only characters() can be received when inside CDATA."); + Q_ASSERT_X(!name.isEmpty(), Q_FUNC_INFO, + "The DOCTYPE name cannot be empty."); + Q_ASSERT_X(d->tags.isEmpty() && d->namespaces.isEmpty(), Q_FUNC_INFO, + "No content such as namespace declarations or elements can be serialized " + "before the DOCTYPE declaration, the XML is invalid."); + Q_ASSERT_X(!publicId.contains(QLatin1Char('"')), Q_FUNC_INFO, + "The PUBLIC ID cannot contain quotes('\"')."); + Q_ASSERT_X(!systemId.contains(QLatin1Char('"')), Q_FUNC_INFO, + "The SYSTEM ID cannot contain quotes('\"')."); + + serialize(QLatin1String("<!DOCTYPE ")); + serialize(name); + + if(!publicId.isEmpty()) + { + Q_ASSERT_X(!systemId.isEmpty(), Q_FUNC_INFO, + "When a public identifier is specified, a system identifier " + "must also be specified in order to produce valid XML."); + serialize(" PUBLIC \""); + serialize(publicId); + serialize('"'); + } + + if(!systemId.isEmpty()) + { + if(publicId.isEmpty()) + serialize(" SYSTEM"); + + serialize(" \""); + serialize(systemId); + serialize('"'); + } + + return true; +} + +bool XMLWriter::endDTD() +{ + Q_ASSERT_X(d->tags.isEmpty() && d->namespaces.isEmpty(), Q_FUNC_INFO, + "Content such as namespace declarations or elements cannot occur inside " + "the DOCTYPE declaration, the XML is invalid."); + serialize(QLatin1String(">\n")); + return true; +} + +bool XMLWriter::startEntity(const QString &) +{ + return true; +} + +bool XMLWriter::endEntity(const QString &) +{ + return true; +} + +void XMLWriter::setMessage(const QString &msg) +{ + d->msg = msg; +} + +QString XMLWriter::modificationMessage() const +{ + return d->msg; +} + +bool XMLWriter::endDocument() +{ + Q_ASSERT_X(d->tags.isEmpty(), Q_FUNC_INFO, + "endDocument() called before all elements were closed with endElement()."); + d->device()->close(); + return true; +} + +QString XMLWriter::errorString() const +{ + return d->errorString; +} + +bool XMLWriter::ignorableWhitespace(const QString &ch) +{ + return characters(ch); +} + +bool XMLWriter::endPrefixMapping(const QString &) +{ + /* Again, should we do something with this? */ + return true; +} + +bool XMLWriter::skippedEntity(const QString &) +{ + return true; +} + +void XMLWriter::setDocumentLocator(QXmlLocator *) +{ +} + +QIODevice *XMLWriter::device() const +{ + return d->dev; +} + +void XMLWriter::setDevice(QIODevice *dev) +{ + d->dev = dev; +} + +void XMLWriter::setAddMessage(const bool toggle) +{ + d->addModificationNote = toggle; +} + +bool XMLWriter::addModificationMessage() const +{ + return d->addModificationNote; +} + +#undef serialize +// vim: et:ts=4:sw=4:sts=4 + diff --git a/tests/auto/xmlpatternsxqts/lib/XMLWriter.h b/tests/auto/xmlpatternsxqts/lib/XMLWriter.h new file mode 100644 index 0000000..e8f100e --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/XMLWriter.h @@ -0,0 +1,444 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_XMLWriter_H +#define PatternistSDK_XMLWriter_H + +#include "Global.h" + +#include <QtXml/QXmlContentHandler> +#include <QtXml/QXmlLexicalHandler> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +class QIODevice; + +namespace QPatternistSDK +{ + /** + * @short Serializes a stream of SAX events into XML, sent to a QIODevice. + * + * XMLWriter is a fast and simple XML serializer which takes care of + * all the low level details of well-formedness and character escaping, allowing + * the user to focus on higher level issues and increasing the chances of producing + * valid, interoperable XML. + * + * The content XMLWriter produces is sent to a QIODevice, which is either + * specified in XMLWriter's constructor or via setDevice(). If writing to + * the device fails, the content functions such as startElement() returns @c false. + * + * XMLWriter sub-classes QXmlContentHandler meaning it can serialize content + * from any code that produces SAX events. The class can also be used manually, + * by calling startElement(), endCDATA(), and so forth. + * + * XMLWriter cannot be used to serialize multiple documents. One instance per + * document must be used. + * + * XMLWriter takes care of escaping content into character references as necessary. Thus, + * it should not be done manually. In fact, it would most likely + * result in invalid XML or an unintended result. XMLWriter always serializes into UTF-8. + * + * When compiled in debug mode, XMLWriter contains several tests that helps + * ensuring that XMLWriter produces valid XML. Some of these tests ensures that: + * + * - The @c xmlns and @c xml prefixes are used properly + * - Content of comments and processing instructions is valid + * - Element, attribute and DOCTYPE names are sensible + * - Elements are properly nested and balanced + * - To some extent that things occur in the proper order. For example, that + * the document type definition isn't added inside an element + * - That namespaces prefixes are declared + * + * Not triggering XMLWriter's tests does not guarantee valid XML is produced, + * but they do help catching common mistakes and some of the corner cases in the + * specifications. When XMLWriter is compiled in release mode, these tests are not enabled + * and the error handling in effect is concerning writing to the QIODevice. + * + * Often it is of interest to add a note at the beginning of the file communicating + * it is auto-generated. setMessage() and setAddMessage() provides + * a convenient way of doing that. + * + * Namespace declarations are added with startPrefixMapping(), not by sending attributes + * with name <tt>xmlns:*</tt> to startElement(). + * + * @see <a href="http://hsivonen.iki.fi/producing-xml/">HOWTO Avoid Being + * Called a Bozo When Producing XML</a> + * @see <a href="http://www.w3.org/TR/REC-xml/">Extensible Markup + * Language (XML) 1.0 (Third Edition)</a> + * @see <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML</a> + * @todo Replace this class with QXmlStreamWriter + * @author Frans Englich <fenglich@trolltech.com> + * @ingroup PatternistSDK + */ + class Q_PATTERNISTSDK_EXPORT XMLWriter : public QXmlContentHandler + , public QXmlLexicalHandler + { + public: + /** + * Creates a XMLWriter which serializes its received events + * to @p outStream. + * + * @note XMLWriter does not claim ownership of @p outStream. Thus, + * @p outStream may not be destroyed as long as + * this XMLWriter instance uses it. + */ + XMLWriter(QIODevice *outStream = 0); + + virtual ~XMLWriter(); + + /** + * @returns @c true if opening the output device succeeds, otherwise @c false + */ + virtual bool startDocument(); + + /** + * @returns @c false if failure occurs in writing to the QIODevice, otherwise + * @c true + */ + virtual bool characters(const QString &ch); + + /** + * Starts an element with name @p qName and attributes @p atts. The prefix + * in @p qName must first be declared with startPrefixMapping(), if it has one. + * + * A call to startElement() must always at some point be balanced with a call + * to endElement(). + * + * To declare namespaces, don't put attributes with name <tt>xmlns:*</tt> in @p atts, + * but use startPrefixMapping(). + */ + virtual bool startElement(const QString &qName, const QXmlAttributes &atts = QXmlAttributes()); + + /** + * + * Behaves essentially as startElement(const QString &qName, const QXmlAttributes &atts). This + * function is used in conjunction with other SAX classes. + * + * The call: + * + * @code + * startElement(QString(), QString(), qName, atts); + * @endcode + * + * is equivalent to: + * + * @code + * startElement(qName, atts); + * @endcode + * + * @p namespaceURI and @p localName are not used. This function is + * used in conjunction with other SAX classes. + * + * @returns @c false if failure occurs in writing to the QIODevice, otherwise + * @c true + */ + virtual bool startElement(const QString &namespaceURI, + const QString &localName, + const QString &qName, + const QXmlAttributes &atts); + + /** + * Signals the end of an element with name @p qName. @p qName must + * be supplied. + * + * Calls to startElement() and endElement() must always be balanced. + * + * @returns @c false if failure occurs in writing to the QIODevice, otherwise + * @c true + */ + virtual bool endElement(const QString &qName); + + /** + * Behaves essentially as endElement(const QString &qName). This function + * is used when XMLWriter is used in SAX code. + * + * @p namespaceURI and @p localName are not used. + * + * The call: + * + * @code + * endElement(QString(), QString(), qName); + * @endcode + * + * is equivalent to: + * + * @code + * endElement(qName); + * @endcode + * + * @returns @c false if failure occurs in writing to the QIODevice, otherwise + * @c true + */ + virtual bool endElement(const QString &namespaceURI, + const QString &localName, + const QString &qName); + + /** + * A description of an error if it occurred. This is typically + * QIODevice::errorString(). If no error has occurred, an empty + * string is returned. + */ + virtual QString errorString() const; + + /** + * Starts a CDATA section. Content sent with characters() will not be escaped + * except for ">" if occurring in "]]>". + * + * @returns @c false if failure occurs in writing to the QIODevice, otherwise + * @c true + */ + virtual bool startCDATA(); + + /** + * @returns @c false if failure occurs in writing to the QIODevice, otherwise + * @c true + */ + virtual bool endCDATA(); + + /** + * Creates a document type definition. + * + * For example, the code snippet: + * + * @code + * writer.startDTD("html", "-//W3C//DTD XHTML 1.0 Strict//EN", + * "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"); + * writer.endDTD(); + * @endcode + * + * would create: + * @verbatim + <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +@endverbatim + * + * @note A system identifier must always be specified, but a public identifier may + * be left out. + * + * A call to startDTD() must be followed by a call to endDTD(). + */ + virtual bool startDTD(const QString &name, + const QString &publicId, + const QString &systemId); + + /** + * Apart from closing the DTD, an new line is also added at end. + */ + virtual bool endDTD(); + + /** + * Creates a processing instruction by name @p target, and content + * @p data. + * + * @returns @c false if failure occurs in writing to the QIODevice, otherwise + * @c true + */ + virtual bool processingInstruction(const QString &target, + const QString &data); + + /** + * Declares a namespace which maps @p prefix to @p namespaceURI. For example, the call: + * + * @code + * startPrefixMapping("xhtml", "http://www.w3.org/1999/xhtml"); + * @endcode + * + * would result in: + * + * @code + * xmlns="http://www.w3.org/1999/xhtml" + * @endcode + */ + virtual bool startPrefixMapping(const QString &prefix, + const QString &namespaceURI); + + /** + * Creates a comment with content @p ch. @p ch is escaped, there's + * no need to do it manually. For example, calling comment() with @p ch + * set to "my comment", results in "<!--my comment-->" in the output. + * + * @note if @p ch contains double hyphen("--"), the produced XML will + * not be well formed. + * + * @returns @c false if failure occurs in writing to the QIODevice, otherwise + * @c true + */ + virtual bool comment(const QString &ch); + + virtual bool startEntity(const QString &name); + virtual bool endEntity(const QString &name); + + /** + * Sets the message which is added as a comment if addModificationMessage() + * is set to @c true. If no message is specified and addModificationMessage() + * is set to @c true, a default message is used. + * + * @see modificationMessage(), setAddMessage() + */ + virtual void setMessage(const QString &msg); + + /** + * The message that is added at the beginning of the XML events + * in a comment node. If no modificationMessage is set via modificationMessage(), + * and addModificationMessage is set to @c true, this message will be used: + * "NOTE: This file was automatically generated by [the application name] at + * [the current date time]. All changes to this file will be lost." + * + * @see setMessage() + */ + virtual QString modificationMessage() const; + + /** + * Closes the QIODevice XMLWriter writes to. + */ + virtual bool endDocument(); + + /** + * Serializes @p ch as if it was sent to characters(). + * + * @returns @c false if failure occurs in writing to the QIODevice, otherwise + * @c true + */ + virtual bool ignorableWhitespace(const QString &ch); + + /** + * This function is not used by XMLWriter, but is implemented + * in order to satisfy QXmlContentHandler's interface. + */ + virtual bool endPrefixMapping(const QString &prefix); + + /** + * This function is not used by XMLWriter, but is implemented + * in order to satisfy QXmlContentHandler's interface. + */ + virtual bool skippedEntity(const QString &name); + + /** + * This function is not used by XMLWriter, but is implemented + * in order to satisfy QXmlContentHandler's interface. + */ + virtual void setDocumentLocator(QXmlLocator *); + + /** + * @returns the device XMLWriter writes its output to. + * XMLWriter does not own the device. + */ + virtual QIODevice *device() const; + + /** + * Sets the QIODevice XMLWriter writes to, to @p device. A device must be specified + * either via this function or in the constructor before XMLWriter is used. + * + * XMLWriter does not claim ownership of @p device. + */ + virtual void setDevice(QIODevice *device); + + /** + * Determines whether the modification message should be inserted as a comment + * before the document element. The message returned by modificationMessage() is used. + * + * If @p toggle is @c true, the message will be added, otherwise not. + */ + virtual void setAddMessage(const bool toggle); + + /** + * Tells whether a modification message will be added. + * + * @see setAddMessage(), modificationMessage() + */ + virtual bool addModificationMessage() const; + + private: + Q_DISABLE_COPY(XMLWriter) + + class Private; + Private *d; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/XQTSTestCase.cpp b/tests/auto/xmlpatternsxqts/lib/XQTSTestCase.cpp new file mode 100644 index 0000000..ecd8dd6 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/XQTSTestCase.cpp @@ -0,0 +1,327 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QColor> +#include <QFile> +#include <QFileInfo> +#include <QVariant> +#include <QtDebug> + +#include "XQTSTestCase.h" + +using namespace QPatternistSDK; +using namespace QPatternist; + +XQTSTestCase::XQTSTestCase(const Scenario scen, + TreeItem *p, + const QXmlQuery::QueryLanguage lang) : m_isXPath(false) + , m_scenario(scen) + , m_parent(p) + , m_lang(lang) +{ +} + +XQTSTestCase::~XQTSTestCase() +{ + qDeleteAll(m_baseLines); +} + +QVariant XQTSTestCase::data(const Qt::ItemDataRole role, int column) const +{ + if(role == Qt::DisplayRole) + { + if(column == 0) + return title(); + + const TestResult *const tr = testResult(); + if(!tr) + { + if(column == 1) + return TestResult::displayName(TestResult::NotTested); + else + return QString(); + } + const TestResult::Status status = tr->status(); + + switch(column) + { + case 1: + return status == TestResult::Pass ? QString(QChar::fromLatin1('1')) + : QString(QChar::fromLatin1('0')); + case 2: + return status == TestResult::Fail ? QString(QChar::fromLatin1('1')) + : QString(QChar::fromLatin1('0')); + default: + return QString(); + } + } + + if(role != Qt::BackgroundRole) + return QVariant(); + + const TestResult *const tr = testResult(); + + if(!tr) + { + if(column == 0) + return Qt::yellow; + else + return QVariant(); + } + + const TestResult::Status status = tr->status(); + + if(status == TestResult::NotTested || status == TestResult::Unknown) + return Qt::yellow; + + switch(column) + { + case 1: + return status == TestResult::Pass ? Qt::green : QVariant(); + case 2: + return status == TestResult::Fail ? Qt::red : QVariant(); + default: + return QVariant(); + } +} + +QString XQTSTestCase::sourceCode(bool &ok) const +{ + QFile file(m_queryPath.toLocalFile()); + + QString err; + + if(!file.exists()) + err = QString::fromLatin1("Error: %1 does not exist.").arg(file.fileName()); + else if(!QFileInfo(file.fileName()).isFile()) + err = QString::fromLatin1("Error: %1 is not a file, cannot display it.").arg(file.fileName()); + else if(!file.open(QIODevice::ReadOnly)) + err = QString::fromLatin1("Error: Could not open %1. Likely a permission error.") + .arg(file.fileName()); + + if(err.isNull()) /* No errors. */ + { + ok = true; + /* Scary, we assume the query is stored in UTF-8. */ + return QString::fromUtf8(file.readAll()); + } + else + { + ok = false; + return err; + } +} + +int XQTSTestCase::columnCount() const +{ + return 2; +} + +void XQTSTestCase::addBaseLine(TestBaseLine *line) +{ + m_baseLines.append(line); +} + +QString XQTSTestCase::name() const +{ + return m_name; +} + +QString XQTSTestCase::creator() const +{ + return m_creator; +} + +QString XQTSTestCase::description() const +{ + return m_description; +} + +QDate XQTSTestCase::lastModified() const +{ + return m_lastModified; +} + +bool XQTSTestCase::isXPath() const +{ + return m_isXPath; +} + +TestCase::Scenario XQTSTestCase::scenario() const +{ + return m_scenario; +} + +void XQTSTestCase::setName(const QString &n) +{ + m_name = n; +} + +void XQTSTestCase::setCreator(const QString &ctor) +{ + m_creator = ctor; +} + +void XQTSTestCase::setDescription(const QString &descriptionP) +{ + m_description = descriptionP; +} + +void XQTSTestCase::setLastModified(const QDate &date) +{ + m_lastModified = date; +} + +void XQTSTestCase::setIsXPath(const bool isXPathP) +{ + m_isXPath = isXPathP; +} + +void XQTSTestCase::setQueryPath(const QUrl &uri) +{ + m_queryPath = uri; +} + +TreeItem *XQTSTestCase::parent() const +{ + return m_parent; +} + +QString XQTSTestCase::title() const +{ + return m_name; +} + +TestBaseLine::List XQTSTestCase::baseLines() const +{ + Q_ASSERT_X(!m_baseLines.isEmpty(), Q_FUNC_INFO, + qPrintable(QString::fromLatin1("The test %1 has no base lines, it should have at least one.").arg(name()))); + return m_baseLines; +} + +QUrl XQTSTestCase::testCasePath() const +{ + return m_queryPath; +} + +void XQTSTestCase::setExternalVariableLoader(const QPatternist::ExternalVariableLoader::Ptr &loader) +{ + m_externalVariableLoader = loader; +} + +QPatternist::ExternalVariableLoader::Ptr XQTSTestCase::externalVariableLoader() const +{ + return m_externalVariableLoader; +} + +void XQTSTestCase::setContextItemSource(const QUrl &uri) +{ + m_contextItemSource = uri; +} + +QUrl XQTSTestCase::contextItemSource() const +{ + return m_contextItemSource; +} + +QXmlQuery::QueryLanguage XQTSTestCase::language() const +{ + return m_lang; +} + +void XQTSTestCase::setParent(TreeItem *const p) +{ + m_parent = p; +} + +void XQTSTestCase::setInitialTemplateName(const QXmlName &name) +{ + m_initialTemplateName = name; +} + +QXmlName XQTSTestCase::initialTemplateName() const +{ + return m_initialTemplateName; +} + +// vim: et:ts=4:sw=4:sts=4 + diff --git a/tests/auto/xmlpatternsxqts/lib/XQTSTestCase.h b/tests/auto/xmlpatternsxqts/lib/XQTSTestCase.h new file mode 100644 index 0000000..80ab20d --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/XQTSTestCase.h @@ -0,0 +1,190 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_XQTSTestCase_H +#define PatternistSDK_XQTSTestCase_H + +#include <QDate> +#include <QString> +#include <QUrl> + +#include "qexternalvariableloader_p.h" + +#include "TestBaseLine.h" +#include "TestCase.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + /** + * @short Represents a test case in a test suite in the XML Query Test Suite. + * + * TestCase is a memory representation of a test case, and maps + * to the @c test-case element in the XQuery Test Suite test + * case catalog. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT XQTSTestCase : public TestCase + { + public: + XQTSTestCase(const Scenario scen, TreeItem *parent, + const QXmlQuery::QueryLanguage lang = QXmlQuery::XQuery10); + virtual ~XQTSTestCase(); + + /** + * The identifier, the name of the test. For example, "Literals034". + * The name of a test case must be unique. + */ + virtual QString name() const; + virtual QString creator() const; + virtual QString description() const; + /** + * @returns the query inside the file, specified by testCasePath(). Loading + * of the file is not cached in order to avoid complications. + * @param ok is set to @c false if loading the query file fails + */ + virtual QString sourceCode(bool &ok) const; + virtual QUrl testCasePath() const; + virtual QDate lastModified() const; + + bool isXPath() const; + + /** + * What kind of test case this is, what kind of scenario it takes part + * of. For example, whether the test case should evaluate normally or fail. + */ + Scenario scenario() const; + + void setCreator(const QString &creator); + void setLastModified(const QDate &date); + void setDescription(const QString &description); + void setIsXPath(const bool isXPath); + void setName(const QString &name); + void setQueryPath(const QUrl &uri); + void setContextItemSource(const QUrl &uri); + void addBaseLine(TestBaseLine *lines); + void setInitialTemplateName(const QXmlName &name); + + virtual TreeItem *parent() const; + + virtual QVariant data(const Qt::ItemDataRole role, int column) const; + + virtual QString title() const; + virtual TestBaseLine::List baseLines() const; + + virtual int columnCount() const; + + void setExternalVariableLoader(const QPatternist::ExternalVariableLoader::Ptr &loader); + virtual QPatternist::ExternalVariableLoader::Ptr externalVariableLoader() const; + virtual QUrl contextItemSource() const; + virtual QXmlQuery::QueryLanguage language() const; + void setParent(TreeItem *const parent); + virtual QXmlName initialTemplateName() const; + + private: + QString m_name; + QString m_creator; + QString m_description; + QUrl m_queryPath; + bool m_isXPath; + QDate m_lastModified; + const Scenario m_scenario; + TreeItem * m_parent; + TestBaseLine::List m_baseLines; + QPatternist::ExternalVariableLoader::Ptr m_externalVariableLoader; + QUrl m_contextItemSource; + QXmlQuery::QueryLanguage m_lang; + QXmlName m_initialTemplateName; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/XSLTTestSuiteHandler.cpp b/tests/auto/xmlpatternsxqts/lib/XSLTTestSuiteHandler.cpp new file mode 100644 index 0000000..ef5833e4 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/XSLTTestSuiteHandler.cpp @@ -0,0 +1,275 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#include <QtDebug> + +#include "qacceltreeresourceloader_p.h" +#include "qnetworkaccessdelegator_p.h" + +#include "Global.h" +#include "TestBaseLine.h" +#include "TestGroup.h" + +#include "XSLTTestSuiteHandler.h" + +using namespace QPatternistSDK; + +extern QNetworkAccessManager s_networkManager; + +XSLTTestSuiteHandler::XSLTTestSuiteHandler(const QUrl &catalogFile) : m_ts(0) + , m_tc(0) + , m_baseLine(0) + , m_catalogFile(catalogFile) + , m_removeTestcase(false) +{ + const QPatternist::NetworkAccessDelegator::Ptr networkDelegator(new QPatternist::NetworkAccessDelegator(&s_networkManager, &s_networkManager)); + + m_resourceLoader = QPatternist::ResourceLoader::Ptr(new QPatternist::AccelTreeResourceLoader(Global::namePool(), + networkDelegator)); + Q_ASSERT(!m_catalogFile.isRelative()); +} + +bool XSLTTestSuiteHandler::startElement(const QString &namespaceURI, + const QString &localName, + const QString &/*qName*/, + const QXmlAttributes &atts) + { + if(namespaceURI != Global::xsltsCatalogNS) + return true; + + /* The elements are handled roughly in the order of highest occurrence in the catalog file. */ + if(localName == QLatin1String("testcase")) + { + /* We pass m_ts temporarily, and change it later. */ + m_tc = new XQTSTestCase(TestCase::Standard, 0, QXmlQuery::XSLT20); + + m_currentQueryPath = m_queryOffset.resolved(QUrl(atts.value(QLatin1String("FilePath")))); + m_currentBaselinePath = m_baselineOffset.resolved(QUrl(atts.value(QLatin1String("FilePath")))); + } + else if(localName == QLatin1String("stylesheet")) + m_tc->setQueryPath(m_currentQueryPath.resolved(atts.value(QLatin1String("file")))); + else if(localName == QLatin1String("error")) + { + m_baseLine = new TestBaseLine(TestBaseLine::ExpectedError); + m_baseLine->setDetails(atts.value(QLatin1String("error-id"))); + m_tc->addBaseLine(m_baseLine); + } + else if(localName == QLatin1String("testcases")) + { + m_ts = new TestSuite(); + m_ts->setVersion(atts.value(QLatin1String("testSuiteVersion"))); + + m_queryOffset = m_catalogFile.resolved(atts.value(QLatin1String("InputOffsetPath"))); + m_baselineOffset = m_catalogFile.resolved(atts.value(QLatin1String("ResultOffsetPath"))); + m_sourceOffset = m_catalogFile.resolved(atts.value(QLatin1String("InputOffsetPath"))); + } + else if(localName == QLatin1String("source-document")) + { + if(atts.value(QLatin1String("role")) == QLatin1String("principal")) + m_tc->setContextItemSource(m_sourceOffset.resolved(QUrl(atts.value(QLatin1String("file"))))); + } + else if(localName == QLatin1String("result-document")) + { + m_baseLine = new TestBaseLine(TestBaseLine::identifierFromString(atts.value(QLatin1String("type")))); + m_baseLine->setDetails(m_currentBaselinePath.resolved(atts.value(QLatin1String("file"))).toString()); + m_tc->addBaseLine(m_baseLine); + } + else if(localName == QLatin1String("discretionary-feature")) + { + const QString feature(atts.value(QLatin1String("name"))); + + m_removeTestcase = feature == QLatin1String("schema_aware") || + feature == QLatin1String("namespace_axis") || + feature == QLatin1String("disabling_output_escaping") || + feature == QLatin1String("XML_1.1"); + } + else if(localName == QLatin1String("discretionary-choice")) + { + m_baseLine = new TestBaseLine(TestBaseLine::ExpectedError); + m_baseLine->setDetails(atts.value(QLatin1String("name"))); + m_tc->addBaseLine(m_baseLine); + const QString feature(atts.value(QLatin1String("name"))); + + m_removeTestcase = feature == QLatin1String("schema_aware") || + feature == QLatin1String("namespace_axis") || + feature == QLatin1String("disabling_output_escaping") || + feature == QLatin1String("XML_1.1"); + } + else if(localName == QLatin1String("entry-named-template")) + { + const QString name(atts.value(QLatin1String("qname"))); + + if(!name.contains(QLatin1Char(':'))) + { + // TODO do namespace processing + const QXmlName complete(Global::namePool()->allocateQName(QString(), name)); + + m_tc->setInitialTemplateName(complete); + } + } + + return true; +} + +TestGroup *XSLTTestSuiteHandler::containerFor(const QString &name) +{ + TestGroup *& c = m_containers[name]; + + if(!c) + { + c = new TestGroup(m_ts); + c->setTitle(name); + Q_ASSERT(c); + m_ts->appendChild(c); + } + + return c; +} + +bool XSLTTestSuiteHandler::endElement(const QString &namespaceURI, + const QString &localName, + const QString &/*qName*/) +{ + if(namespaceURI != Global::xsltsCatalogNS) + return true; + + /* The elements are handled roughly in the order of highest occurrence in the catalog file. */ + if(localName == QLatin1String("description")) + { + if(m_tc) + { + /* We're inside a <testcase>, so the <description> belongs + * to the testcase. */ + m_tc->setDescription(m_ch.simplified()); + } + } + else if(localName == QLatin1String("testcase")) + { + Q_ASSERT(m_tc->baseLines().count() >= 1); + Q_ASSERT(m_resourceLoader); + // TODO can this be removed? + m_tc->setExternalVariableLoader(QPatternist::ExternalVariableLoader::Ptr + (new ExternalSourceLoader(m_tcSourceInputs, + m_resourceLoader))); + m_tcSourceInputs.clear(); + + if(!m_removeTestcase) + { + /* + TestContainer *const container = containerFor(m_currentCategory); + delete m_tc; + container->removeLast(); + */ + TestContainer *const container = containerFor(m_currentCategory); + m_tc->setParent(container); + Q_ASSERT(m_tc); + container->appendChild(m_tc); + } + + m_tc = 0; + m_removeTestcase = false; + } + else if(localName == QLatin1String("name")) + m_tc->setName(m_ch); + else if(localName == QLatin1String("creator")) + m_tc->setCreator(m_ch); + else if(localName == QLatin1String("contextItem")) + m_contextItemSource = m_ch; + else if(localName == QLatin1String("category")) + m_currentCategory = m_ch; + + return true; +} + +bool XSLTTestSuiteHandler::characters(const QString &ch) +{ + m_ch = ch; + return true; +} + +TestSuite *XSLTTestSuiteHandler::testSuite() const +{ + return m_ts; +} + +// vim: et:ts=4:sw=4:sts=4 + diff --git a/tests/auto/xmlpatternsxqts/lib/XSLTTestSuiteHandler.h b/tests/auto/xmlpatternsxqts/lib/XSLTTestSuiteHandler.h new file mode 100644 index 0000000..fce64e2 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/XSLTTestSuiteHandler.h @@ -0,0 +1,199 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** +*/ + +#ifndef PatternistSDK_XSLTTestSuiteHandler_H +#define PatternistSDK_XSLTTestSuiteHandler_H + +#include <QStack> +#include <QUrl> +#include <QXmlDefaultHandler> + +#include "ExternalSourceLoader.h" +#include "TestSuite.h" +#include "XQTSTestCase.h" + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +namespace QPatternistSDK +{ + class TestBaseLine; + class TestGroup; + + /** + * @short Creates a TestSuite from the XQuery Test Suite catalog. + * + * The created TestSuite can be retrieved via testSuite(). + * + * @note XSLTTestSuiteHandler assumes the XML is valid by having been validated + * against the W3C XML Schema. It has no safety checks for that the XML format + * is correct but is hard coded for it. Thus, the behavior is undefined if + * the XML is invalid. + * + * @see http://www.w3.org/XML/Group/xslt20-test/TestSuiteStagingArea/catalog.html + * @see http://www.w3.org/XML/Group/xslt20-test/Documentation/XSLT2Test.htm + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class Q_PATTERNISTSDK_EXPORT XSLTTestSuiteHandler : public QXmlDefaultHandler + { + public: + /** + * @param catalogFile the URI for the catalog file being parsed. This + * URI is used for creating absolute URIs for files mentioned in + * the catalog with relative URIs. + * @param useExclusionList whether excludeTestGroups.txt should be used to ignore + * test groups when loading + */ + XSLTTestSuiteHandler(const QUrl &catalogFile); + virtual bool characters(const QString &ch); + + virtual bool endElement(const QString &namespaceURI, + const QString &localName, + const QString &qName); + virtual bool startElement(const QString &namespaceURI, + const QString &localName, + const QString &qName, + const QXmlAttributes &atts); + + virtual TestSuite *testSuite() const; + + private: + TestGroup *containerFor(const QString &name); + + QHash<QString, TestGroup *> m_containers; + + TestSuite * m_ts; + XQTSTestCase * m_tc; + TestBaseLine * m_baseLine; + QString m_ch; + const QUrl m_catalogFile; + + /** + * The base URI for where the XQuery query files are found. + * It is absolute, resolved against catalogFile. + */ + QUrl m_queryOffset; + + QUrl m_baselineOffset; + QUrl m_sourceOffset; + QUrl m_currentQueryPath; + QUrl m_currentBaselinePath; + + /** + * In the XQTSCatalog.xml, each source file in each test is referred to + * by a key, which can be fully looked up in the @c sources element. This QHash + * maps the keys to absolute URIs pointing to the source files. + */ + ExternalSourceLoader::SourceMap m_sourceMap; + + ExternalSourceLoader::VariableMap m_tcSourceInputs; + + QPatternist::ResourceLoader::Ptr m_resourceLoader; + + /** + * The current value of <tt>input-file/\@variable</tt>. + */ + QString m_currentInputVariable; + + /** + * The names of the test groups. + */ + QStack<QString> m_testGroupName; + + /** + * Holds the content of the current <tt>input-URI</tt> element. + */ + QString m_inputURI; + QString m_contextItemSource; + QString m_currentCategory; + bool m_removeTestcase; + }; +} + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/docs/XMLIndenterExample.cpp b/tests/auto/xmlpatternsxqts/lib/docs/XMLIndenterExample.cpp new file mode 100644 index 0000000..935143a --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/docs/XMLIndenterExample.cpp @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +QByteArray result; +QBuffer returnBuffer(&result); +XMLWriter writer(&returnBuffer); + +writer.startDocument(); + +writer.startDTD(QLatin1String("html"), QLatin1String("-//W3C//DTD XHTML 1.0 Strict//EN"), + QLatin1String("http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd")); +writer.endDTD(); + +writer.startPrefixMapping(QString(), QLatin1String("http://www.w3.org/1999/xhtml")); + +writer.startElement(QLatin1String("html"), QXmlAttributes()); +writer.startElement(QLatin1String("body"), QXmlAttributes()); +writer.startElement(QLatin1String("p"), QXmlAttributes()); + +writer.characters(QLatin1String("Hello World!")); + +writer.endElement(QLatin1String("p")); +writer.endElement(QLatin1String("body")); +writer.endElement(QLatin1String("html")); + +writer.endDocument(); diff --git a/tests/auto/xmlpatternsxqts/lib/docs/XMLIndenterExampleResult.xml b/tests/auto/xmlpatternsxqts/lib/docs/XMLIndenterExampleResult.xml new file mode 100644 index 0000000..c5e7312 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/docs/XMLIndenterExampleResult.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><body><p>Hello World!</p></body></html> diff --git a/tests/auto/xmlpatternsxqts/lib/docs/XMLWriterExample.cpp b/tests/auto/xmlpatternsxqts/lib/docs/XMLWriterExample.cpp new file mode 100644 index 0000000..935143a --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/docs/XMLWriterExample.cpp @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +QByteArray result; +QBuffer returnBuffer(&result); +XMLWriter writer(&returnBuffer); + +writer.startDocument(); + +writer.startDTD(QLatin1String("html"), QLatin1String("-//W3C//DTD XHTML 1.0 Strict//EN"), + QLatin1String("http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd")); +writer.endDTD(); + +writer.startPrefixMapping(QString(), QLatin1String("http://www.w3.org/1999/xhtml")); + +writer.startElement(QLatin1String("html"), QXmlAttributes()); +writer.startElement(QLatin1String("body"), QXmlAttributes()); +writer.startElement(QLatin1String("p"), QXmlAttributes()); + +writer.characters(QLatin1String("Hello World!")); + +writer.endElement(QLatin1String("p")); +writer.endElement(QLatin1String("body")); +writer.endElement(QLatin1String("html")); + +writer.endDocument(); diff --git a/tests/auto/xmlpatternsxqts/lib/docs/XMLWriterExampleResult.xml b/tests/auto/xmlpatternsxqts/lib/docs/XMLWriterExampleResult.xml new file mode 100644 index 0000000..c5e7312 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/docs/XMLWriterExampleResult.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><body><p>Hello World!</p></body></html> diff --git a/tests/auto/xmlpatternsxqts/lib/lib.pro b/tests/auto/xmlpatternsxqts/lib/lib.pro new file mode 100644 index 0000000..5b12d63 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/lib.pro @@ -0,0 +1,78 @@ +include (../../xmlpatterns.pri) + +TARGET = $$XMLPATTERNS_SDK +TEMPLATE = lib +DEFINES += Q_PATTERNISTSDK_BUILDING + +# lib_bundle ensures we get a framework on OS X, a library bundle. +CONFIG += resources + +mac { + CONFIG += absolute_library_soname + target.path=$$[QT_INSTALL_LIBS] + INSTALLS += target +} + +# We add gui, because xmlpatterns.pri pull it out. +QT += xmlpatterns xml network testlib gui + +DESTDIR = $$QT_BUILD_TREE/lib +!wince*:DLLDESTDIR = $$QT_BUILD_TREE/bin + +# syncqt doesn't copy headers in tools/ so let's manually ensure +# it works with shadow builds and source builds. +INCLUDEPATH += $$QT_BUILD_TREE/include/QtXmlPatterns/private \ + $$QT_SOURCE_TREE/include/QtXmlPatterns/private \ + $$QT_SOURCE_TREE/tools/xmlpatterns + +HEADERS = ASTItem.h \ + DebugExpressionFactory.h \ + ErrorHandler.h \ + ErrorItem.h \ + ExitCode.h \ + ExpressionInfo.h \ + ExpressionNamer.h \ + ExternalSourceLoader.h \ + Global.h \ + ResultThreader.h \ + TestBaseLine.h \ + TestCase.h \ + TestContainer.h \ + TestGroup.h \ + TestItem.h \ + TestResult.h \ + TestResultHandler.h \ + TestSuite.h \ + TestSuiteHandler.h \ + TestSuiteResult.h \ + TreeItem.h \ + TreeModel.h \ + Worker.h \ + XMLWriter.h \ + XQTSTestCase.h \ + XSLTTestSuiteHandler.h + +SOURCES = ASTItem.cpp \ + DebugExpressionFactory.cpp \ + ErrorHandler.cpp \ + ErrorItem.cpp \ + ExpressionInfo.cpp \ + ExpressionNamer.cpp \ + ExternalSourceLoader.cpp \ + Global.cpp \ + ResultThreader.cpp \ + TestBaseLine.cpp \ + TestCase.cpp \ + TestContainer.cpp \ + TestGroup.cpp \ + TestResult.cpp \ + TestResultHandler.cpp \ + TestSuite.cpp \ + TestSuiteHandler.cpp \ + TestSuiteResult.cpp \ + TreeItem.cpp \ + TreeModel.cpp \ + Worker.cpp \ + XMLWriter.cpp \ + XQTSTestCase.cpp \ + XSLTTestSuiteHandler.cpp diff --git a/tests/auto/xmlpatternsxqts/lib/tests/XMLWriterTest.cpp b/tests/auto/xmlpatternsxqts/lib/tests/XMLWriterTest.cpp new file mode 100644 index 0000000..738fae1 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/tests/XMLWriterTest.cpp @@ -0,0 +1,227 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** + */ + +#include <QtTest/QtTest> + +#include "XMLWriter.h" + +#include "XMLWriterTest.h" +#include "XMLWriterTest.moc" + +using namespace QPatternistSDK; + +QTEST_MAIN(XMLWriterTest) + +void XMLWriterTest::serialize() +{ + QFETCH(QString, input); + QFETCH(QString, expectedResult); + + QByteArray result; + QBuffer returnBuffer(&result); + + XMLWriter writer(&returnBuffer); + + QXmlInputSource inputSource; + inputSource.setData(input); + + QXmlSimpleReader reader; + reader.setContentHandler(&writer); + + const bool parseSuccess = reader.parse(inputSource); + Q_ASSERT_X(parseSuccess, Q_FUNC_INFO, + "XMLWriter reported an error while serializing the input."); + + QCOMPARE(QString::fromLatin1(result), expectedResult); +} + +void XMLWriterTest::serialize_data() +{ + QTest::addColumn<QString>("input"); + QTest::addColumn<QString>("expectedResult"); + + /* ------------------- Elements ------------------- */ + QTest::newRow("Only an document element") + << "<doc></doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc/>"; + + QTest::newRow("Document element containing a short closed element") + << "<doc><f/></doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc><f/></doc>"; + QTest::newRow("Complex nested elements") + << "<doc><a/><b/><c><d/><e><f><x/></f></e></c></doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc><a/><b/><c><d/><e><f><x/></f></e></c></doc>"; + /* ------------------------------------------------- */ + + /* ---------------- Element Content ---------------- */ + QTest::newRow("Element content with simple content") + << "<doc>content</doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc>content</doc>"; + + QTest::newRow("Element content with tricky to escape content") + << "<doc>>>&'\"''/></doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc>>>&'\"''/></doc>"; + /* ------------------------------------------------- */ + + /* ----------- Processing Instructions ------------- */ + QTest::newRow("Simple processing instruction.") + << "<doc><?php content?></doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc><?php content?></doc>"; + /* ------------------------------------------------- */ + + /* --------------- 'xml' attributes ---------------- */ + QTest::newRow("Simple xml:space attribute.") + << "<doc xml:space='preserve'>content</doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc xml:space=\"preserve\">content</doc>"; + + QTest::newRow("Many 'xml' attributes.") + << "<doc xml:space='preserve' xml:foo='3' xml:s2='3'>content</doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<doc xml:space=\"preserve\" xml:foo=\"3\" xml:s2=\"3\">content</doc>"; + /* ------------------------------------------------- */ + + /* ------------ namespace declarations ------------- */ + QTest::newRow("One simple namespace declaration.") + << "<doc xmlns:f='example.org/'/>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<doc xmlns:f=\"example.org/\"/>"; + + QTest::newRow("Two simple namespace declarations.") + << "<doc xmlns:f='example.org/' xmlns:e='example.org/'/>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<doc xmlns:f=\"example.org/\" xmlns:e=\"example.org/\"/>"; + + QTest::newRow("A simple default namespace.") + << "<doc xmlns='example.org/'/>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<doc xmlns=\"example.org/\"/>"; + /* ------------------------------------------------- */ + + /* -------- namespace declarations in use ---------- */ + QTest::newRow("Simple use of a namespace declaration.") + << "<doc xmlns:f='example.org/' f:attr='chars'><n/><f:name f:attr='chars'/></doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<doc xmlns:f=\"example.org/\" f:attr=\"chars\"><n/><f:name f:attr=\"chars\"/></doc>"; + /* ------------------------------------------------- */ +} + +void XMLWriterTest::cdata() +{ + /* + QTest::newRow("Simple CDATA") + << "<doc><![CDATA[content]]></doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc><![CDATA[content]]></doc>"; + + QTest::newRow("Complex CDATA") + << "<doc><![CDATA[<<>>&'\";&987;]]></doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc><![CDATA[<<>>&'\";&123;]]></doc>"; + */ +} + +void XMLWriterTest::comments() +{ + /* + QTest::newRow("Simple comment") + << "<doc><!-- comment --></doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc><!-- comment --></doc>"; + QTest::newRow("Comment") + << "<doc><!--- comment --></doc>" + << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc><!--- comment --></doc>"; + */ +} + +void XMLWriterTest::doxygenExample() +{ +#include "../docs/XMLWriterExample.cpp" + + /* When changing, remember to update the Doxygen in XMLWriter.h */ + const QByteArray expectedResult( + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" " + "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n" + "<html xmlns=\"http://www.w3.org/1999/xhtml\"><body><p>Hello World!</p></body></html>" + ); + + QCOMPARE(QString::fromLatin1(result), QString::fromLatin1(expectedResult)); +} + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/lib/tests/XMLWriterTest.h b/tests/auto/xmlpatternsxqts/lib/tests/XMLWriterTest.h new file mode 100644 index 0000000..bba6557 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/lib/tests/XMLWriterTest.h @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Patternist project on Trolltech Labs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +*************************************************************************** + */ + +#ifndef PatternistSDK_XMLWriterTest_H +#define PatternistSDK_XMLWriterTest_H + +#include <QObject> + +QT_BEGIN_HEADER + +namespace QPatternistSDK +{ + /** + * @short QTestLib test for XMLWriter. + * + * @ingroup PatternistSDK + * @author Frans Englich <fenglich@trolltech.com> + */ + class XMLWriterTest : public QObject + { + Q_OBJECT + private Q_SLOTS: + void serialize(); + void serialize_data(); + void comments(); + void cdata(); + + /** + * Ensure the example compiles, and that it does + * what it claims to. + */ + void doxygenExample(); + }; +} + +QT_END_HEADER + +#endif +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/summarizeBaseline.sh b/tests/auto/xmlpatternsxqts/summarizeBaseline.sh new file mode 100755 index 0000000..6aeddf7 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/summarizeBaseline.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +if [ $# -ne 1 ]; then + echo "You need to pass in one argument: the file path to Baseline.xml which you want the summary for." + exit 1 +fi + +# We run dirname, so we can locate summarizeBaseline.xsl regardless of our +# working directory. +xmlpatterns `dirname $0`/summarizeBaseline.xsl $1 diff --git a/tests/auto/xmlpatternsxqts/summarizeBaseline.xsl b/tests/auto/xmlpatternsxqts/summarizeBaseline.xsl new file mode 100644 index 0000000..af74bd1 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/summarizeBaseline.xsl @@ -0,0 +1,25 @@ +<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:m="http://www.w3.org/2005/02/query-test-XQTSResult">
+
+ <!-- Simply outputs a list of what test cases that failed. -->
+
+ <xsl:output method="text"/>
+
+ <xsl:template match="/">
+ <xsl:text>Failures: </xsl:text>
+ <xsl:apply-templates select="m:test-suite-result/m:test-case">
+ <xsl:sort select="@name"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template match="m:test-case[@result = 'fail']">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text> </xsl:text>
+ </xsl:template>
+
+</xsl:stylesheet>
+<!-- vim: et:ts=4:sw=4:sts=4
+-->
diff --git a/tests/auto/xmlpatternsxqts/test/test.pro b/tests/auto/xmlpatternsxqts/test/test.pro new file mode 100644 index 0000000..603ae65 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/test/test.pro @@ -0,0 +1,28 @@ +load(qttest_p4) +SOURCES += tst_xmlpatternsxqts.cpp ../../qxmlquery/TestFundament.cpp tst_suitetest.cpp + +include(../../xmlpatterns.pri) + +contains(QT_CONFIG,xmlpatterns) { + HEADERS += tst_suitetest.h + LIBS += -l$$XMLPATTERNS_SDK +} + +# syncqt doesn't copy headers in tools/ so let's manually ensure +# it works with shadow builds and source builds. +INCLUDEPATH += $$(QTDIR)/include/QtXmlPatterns/private \ + $$(QTSRCDIR)/include/QtXmlPatterns/private \ + $$(QTSRCDIR)/tools/xmlpatterns \ + $$(QTDIR)/tools/xmlpatterns \ + ../lib/ + +CONFIG += testlib +QT += xml +DESTDIR = .. +win32 { + CONFIG(debug, debug|release): DESTDIR = ../debug + else: DESTDIR = ../release +} +TARGET = tst_xmlpatternsxqts + +include (../../xmlpatterns.pri) diff --git a/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp b/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp new file mode 100644 index 0000000..1f9e396 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp @@ -0,0 +1,166 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include <QtTest/QtTest> + +#ifdef QTEST_XMLPATTERNS + +#include <QProcess> +#include "TestSuite.h" +#include "TestSuiteResult.h" +#include "XMLWriter.h" +#include "ExitCode.h" +#include "Worker.h" +#include "private/qautoptr_p.h" +#include "tst_suitetest.h" + +using namespace QPatternistSDK; + +tst_SuiteTest::tst_SuiteTest(const bool isXSLT, + const bool alwaysRun) : m_existingBaseline(inputFile(QLatin1String("Baseline.xml"))) + , m_candidateBaseline(inputFile(QLatin1String("CandidateBaseline.xml"))) + , m_abortRun(!alwaysRun && !QFile::exists(QLatin1String("runTests"))) + , m_isXSLT(isXSLT) +{ +} + +/*! + Returns an absolute path to the XQTS catalog, or flags a failure using + QTestLib's mechanisms. + + Finding the location of the catalog is done with `p4 where` such that we don't have + to care about where it is checked out. + */ +void tst_SuiteTest::initTestCase() +{ + catalogPath(m_catalogPath); +} + +/*! + Just runs the test suite and writes the result to m_candidateBaseline. + */ +void tst_SuiteTest::runTestSuite() const +{ + if(m_abortRun) + QSKIP("The test suite is not available, no tests are run.", SkipAll); + + QString errMsg; + const QFileInfo fi(m_catalogPath); + const QUrl catalogPath(QUrl::fromLocalFile(fi.absoluteFilePath())); + TestSuite *const ts = TestSuite::openCatalog(catalogPath, errMsg, true, m_isXSLT); + + QVERIFY2(ts, qPrintable(QString::fromLatin1("Failed to open the catalog, maybe it doesn't exist or is broken: %1").arg(errMsg))); + + /* Run the tests, and serialize the result(as according to XQTSResult.xsd) to standard out. */ + TestSuiteResult *const result = ts->runSuite(); + Q_ASSERT(result); + + QFile out(m_candidateBaseline); + QVERIFY(out.open(QIODevice::WriteOnly)); + + XMLWriter serializer(&out); + result->toXML(serializer); + + delete result; + delete ts; +} + +void tst_SuiteTest::checkTestSuiteResult() const +{ + if(m_abortRun) + QSKIP("This test takes too long time to run on the majority of platforms.", SkipAll); + + typedef QList<QFileInfo> QFileInfoList; + + const QFileInfo baseline(m_existingBaseline); + const QFileInfo result(m_candidateBaseline); + QFileInfoList list; + list.append(baseline); + list.append(result); + + const QFileInfoList::const_iterator end(list.constEnd()); + + QEventLoop eventLoop; + const QPatternist::AutoPtr<Worker> worker(new Worker(eventLoop, m_existingBaseline, result)); + + /* Passed to ResultThreader so it knows what kind of file it is handling. */ + ResultThreader::Type type = ResultThreader::Baseline; + + QProcess::execute(QLatin1String("p4 edit ") + m_existingBaseline); + + for(QFileInfoList::const_iterator it(list.constBegin()); it != end; ++it) + { + QFileInfo i(*it); + i.makeAbsolute(); + + QVERIFY2(i.exists(), qPrintable(QString::fromLatin1("File %1 does not exist.") + .arg(i.fileName()))); + + QFile *const file = new QFile(i.absoluteFilePath(), worker.data()); + + QVERIFY2(file->open(QIODevice::ReadOnly), qPrintable(QString::fromLatin1("Could not open file %1 for reading.") + .arg(i.fileName()))); + + ResultThreader *handler = new ResultThreader(eventLoop, file, type, worker.data()); + + QObject::connect(handler, SIGNAL(finished()), worker.data(), SLOT(threadFinished())); + + handler->start(); /* Start the thread. It now parses the file + and emits threadFinished() when done. */ + type = ResultThreader::Result; + } + + const int exitCode = eventLoop.exec(); + + QProcess::execute(QLatin1String("p4 revert -a ") + m_existingBaseline); + + QCOMPARE(exitCode, 0); +} + +bool tst_SuiteTest::dontRun() const +{ + return m_abortRun; +} +#endif + + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/test/tst_suitetest.h b/tests/auto/xmlpatternsxqts/test/tst_suitetest.h new file mode 100644 index 0000000..922f645 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/test/tst_suitetest.h @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#ifndef Q_tst_SuiteTest +#define Q_tst_SuiteTest + +#include <QtCore/QObject> +#include "../../qxmlquery/TestFundament.h" + +/*! + \class tst_SuiteTest + \internal + \since 4.5 + \brief Base class for tst_XmlPatternsXQTS and tst_XmlPatternsXSLTS. + */ +class tst_SuiteTest : public QObject + , private TestFundament +{ + Q_OBJECT + +protected: + /** + * @p isXSLT is @c true if the catalog opened is an + * XSL-T test suite. + * + * @p alwaysRun is @c true if the test should always be run, + * regardless of if the file runTests exists. + */ + tst_SuiteTest(const bool isXSLT, + const bool alwaysRun = false); + + /** + * The reason why we pass in a mutable reference and have void as return + * value instead of simply returning the string, is that we in some + * implementations use QTestLib's macros such as QVERIFY, which contains + * return statements. Yay for QTestLib. + */ + virtual void catalogPath(QString &write) const = 0; + + bool dontRun() const; + +private Q_SLOTS: + void initTestCase(); + void runTestSuite() const; + void checkTestSuiteResult() const; + +private: + /** + * An absolute path to the catalog. + */ + QString m_catalogPath; + const QString m_existingBaseline; + const QString m_candidateBaseline; + const bool m_abortRun; + const bool m_isXSLT; +}; + +#endif + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp b/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp new file mode 100644 index 0000000..6d9502d --- /dev/null +++ b/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include <QtTest/QtTest> + +#ifdef QTEST_XMLPATTERNS + +#include "tst_suitetest.h" + +/*! + \class tst_XmlPatternsXQTS + \internal + \since 4.4 + \brief Tests the actual engine by running W3C's conformance test suite. + */ +class tst_XmlPatternsXQTS : public tst_SuiteTest +{ + Q_OBJECT +public: + tst_XmlPatternsXQTS(); +public: + virtual void catalogPath(QString &write) const; +}; + +tst_XmlPatternsXQTS::tst_XmlPatternsXQTS() : tst_SuiteTest(false) +{ +} + +void tst_XmlPatternsXQTS::catalogPath(QString &write) const +{ + if(dontRun()) + QSKIP("This test takes too long time to run on the majority of platforms.", SkipAll); + + QProcess p4; + + QStringList arguments; + arguments << QLatin1String("where") + << QLatin1String("//depot/autotests/4.4/tests/auto/xmlpatternsxqts/XQTS/XQTSCatalog.xml"); + p4.start(QLatin1String("p4"), arguments); + QVERIFY(p4.waitForFinished()); + QCOMPARE(p4.exitCode(), 0); + QCOMPARE(p4.exitStatus(), QProcess::NormalExit); + + /* `p4 where' prints for instance: + * + * //depot/qt/4.4/tests/auto/xmlpatternsxqts/... //fenglich-englich/qt-4.4/tests/auto/xmlpatternsxqts/... /home/fenglich/dev/autotests/4.4/tests/auto/xmlpatternsxqts/XQTS/XQTSCatalog.xml + * + * so we want the last string. + */ + write = QString::fromLocal8Bit(p4.readAllStandardOutput()).split(QLatin1Char(' ')).last().trimmed(); + + if(write.isEmpty() || !QFile::exists(write)) + { + QEXPECT_FAIL("", "//depot/autotests/4.4/tests/auto/xmlpatternsxqts/XQTS/ must be part of the perforce client spec, " + "checked out at an arbitrary location, for this test to run. The test suite will now be skipped.", Abort); + QVERIFY(false); + } +} + +QTEST_MAIN(tst_XmlPatternsXQTS) + +#include "tst_xmlpatternsxqts.moc" +#else +QTEST_NOOP_MAIN +#endif + +// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro b/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro new file mode 100644 index 0000000..368a028 --- /dev/null +++ b/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro @@ -0,0 +1,11 @@ +TEMPLATE = subdirs +SUBDIRS = test +contains(QT_CONFIG,xmlpatterns) { + SUBDIRS += lib + !wince*:lib.file = lib/lib.pro + test.depends = lib +} + +# Needed on the win32-g++ setup and on the test machine arsia. +INCLUDEPATH += $$QT_BUILD_TREE/include/QtXmlPatterns/private \ + ../../../include/QtXmlPatterns/private |